美文网首页
ES6新特性

ES6新特性

作者: 海贼王Lorrin | 来源:发表于2022-08-08 23:15 被阅读0次

    面试遇到了,当时没反应过来,后来一查,哦,就这,我不是天天用吗,下面我整理分享给大家,切记牢记“有时候会用不一定能回答出来”

    https://www.runoob.com/w3cnote/es6-tutorial.html

    1、const 和 let

    const定义变量必须赋值,且不能更改

    let 代码块内有效,没有变量声明提升

    暂时性死区: let或const在 {}中定义,外部有同样的名称的变量,会优先取{}内定义的,如果在定义前使用,会报错Cannot access '变量名' before initialization

    2、箭头函数,便于阅读,箭头函数内部this默认指向window,实际调用了.bind(this)

    3、模板字符串`${1+2+3}`  可以任意拼接字符和变量

    4、默认参数,定义函数可以设置默认参数

    function aa(type = 1){ ..... }

    5、解构赋值,const {foo, bar} = {foo: 'aaaa', bar: 'bbbb'}

    6、import 和 export

    7、promise,异步解决方案,js是单线程的,.then(), .catch()方法继续执行和捕获异常中断

    8、扩展符…

    ①能收集形参 ...args 到一个数组内,替代arguments

    ②解构数组

    ③合并并浅拷贝数组

    9、解构模型

    let [a, b, c] = [1, 2, 3];// a = 1// b = 2// c = 3

    剩余运算符

    let [a, ...b] = [1, 2, 3];//a = 1//b = [2, 3]

    10、calss定义类

    11、新的数据类型Symbol

    每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。

    12、Map 对象

    Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

    // 将会显示两个 log。 一个是 "0 = zero" 另一个是 "1 = one"

    for (var [key, value] of myMap) {  console.log(key + " = " + value);}

    // 将会显示两个 logs。 一个是 "0 = zero" 另一个是 "1 = one"

    myMap.forEach(function(value, key) { console.log(key + " = " + value);}, myMap)

    13、Set 对象

    Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

    作用:数组去重var mySet = new Set([1, 2, 3, 4, 4]);[...mySet]; // [1, 2, 3, 4]

    14、Reflect 与 Proxy

    15、拓展的方法子串的识别

    includes():返回布尔值,判断是否找到参数字符串。

    startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。

    endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。

    let string = "apple,banana,orange";string.includes("banana"); // truestring.startsWith("apple"); // truestring.endsWith("apple"); // falsestring.startsWith("banana",6) // true

    16、字符串重复respeat

    repeat():返回新的字符串,表示将字符串重复指定次数返回。

    console.log("Hello,".repeat(2));  // "Hello,Hello,"

    如果参数是小数,向下取整

    console.log("Hello,".repeat(3.2));  // "Hello,Hello,Hello,"

    如果参数是 0 至 -1 之间的小数,会进行取整运算,0 至 -1 之间的小数取整得到 -0 ,等同于 repeat 零次

    console.log("Hello,".repeat(-0.5));  // ""

    如果参数是 NaN,等同于 repeat 零次

    console.log("Hello,".repeat(NaN));  // ""

    如果参数是负数或者 Infinity ,会报错:

    console.log("Hello,".repeat(-1));  // RangeError: Invalid count valueconsole.log("Hello,".repeat(Infinity));  // RangeError: Invalid count value

    如果传入的参数是字符串,则会先将字符串转化为数字

    console.log("Hello,".repeat("hh")); // ""console.log("Hello,".repeat("2"));  // "Hello,Hello,"

    16、字符串补全

    padStart:返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。

    padEnd:返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。

    以上两个方法接受两个参数,第一个参数是指定生成的字符串的最小长度,第二个参数是用来补全的字符串。如果没有指定第二个参数,默认用空格填充。

    console.log("h".padStart(5,"o"));  // "ooooh"console.log("h".padEnd(5,"o"));    // "hoooo"console.log("h".padStart(5));      // "    h"

    如果指定的长度小于或者等于原字符串的长度,则返回原字符串:

    console.log("hello".padStart(5,"A"));  // "hello"

    如果原字符串加上补全字符串长度大于指定长度,则截去超出位数的补全字符串:

    console.log("hello".padEnd(10,",world!"));  // "hello,worl"

    常用于补全位数:

    console.log("123".padStart(10,"0"));  // "0000000123"

    17、数值表示新方法

    18、新增Math函数方法

    Math.trunc 用于返回数字的整数部分

    Math.hypot 用于计算所有参数的平方和的平方根

    Math.cbrt 用于计算一个数的立方根。

    双曲函数方法

    Math.sinh(x): 用于计算双曲正弦。

    Math.cosh(x): 用于计算双曲余弦。

    Math.tanh(x): 用于计算双曲正切。

    Math.asinh(x): 用于计算反双曲正弦。

    Math.acosh(x): 用于计算反双曲余弦。

    Math.atanh(x): 用于计算反双曲正切。

    19、对象字面量

      属性的简洁表示法

    20、对象的新方法

    Object.assign(target, source_1, ···)

    数组的处理

    Object.assign([2,3], [5]);  // [5,3]

    同名属性替换

    targetObj = { a: { b: 1, c:2}};sourceObj = { a: { b: "hh"}};Object.assign(targetObj, sourceObj);targetObj;  // {a: {b: "hh"}}

    21、数组创建

    Array.of()

    将参数中所有值作为元素形成数组。

    22、keys() 遍历键名

    23、函数参数扩展

    24、as 的用法  不同模块导出接口名称命名重复, 使用 as 重新定义变量名。

    25、export default 命令

    在一个文件或模块中,export、import 可以有多个,export default 仅有一个。

    export default 中的 default 是对应的导出接口变量。

    通过 export 方式导出,在导入时要加{ },export default 则不需要。

    export default 向外暴露的成员,可以使用任意变量来接收。

    具体的可以参考ES6新特性表单仔细阅读

    相关文章

      网友评论

          本文标题:ES6新特性

          本文链接:https://www.haomeiwen.com/subject/zgxgwrtx.html