当前位置: IT培训 > HTML5培训 > 前端开发 > JS > JS面试题推荐
JS面试题推荐 时间:2017-06-27     来源:JS开发面试题汇总

现在作为一名web前端工程师我们总是会在面试过程中遇到各类的JS开发方面的面试题,有的时候这些面试题并不是我们经常见到的,所以今天华清远见JS开发技术频道为大家汇总了一些JS开发面试题。

1、怎样添加、移除、移动、复制、创建和查找节点(原生JS,实在基础,没细写每一步)

1)创建新节点

createDocumentFragment() //创建一个DOM片段

createElement() //创建一个具体的元素

createTextNode() //创建一个文本节点

2)添加、移除、替换、插入

appendChild() //添加

removeChild() //移除

replaceChild() //替换

insertBefore() //插入

3)查找

getElementsByTagName() //通过标签名称

getElementsByName() //通过元素的Name属性的值

getElementById() //通过元素Id,唯一性

2、当一个DOM节点被点击时候,我们希望能够执行一个函数,应该怎么做?

直接在DOM里绑定事件:<div onclick=”test()”></div>

在JS里通过onclick绑定:xxx.onclick = test

通过事件添加进行绑定:addEventListener(xxx, ‘click’, test)

那么问题来了,Javascript的事件流模型都有什么?

“事件冒泡”:事件开始由具体的元素接受,然后逐级向上传播

“事件捕捉”:事件由不具体的节点先接收,然后逐级向下,一直到具体的

“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡

3、javaScript的数据类型都有什么?

基本数据类型:String,boolean,Number,Undefined, Null

引用数据类型:Object(Array,Date,RegExp,Function)

4、javascript的同源策略

一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、议和端口号的组合

5、简述创建函数的几种方式

第一种(函数声明):

function sum1(num1,num2){

return num1+num2;

}

第二种(函数表达式):

var sum2 = function(num1,num2){

return num1+num2;

}

第三种(函数对象方式):

var sum3 = new Function("num1","num2","return num1+num2");

6、iframe的优缺点?

优点:

1. 解决加载缓慢的第三方内容如图标和广告等的加载问题

2. Security sandbox

3. 并行加载脚本

缺点:

1. iframe会阻塞主页面的Onload事件

2. 即时内容为空,加载也需要时间

3. 没有语意

7、请你谈谈Cookie的弊端?

缺点:

1.Cookie数量和长度的限制。每个domain多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。

2.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。

3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

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、事件委托是什么

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

10、闭包是什么,有什么特性,对页面有什么影响

答:我的理解是,闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

X