故心故心故心故心小故冲啊
文章目录
ES6重要知识汇总
1.let const
2.数组对象函数解构
3.函数扩展及扩展运算符
4.字符串扩展及数值扩展
5.set map 以及for of
6.promise
7.async await
8.宏微任务
1.说说var、let、const之间的区别
let 和const 不存在变量提升
let 和const 不能重复声明
let和const 是块级作用域,而var是函数作用域
let和const存在暂时性死区,只有等到声明变量的那一行代码出现,才可以获取和使用该变量
var和let可以都可以修改声明的变量,而const不能修改,修改后就会报错
(ps:const声明的是一个只读常量,在声明时就需要赋值。(如果 const 的是一个对象,对象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址不能改变,而变量成员是可以修改的。))
2.ES6中数组新增了哪些扩展?
1.新增了扩展运算符
2.关于构造函数,数组新增的方法有如下:
Array.from() 接受参数为:类似数组
Array.of() 接受一组值
3.数组实例对象新增的方法有如下:
copyWithin()
find()、findIndex()
fill()
entries(),keys(),values()
includes()
flat(),flatMap()
3.ES6中函数新增了哪些扩展?
1.参数
ES6允许为函数的参数设置默认值
2.属性
函数的length属性 length将返回没有指定默认值的参数个数
name属性 返回该函数的函数名
3.作用域
一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域
等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值时,是不会出现的
下面例子中,y=x会形成一个单独作用域,x没有被定义,所以指向全局变量x
4.严格模式
只要函数参数使用了默认值、解构赋值、或者扩展运算符,那么函数内部就不能显式设定为严格模式,否则会报错
5.函数扩展:
1.es6的写法相比于大大减少了代码量
2.rest参数 …变量名 用于获取函数的多余参数,只能作为最后一个参数,否则报错
3.箭头函数 ()=>{} 当参数为空时或者参数多个时需要写()
注意点:
(1)、箭头函数不能当作构造函数,不可以使用new 命令.
箭头函数中,this指向固定化,本身是没有自己的this,所以不能用作构造函数
(2)、箭头函数没有原型 对象
(3)、不可以使用arguments对象 该对象在函数体内不存在 替代 rest
(4)、this指向 由于箭头函数不绑定this,它会捕获其所在上下文的this的值,作为自己的this值
(5)、箭头函数中call() apply() bind() 对于this毫无影响
4.字符串扩展
新增方法
includes(): 返回布尔值,表示是否找到了参数字符串。
startsWith(): 返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith(): 返回布尔值,表示参数字符串是否在原字符串的尾部
repeat(): 返回一个新字符串,表示将原字符串重复n次。
padStart(): 用于头部补全
padEnd(): 用于尾部补全。
详细
5.数值扩展
新增方法
Number.parseInt() : 函数可解析一个字符串,并返回一个整数。
Number.isInteger()用来判断一个数值是否为整数。返回true false(JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 11 和 11.0 被视为同一个值。)
Math.ceil() 返回大于或等于一个给定数字的最小整数(上舍入)
Math.floor() 返回小于或等于一个给定数字的最大整数(下舍入)
Math.round() 返回一个数字四舍五入后最接近的整数(四舍五入)
Math.trunc() 用于去除一个数的小数部分,返回整数部分。
Math.sign() 方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。(返回五种值)
//正数,返回+1
//负数,返回-1
//0 返回0
//-0 返回-0
//其它值 返回NaN
6.ES6中新增的Set、Map两种数据结构怎么理解?
7.你是怎么理解ES6中 Promise的?使用场景?
Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大
详解
8.怎么理解ES6中 Generator的?使用场景?
Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同
详解
9.你是怎么理解ES6中Module的?使用场景?
CommonJs (典型代表:node.js早期)
AMD (典型代表:require.js) 异步加载模块
CMD (典型代表:sea.js) 通用加载模块
ES6模块化 import export
详细