JS面试题:
1.javascript的typeof返回哪些数据类型
string
, boolean
,number
, undefined
, function
,object
2.例举3种强制类型转换和2种隐式类型转换?
强制(parseInt
, parseFloat
, number
) 隐式(== === + -
)
3.split() 和 join() 的区别
split()
是将字符串切割成数组的形式,join()
是将数组转换成字符串。
4.数组方法pop()、push()、unshift()、shift()
push()
尾部添加pop()
尾部删除unshift()
头部添加shift()
头部删除
5.IE和标准下有哪些兼容性的写法
var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target
6.ajax请求的时候get 和 post方式的区别
get
是在url
后面post
放在虚拟载体里面get
有大小限制(只能提交少量参数)post
比get
安全- 应用不同,请求数据和提交数据
7.call 和 apply 的区别
Object.call(this, obj1, obj2, obj3) Object.apply(this, arguments)
apply
和call
的唯一区别是第二个参数的传递方式不同,apply
的第二个参数必须是一个数组,而call
允许传递一个参数列表。
8.ajax请求时,如何解析json数据
使用JSON.parse
9.事件委托是什么
利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
10.闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数,使得函数不被GC机制回收,如果过多使用闭包,容易导致内存泄露。
你以为什么是闭包的传送门
11.如何阻止事件冒泡
- ie:阻止冒泡
ev.cancelBubble = true
; - 非IE
ev.stopPropagation()
;
12.如何阻止默认事件
- 1.
return false
- 2.
ev.preventDefault()
;
13.添加 删除 替换 插入到某个接点的方法
1、创建新节点
// 创建一个具体的元素
createElement();
// 创建一个文本节点
createTextNode();
2、添加、移除、替换、插入
appendChild(); //添加
removeChild(); //移除
replaceChild()