1、split() 、join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串
2、数组方法 pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除;Unshift()头部添加 shift()头部删除
3、事件绑定和普通事件有什么区别
普通添加事件的方法:
var btn = document.getElementById("hello"); btn.onclick = function(){ alert(1); } btn.onclick = function(){ alert(2); }
只会弹出alert2
事件绑定方式添加事件:
var btn = document.getElementById("hello"); btn.addEventListener("click",function(){ alert(1); },false); btn.addEventListener("click",function(){ alert(2); },false); 执行上面的代码会先 alert 1 再 alert 2
普通添加事件的方法不支持添加多个事件,最下面的事件会覆盖上面的,而事件绑定
(addEventListener)方式添加事件可以添加多个。
addEventListener 不兼容低版本 IE
普通事件无法取消
addEventLisntener 还支持事件冒泡+事件捕获
4、 IE 和 DOM 事件流的区别
1.执行顺序不一样
2.参数不一样
3.事件加不加 on
4.this 指向问题
5、IE 和标准下有哪些兼容性的写法
Var ev = ev || window.event document.documentElement.clientWidth || document.body.clientWidth Var target = ev.srcElement||ev.target
6、call 和 apply 的区别
call 方法:
语法:call(thisObj,Object1,Object2...)
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始
的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
apply 方法:
语法:apply(thisObj,[argArray])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个
TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且
无法被传递任何参数
7、添加 删除 替换 插入到某个接点的方法
obj.appendChid() obj.insertBefore() obj.replaceChild() obj.removeChild()
8、javascript 的本地对象,内置对象和宿主对象
本地对象为 array obj regexp 等可以 new 实例化
内置对象为 gload Math 等不可以实例化的
宿主为浏览器自带的 document,window 等
9、window.onload 和 document ready 的区别
window.onload 是 在 dom 文档树加载完和所有文件加载完之后执行一个函数
Document.ready 原生种没有这个方法,jquery 中有 $().ready(function),在 dom 文档树
加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。
$(document).ready 要比 window.onload 先执行
window.onload 只能出来一次,$(document).ready 可以出现多次
10、 foo = foo||bar ,这行代码是什么意思?为什么要这样写?
答案:if(!foo) foo = bar; //如果 foo 存在,值不变,否则把 bar 的值赋给 foo。
短路表达式:作为”&&”和”||”操作符的操作数表达式,这些表达式在进行求值时,只
要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值