2019JS必看面试题

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

答案:string,boolean,number,undefined,function,object

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

答案:强制(parseInt,parseFloat,number)
隐式(== ===)

3. 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方式的区别

答案:
一个在url后面 ,一个放在虚拟载体里面
get有大小限制(只能提交少量参数)
安全问题
应用不同 ,请求数据和提交数据

7. call和apply的区别

Object.call(A, args1,args2); 即A对象调用B对象的方法
Object.apply(A, arguments); 即A对象调用B对象的方法
call 与 apply 的相同点:
方法的含义是一样的,即方法功能是一样的;
第一个参数的作用是一样的;
call 与 apply 的不同点:两者传入的列表形式不一样
call可以传入多个参数;
apply只能传入两个参数,所以其第二个参数往往是作为数组形式传入

8. ajax请求时,如何解析json数据

答案:使用JSON.parse

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

答案:闭包就是能够读取其他函数内部变量的函数,使得函数不被GC回收,如果过多使用闭包,容易导致内存泄露

10. 如何阻止事件冒泡

答案:ie:阻止冒泡ev.cancelBubble = true; 非IE ev.stopPropagation();

11. 如何阻止默认事件

答案:(1)return false;(2) ev.preventDefault();

12. 添加 删除 替换 插入到某个接点的方法

答案:

  1. 创建新节点
    createElement() //创建一个具体的元素
    createTextNode() //创建一个文本节点
  2. 添加、移除、替换、插入
    appendChild() //添加
    removeChild() //移除
    replaceChild() //替换
    insertBefore() //插入
  3. 查找
    getElementsByTagName() //通过标签名称
    getElementsByName() //通过元素的Name属性的值
    getElementById() //通过元素Id,唯一性

13. 解释jsonp的原理,以及为什么不是真正的ajax

答案:动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作

14. document load 和document ready的区别

答案:document.onload 是在结构和样式,外部js以及图片加载完才执行js
document.ready是dom树创建完成就执行的方法,原生种没有这个方法,jquery中有 $().ready(function)

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

答案:前者会自动转换类型,再判断是否相等
后者不会自动类型转换,直接去比较

16. 函数声明与函数表达式的区别?

在Javscript中,解析器在向执行环境中加载数据时,对函数声明和函数表达式并非是一视同仁的,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析执行。

17. Javascript的事件流模型都有什么?

“事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播
“事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的
“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡

18. javaScript的2种变量范围有什么不同?

全局变量:当前页面内有效
局部变量:函数方法内有效

19. new操作符具体干了什么呢?

1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。
2、属性和方法被加入到 this 引用的对象中。
3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。

你可能感兴趣的:(2019JS必看面试题)