NET研发人员面试题
关于NET研发人员面试题
1、简述javascript中的“=、==、===”的区别?
=赋值
==比较是否一般相等"3"==3//会做类型的隐式转换,true
===比较是否严格相等"3"===3//先比较类型,再进行值比较,false
2、看下列代码输出为何?解释原因
vara=null;
alert(typeofa);
varb;
alert(typeofb);
alert(c);
a为null,也是一个对象,所以typeof(a)为object.
b只有声明没有初始化,因此typeof(b)为undefined.
c没有定义,因此alert(c)会出现error.
3、编写javascript代码实现把两个数组合并,并删除第二个元素。
合并js数组用concat方法,array1.concat(array2)。
删除元素用splice方法,splice(1,1),函数原型
splice(index,count),指从数组索引1处开始删除1个元素,即删除第二个元素。
4、简述javascript的作用域和闭包
js变量的作用域是指:函数内定义的局部变量只在此函数内有效,而全局变量可以全局有效。
闭包的作用就在于能够改变局部变量的作用域,将值保存下来,但是如果使用不当会造成无法回收变量,引起性能问题,甚至崩溃。
5、列举你用过的javascript框架,并简述它们的优缺点
js框架:jQueryEasyUI、ExtJS、Bootstrap、AngularJS等等。
jQueryEasyUI:轻量级web前端ui开发框架,尤其适合MIS系
统的界面开发,能够重用jquery插件。
ExtJS:统一的前端UI开发框架,学习难度中等。
尤其适合MIS
系统的界面开发,开发文档和例子代码都比较完整。
缺点是大量的
js脚本,降低了运行速度。
Bootstrap:响应式网站开发框架,优点是降低了后端开发人员
开发前端页面的难度,统一了界面风格,缺点是界面风格比较单一。
AngularJS:将java后端的优秀特性引入到了js前端,大而全
的框架。
缺点是学习曲线高,Angular2几乎重写。
6、简述a.Equals(b)和a==b的区别?
Equals方法比较内容(值是否相等),==比较引用地址(是否指向
同一个对象)。
7、的Application、Session、Cookie、ViewState和Cache等变量的区别是什么?
Application应用程序级别
Session会话级别用户跟踪
Cookie客户端存储少量信息
ViewState保持控件状态的机制
Cache缓存
8、列举MVCActionResult的返回值有几种类型?
主要有View(视图)、PartialView(部分视图)、Content(内容)、Json(Json字符串)、Javascript(js脚本)、File(文件)等几种类型。
9、简述WebApi相对于MVC的优点?
WebApi消息处理管道独立于平台,支持多种寄宿方式。
10、简述请求的生命周期?
用户从Web服务器请求应用程序资源->接收对应用程序
的第一个请求->为每个请求创建核心对象->将HttpApplication对象分配给请求->由HttpApplication管线处理
请求
refer:https:///zh-
cn/library/ms178473(v=vs.100).aspx
11、ORM中的延迟加载与直接加载有什么异同?
延迟加载(LazyLoading)只在真正需要进行数据操作的时候再进
行加载数据,可以减少不必要的开销。
12、简述Func与Action的'区别?
Func是有返回值的委托,Action是没有返回值的委托。
13、开启一个异步线程的几种方式?多线程编程时的注意事项?
APM(AsynchrocousProgrammingModel,比如:BeginXXX、IAsyncResult)、EAP(Event-BasedAsynchronousPattern,比如:DownloadContentAsync)、TPL(TaskParallelLibrary,比如:
Task.Factory.StartNew)、async/await。
线程饿死、线程死锁、线程同步、线程安全。
14、简述Linq是什么,以及Linq的原理?并编写一个LinqtoObject的示例代码
Linq(LanguageIntegratedQuery),其中LinqtoObject是对Enumberable扩展方法的调用,在执行时会转化为Lambda然后执行。
示例代码:Linq分组统计
varresult=frompinlist.AsEnumerable()
grouppbyp.Provinceintog
selectnew
{
g.Key,
SumValue=g.Sum(p=>p.Value)
};
result.ToList().ForEach((i)=>
{
Console.WriteLine(i.Key+":"+i.SumValue);
});
15、简述面向对象的特性有哪些?你是如何理解的?
继承(inheritance)、封装(encapsulation)、多态(polymorphism)。
16、列举你所知道的设计模式?你在真实项目中使用过的有哪些?有什么心得?
单例模式、模板方法、工厂模式、外观模式、策略模式等。
17、编写SQL从A表中查出Name字段重复三条以上的记录,并编写SQL删除这些重复记录
查询Name字段记录重复三条以上的记录。