Javascript面试题链接总结

194 阅读5分钟

mermaid图表

图片1.png

一、数据类型

(一)考察很多

1、 javascript有哪些数据类型,它们的区别?

链接:juejin.cn/post/684490…

2、 数据类型检测的方式有哪些?

链接: juejin.cn/post/684490…

图片:

图片2.png

3、 判断数组的方式有哪些

链接: juejin.cn/post/706471…

4、null和undefined的区别

链接:chenguangliang.com/blog/null%E…

5、 instanceof 操作符的实现原理及实现

链接: juejin.cn/post/684490…

6、 为什么 0.1+0.2 !== 0.3 ,如何让其相等

链接: juejin.cn/post/705143…

7、 == 操作符的强制类型转换规则

链接: juejin.cn/post/684490…

8、Object.is() 与比较操作符“ === ”,“ == ”的区别

链接: juejin.cn/post/686001…

(二)考察较多

1、typeof null 的结果是什么

链接: juejin.cn/post/701836…

2、isNAN Number.isNAN 函数的区别

链接: juejin.cn/post/697902…

3、其他值到字符串的转换规则

链接: juejin.cn/post/684490…

4、其他值到数字值的转换规则

链接: juejin.cn/post/684490…

5、其他值到布尔类型的值的转换规则

链接: juejin.cn/post/684490…

6、javascript 中如何进行隐式类型转换

链接: juejin.cn/post/697330…

(三)考察较少

1、 如何获取安全的 undefined

答:  void 0 获取undefined

2、 typeof null的结果是什么,为什么

答:typeof null // 'object',
Javascript 中不同对象在底层都表示为二进制,而 Javascript 中会把二进制前三位都为0的判断为 object 类型,而 null 的二进制表示全都是0,自然前三位也是0,所以执行 typeof 时会返回'object'

补充:
typeof 'lin' // 'string'
typeof NaN // 'number'
typeof 1 // 'number'
typeof true // 'boolean'
typeof undefined // 'undefined' 
typeof Symbol() // 'symbol'
typeof null // 'object'```

2、|| 和 && 操作符的返回值

链接: juejin.cn/post/704443…

3、+操作符什么时候用于字符的拼接

  答:两数其一为字符串时+操作符用于字符的拼接
  

4、object.assign和扩展运算法是深拷贝还是浅拷贝,两者区别

链接: juejin.cn/post/684490…

(四)考察很少

1、什么是javascript中的包装类型

链接: juejin.cn/post/690638…

2、为什么会有bigInt的提案

答:JavaScript中Number.MAX SAFE INTEGER表示最大安全数字,计算结果是9007199254740991,即在这个数范用内不会出现精度丢失(小数除外)。但是一旦超过这个范围,is就会出现计算不准确的情况,这在大数计算的时候不得不依靠一些第三方库进行解决,因此官方提出了Biglnt来解决此问题

二、javascript基础

(一) 考察很多

1、 new 操作符的实验原理

链接: juejin.cn/post/699148…

2、 数组有哪些原生方法

链接: github.com/linzx1993/l…

3、 什么是 DOM BOM

链接: juejin.cn/post/694759…

4、 对类数组对象的理解,如何转换为数组

链接: juejin.cn/post/684490…

5、  AJAX 的理解,实现一个 AJAX 请求

链接: juejin.cn/post/698434…

6、 javascript 为什么要进行变量提升,它导致了什么

链接: juejin.cn/post/698924…

(二) 考察较多

1、 map object 的区别

链接: juejin.cn/post/691481…

2、 javascript 脚本延迟加载的方式有哪些

链接: juejin.cn/post/686328…

3、 javascript 类数组对象的定义

链接: juejin.cn/post/684490…

4、 为什么函数的 arguments 参数是类数组而不是数组,如何遍历类数组

链接: juejin.cn/post/684490…

5、 ES6 模块与 CommonJs 模块有什么异同

链接: juejin.cn/post/684490…

6、 如何判断一个对象是否属于某个类

链接 juejin.cn/post/684490…

7、 for ...in for...of 的区别

链接 juejin.cn/post/691605…

8、 数组遍历的方法有哪些

链接 juejin.cn/post/684490…

9、 forEach map 方法有什么区别

链接 juejin.cn/post/685811…

(三) 考察较少

1、 map和weakMap的区别

链接 juejin.cn/post/706629…

2、 常用的正则表达式有哪些

链接 juejin.cn/post/712313…

3、 对JSON的理解

链接 blog.csdn.net/m0_64346035…

4、 Unicode、UTF-8、UTF-16、UTF-32的区别

