十三道JS原生面试题

1.javascript的typeof返回哪些数据类型

number string boolean Object function underfind

2.例举3种强制类型转换和2种隐式类型转换?

强制(parseInt,parseFloat,number)

隐式(== – ===)

3.split() join() 的区别

前者是切割成数组的形式,后者是将数组转换成字符串

4.数组方法pop() push() unshift() shift()

Push()尾部添加 pop()尾部删除

Unshift()头部添加 shift()头部删除

5.事件绑定和普通事件有什么区别

普通事件中的onclick是DOM0级事件只支持单个事件,会被其他onclick事件覆盖,而事件绑定中的addEventListener是DOM2级事件可以添加多个事件而不用担心被覆盖

6.IE和DOM事件流的区别

1.执行顺序不一样、

2.参数不一样

3.事件加不加on

4.this指向问题

7.标准和IE下有哪些兼容性的写法

Var ev = ev || window.event

Var target =  ev.target || ev.srcElement

document.documentElement.clientWidth || document.body.clientWidth

8.写一个获取非行间样式的函数

function getStyle(obj,attr,value)

{

if(!value)

{

if(obj.currentStyle)

{

return obj.currentStyle(attr)

}

else

{

obj.getComputedStyle(attr,false)

}

}

else

{

obj.style[attr]=value

}

}

9.闭包是什么,有什么特性,对页面有什么影响

闭包就是能够读取其他函数内部变量的函数。

http://blog.csdn.net/gaoshanwudi/article/details/7355794 此链接可查看(问这个问题的不是一个公司)

10.如何阻止事件冒泡和默认事件

停止事件复制(冒泡)

IE:event.cancelBubble=true;

DOM:event.stopPropagation();

阻止事件默认行为

IE:event.returnValue=false;

DOM:event.preventDefault();

11.”==”和“===”的不同

前者会自动转换类型

后者不会

12.编写一个数组去重的方法

function oSort(arr)

{

var result ={};

var newArr=[];

for(var i=0;i

{

if(!result[arr])

{

newArr.push(arr)

result[arr]=1

}

}

return newArr

}

13.事件委托是什么

让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!

http://www.webasily.com/?p=78 例子可见此链接

你可能感兴趣的:(十三道JS原生面试题)