zoukankan      html  css  js  c++  java
  • ES6学习总结

    1、let和const

    (1)let声明的变量只在块级作用域中有效;let声明的变量不会变量提升(变量在声明前使用);let不允许在一个作用域内重复声明一个变量

    (2)const声明的变量如果是一个对象,不变的是指向这个对象的地址,对象的值是可变的

    (3)var和function声明的全局变量是顶层对象的属性,let、const和class声明的全局变量不属于顶层对象的属性

    2、解构赋值

    (1)数组的解构赋值:解构赋值允许指定默认值:let [a, b=1] = [1] //a=1, b=1,只有当一个数组成员严格等于undefined,默认值才会生效,默认值可以引用解构赋值的其他变量,但该变量必须已经声明:let [a=1, b=a] = [] //a=1, b=1

    (2)对象的解构赋值:let {a, b} = {a: 1, b: 2} //a=1, b=2,变量必须与属性同名才能取得正确的值。对象的解构赋值可以很方便的将某个对象的方法,赋值到某个变量:let {sin, cos, log} = Math。如果变量名和属性名不一致,必须写成这样 let {a: x, b: y} = {a: 1, b: 2} //x=1, y=2,也就是说对象的解构赋值的内部机制是先找到同名属性,然后再赋给对应的变量,真正被赋值的是后者而不是前者

    (3)注意点:

      a.将一个以声明的变量用于解构赋值,要非常小心:let x; {x} = {x: 1}会报错,因为js引擎会将{x}理解成一个代码块,从而发生语法错误,正确的写法:let x; ({x} = {x: 1})

      b.由于数组的本质是特殊的对象,因此可以对数组进行对象属性的结构:let arr = [1, 2, 3] let [0: first, [arr.length-1]: last] = arr //first=1, last=3

    (4)字符串的解构赋值:const [a, b, c, d, e] = 'hello' //a=h,b=e,c=l,d=l,e=o

    (5)函数参数的解构赋值:function add([x, y]) {return x+y}; add([1, 2]) //3

    (6)用途:

      a.交换变量的值:let x=1,y=2; [x, y] = [y, x];

      b.从函数返回多个值:function example() {return [1, 2, 3]}; let [a, b, c] = example();

      c.提取JSON数据:let jsonData = {id: 1, name: 'xiaoming'}; let { id, name } = jsonData;

      d.遍历map结构:for (let [key, value] of map) {console.log(key,value)}

      e.输入模块的指定方法:const { get } = require('axios')

    3、字符串的扩展

    (1)for of循环遍历

    (2)includes()、endsWith()、startsWith(),这三种方法可以用来确定一个字符串是否包含在另一个字符串中,都支持第二个参数,表示开始搜索的位置,不过endsWith是针对前n个字符

    (3)repeat()方法返回一个新字符串,表示将原字符串重复n次 'x'.repeat(3) //'xxx',如果是小数会被取整'x'.repeat(2.9) //'xx',参数如果是字符串会先转为数字

  • 相关阅读:
    数组的操作方法
    数组遍历的方法以及区别
    组件内的守卫
    路由守卫
    软件工程
    java web (j2ee)学习路线 —— 将青春交给命运
    团队作业(一)- 第五组
    软件工程
    软件工程-第二次作业
    java局部/成员/静态/实例变量
  • 原文地址:https://www.cnblogs.com/ruoshuisanqian/p/10656481.html
Copyright © 2011-2022 走看看