javascript面试记

richinfo:

1,什么情况下会出现undefined的值,并且程序不会报错!
建议:1,变量定义好了,但是未赋值的情况下;2,访问对象的属性,但该属性没有的时候;3,访问数组不存在的索引的时候;4,访问函数定义好的参数,但是参数未传进来的时候;5,函数没有显示的写return,或者return后面没有写任何值的时候,也会返回undefined


2,call和apply的区别
建议:很没意思的问题,就是参数的区别,apply的第二个参数必须是数组或者类数组,很多时候会用另外一个函数的arguments对象作为其第二个参数


3,如何用一个for循环给3个按钮绑定事件?会创建多少个闭包?
建议:自己思考一下这个场景,在javascript高级教程第三版上面有一个几乎一样的例子,可以参考一下。
这主要考的是闭包的应用:外部函数的变量i,在for循环的过程中会一直在增长,for循环结束后,值变为3,如果直接绑定,会导致所有的都事件处理函数都用到的值是3,比较好的方式是使用自执行的一个闭包函数,把i作为一个参数传递进去即可。
for(var i = 0; i < 3; i++){
btns[i].onclick = (function(innerIndex){
return function(){
//这里使用innerIndex,这个innerIndex的值将会等于for循环执行到这里的时候的那个i值
}
})(i);
}
这里循环了多少次,就会创建多少个闭包。


4,闭包的作用域在定义的时候就创建了,还是在执行的时候创建的?
建议:这个问题我记得不是很清楚了,大概他要你说出来的意思是,闭包的作用域始终是定义的那个外部函数的作用域,而内部函数在哪里执行无关。定义的时候就创建了!


5,为什么Object.prototype中的属性是无法通过for in循环遍历出来?
建议:这里涉及到对象的属性类别,可以参考一下javascript高级教程第三版139页属性类型,该书网盘下载地址:http://pan.baidu.com/s/1o6kgdzc


6,如何确保使用for in 循环对象的时候,不会遍历到原型的属性上面去?
建议:使用hasOwnProperty方法判断


7,JSON格式的数据,什么情况下容易出错?
建议:这个问题我没有答出来,刚刚查了下资料,应该是反斜杠的问题,参考一下这个资料:http://www.cnblogs.com/lengyuhong/archive/2012/01/07/2262390.html


8,正则表达式的分组是怎么做的?js是否支持正则表达式的分组命名?正则表达式的i,g,m分别是什么意思?
建议:以左括号出现的先后顺序分组。js不支持分组命名。i是忽略大小写,g是全局匹配,m是多行匹配。

9,nodejs了解多少?

10,浏览器的缓存机制


11,cookie

jd:

1,如果实现图片的动态加载?

2,介绍一下最近的项目上使用到的技术框架

原文地址:https://www.cnblogs.com/doublehappyi/p/4330546.html