链接 juejin.cn/post/684490…

5、常见的位运算符有哪些?其计算规则是什么

链接 juejin.cn/post/692290…

6、escape,encodeURI,encodeURIComponent的区别

链接 juejin.cn/post/689348…

7、什么是尾调用,使用尾调用有什么好处

链接 juejin.cn/post/707456…

8、常见的Dom操作有哪些

链接 juejin.cn/post/684490…

8、use strict是什么意思?使用它区别是什么?

链接 juejin.cn/post/694430…

9、如何使用for...of遍历对象

链接 juejin.cn/post/708589…

10、ajax,axios,fetch的区别

链接 juejin.cn/post/684490…

(四) 考察很少

1、javascript有哪些内置的对象

链接: juejin.cn/post/690638…

2、强类型语言与弱类型语言的区别

链接: juejin.cn/post/702559…

3、解释型语言与编译型语言的区别

链接: juejin.cn/post/702559…

三、ES6

(一) 考察很多

1、 let const var 的区别

链接: juejin.cn/post/692564…

2、 原型链指向箭头函数与普通函数的区别

链接: juejin.cn/post/706994…

(二) 考察较多

1 const对象的属性可以修改吗

链接: juejin.cn/post/692564…

2 如果new一个箭头函数会怎样

链接: juejin.cn/post/695295…

3 箭头函数的 this 在哪里

链接: juejin.cn/post/701797…

4 rest 参数的理解

链接: juejin.cn/post/698988…

5 Es6模板语法与字符串处理

链接: juejin.cn/post/684490…

 

(三) 考察较少

1扩展运算符的作用及使用场景

链接: juejin.cn/post/684490…

2proxy可以实现什么功能

链接: juejin.cn/post/684490…

3对对象和数组的解构的理解

链接: www.iamshuaidi.com/4963.html

(四) 考察很少

1如何提取高度嵌套的对象里的指定属性

链接: blog.csdn.net/y_l33/artic…

四、原型

(一) 考察很多

1、 对原型,原型链 理解

链接: juejin.cn/post/684490…

2、 原型链指向

链接: juejin.cn/post/703269…

(二) 考察较多

1 原型修改、重写

链接:

(三) 考察较少

1原型链的终点是什么?如何打印出原型链的终点

链接: juejin.cn/post/711483…

2如何获取对象非原型链上的属性

链接: www.cnblogs.com/kunmomo/p/1…

五、异步编程

(一) 考察很多

1、  promise 的理解

链接: juejin.cn/post/684490…

2、 promise 的基本用法

链接: juejin.cn/post/706258…

3、  asyns/await 的理解

链接: juejin.cn/post/700703…

4、 async/await 对比 promise 的优势

链接: juejin.cn/post/701189…

(二) 考察较多

1 异步编程的实现方式

链接: juejin.cn/post/684490…

2 setTimeout Promise、 Aync /Await 的区别

链接: juejin.cn/post/696881…

3、Promise解决了什么问题

链接: juejin.cn/post/684490…

4、Promise.all Promise.race 的区别和使用场景

链接: juejin.cn/post/699889…

5、await到底在等什么

链接: juejin.cn/post/684490…

6、Async /await 的优势

链接: juejin.cn/post/684490…

(三) 考察较少

1、Async /await 如何捕获异常

链接: juejin.cn/post/684790…

2、并发与并行的区别

链接: juejin.cn/post/715697…

3、什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?

链接: juejin.cn/post/710044…

4、setTimeout、setInterval、requestAnimationFrame各有什么特点?

链接: juejin.cn/post/711411…

六、执行上下文/作用域/闭包

(一) 考察很多

1、 对闭包的理解

链接: juejin.cn/post/684490…

2、 对作用域,作用域链的理解

链接: juejin.cn/post/684490…

3、 对执行上下文的理解

链接: juejin.cn/post/684490…  

七、this/call/apply/bind

(一) 考察很多

1、 对this 对象的理解

链接: juejin.cn/post/697178…

2、 call() apply() 的区别

链接: juejin.cn/post/697102…

3、 实现 call,apply,bind 函数

链接: juejin.cn/post/697102…

八、面向对象

(二) 考察较多

1、 对象创建的方式有哪些

链接:

alvinyuxt.github.io/2016/11/11/…

2 对象继承的方式有哪些

链接: juejin.cn/post/697402…

 

九、垃圾回收与内存泄露

(一) 考察很多

1、浏览器的垃圾回收机制

链接: juejin.cn/post/698158…

(二) 考察较多

1、哪些情况会导致内存泄露

链接: juejin.cn/post/684490…