mermaid图表
一、数据类型
(一)考察很多
1、 javascript有哪些数据类型,它们的区别?
2、 数据类型检测的方式有哪些?
图片:
3、 判断数组的方式有哪些
4、null和undefined的区别
链接:chenguangliang.com/blog/null%E…
5、 instanceof 操作符的实现原理及实现
6、 为什么 0.1+0.2 !== 0.3 ,如何让其相等
7、 == 操作符的强制类型转换规则
8、Object.is() 与比较操作符“ === ”,“ == ”的区别
(二)考察较多
1、typeof null 的结果是什么
2、isNAN 和 Number.isNAN 函数的区别
3、其他值到字符串的转换规则
4、其他值到数字值的转换规则
5、其他值到布尔类型的值的转换规则
6、javascript 中如何进行隐式类型转换
(三)考察较少
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、|| 和 && 操作符的返回值
3、+操作符什么时候用于字符的拼接
答:两数其一为字符串时+操作符用于字符的拼接
4、object.assign和扩展运算法是深拷贝还是浅拷贝,两者区别
(四)考察很少
1、什么是javascript中的包装类型
2、为什么会有bigInt的提案
答:JavaScript中Number.MAX SAFE INTEGER表示最大安全数字,计算结果是9007199254740991,即在这个数范用内不会出现精度丢失(小数除外)。但是一旦超过这个范围,is就会出现计算不准确的情况,这在大数计算的时候不得不依靠一些第三方库进行解决,因此官方提出了Biglnt来解决此问题
二、javascript基础
(一) 考察很多
1、 new 操作符的实验原理
2、 数组有哪些原生方法
3、 什么是 DOM 和 BOM
4、 对类数组对象的理解,如何转换为数组
5、 对 AJAX 的理解,实现一个 AJAX 请求
6、 javascript 为什么要进行变量提升,它导致了什么
(二) 考察较多
1、 map 和 object 的区别
2、 javascript 脚本延迟加载的方式有哪些
3、 javascript 类数组对象的定义
4、 为什么函数的 arguments 参数是类数组而不是数组,如何遍历类数组
5、 ES6 模块与 CommonJs 模块有什么异同
6、 如何判断一个对象是否属于某个类
7、 for ...in 和 for...of 的区别
8、 数组遍历的方法有哪些
9、 forEach 和 map 方法有什么区别
(三) 考察较少
1、 map和weakMap的区别
2、 常用的正则表达式有哪些
3、 对JSON的理解
链接 : blog.csdn.net/m0_64346035…
4、 Unicode、UTF-8、UTF-16、UTF-32的区别
5、常见的位运算符有哪些?其计算规则是什么
6、escape,encodeURI,encodeURIComponent的区别
7、什么是尾调用,使用尾调用有什么好处
8、常见的Dom操作有哪些
8、use strict是什么意思?使用它区别是什么?
9、如何使用for...of遍历对象
10、ajax,axios,fetch的区别
(四) 考察很少
1、javascript有哪些内置的对象
2、强类型语言与弱类型语言的区别
3、解释型语言与编译型语言的区别
三、ES6
(一) 考察很多
1、 let 、 const 、 var 的区别
2、 原型链指向箭头函数与普通函数的区别
(二) 考察较多
1 、 const对象的属性可以修改吗
2 、 如果new一个箭头函数会怎样
3 、 箭头函数的 this 在哪里
4 、 对 rest 参数的理解
5 、 Es6模板语法与字符串处理
(三) 考察较少
1 、扩展运算符的作用及使用场景
2 、proxy可以实现什么功能
3 、对对象和数组的解构的理解
链接: www.iamshuaidi.com/4963.html
(四) 考察很少
1 、如何提取高度嵌套的对象里的指定属性
链接: blog.csdn.net/y_l33/artic…
四、原型
(一) 考察很多
1、 对原型,原型链 的 理解
2、 原型链指向
(二) 考察较多
1 、 原型修改、重写
链接:
(三) 考察较少
1 、原型链的终点是什么?如何打印出原型链的终点
2 、如何获取对象非原型链上的属性
链接: www.cnblogs.com/kunmomo/p/1…
五、异步编程
(一) 考察很多
1、 对 promise 的理解
2、 promise 的基本用法
3、 对 asyns/await 的理解
4、 async/await 对比 promise 的优势
(二) 考察较多
1 、 异步编程的实现方式
2 、 setTimeout 、 Promise、 Aync /Await 的区别
3、Promise解决了什么问题
4、Promise.all 和 Promise.race 的区别和使用场景
5、await到底在等什么
6、Async /await 的优势
(三) 考察较少
1、Async /await 如何捕获异常
2、并发与并行的区别
3、什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?
4、setTimeout、setInterval、requestAnimationFrame各有什么特点?
六、执行上下文/作用域/闭包
(一) 考察很多
1、 对闭包的理解
2、 对作用域,作用域链的理解
3、 对执行上下文的理解
七、this/call/apply/bind
(一) 考察很多
1、 对this 对象的理解
2、 call() 和 apply() 的区别
3、 实现 call,apply,bind 函数
八、面向对象
(二) 考察较多
1、 对象创建的方式有哪些
链接:
alvinyuxt.github.io/2016/11/11/…
2 、 对象继承的方式有哪些