zoukankan      html  css  js  c++  java
  • es6常用语法(持续更新中)

    参考:阮一峰 es6入门 https://es6.ruanyifeng.com/

    1. let声明的变量只在它所在的代码块有效(for循环器使用等)

      1.1 不存在变量提升,故变量只能先声明再使用

      1.2 不可重复声明

      1.3 暂时性死区

      1.4 块级作用域

    2. const 声明一个只读常量(不允许再改变)

      2.1 不存在变量提升(存在暂时性死区)

      2.2 将一个对象声明为常量必须非常小心

        2.2.1 const 实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。

        2.2.2 将对象保存为常量,需要使用使用Object.freeze方法将对象包括对象属性进行冻结

        

     3. es6声明对象的方法(6种):var function let const import class

    4. 顶层变量:var、function声明的全局变量为顶层变量的属性,let、const、class声明的全局变量不属于顶层变量的属性

    5. 数组的解构赋值

      5.1 为多个变量赋值: let [a, b, c] = [1, 2, 3];

        

      5.2 不完全解构:值多于变量,解构可以成功,否则报错

        5.2.1 如赋值等号右边不是数组(严格言之,非可遍历解构),报错

        5.2.2 对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。

       5.3 默认值:解构赋值允许指定默认值

        

      5.4 ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效 

      

       5.5 对象解构指定默认值

      

       5.6 遍历 Map 结构

       

     6. 模板字符串

      用反引号(`)标识,可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

      6.1 模板字符串中嵌入变量,需要将变量名写在${}之中

      6.2 所有模板字符串的空格和换行都会被保留,可使用trim方法进行消除

      6.3 模板字符串之中还能调用函数

      6.4 如果需要引用模板字符串本身,在需要时执行,可以写成函数

        

    7. 字符串的新增方法

      7.1 repeat(): repeat方法返回一个新字符串,表示将原字符串重复n

        eg: 'x'.repeat(3) // "xxx"

      7.2 padStart(a,b)、padEnd(a,b): 字符串长度补全(头部或尾部),a指期望补全后字符串长度,b是一个补全单位,如果省略第二个参数,默认使用空格补全长度

        eg:'x'.padStart(5, 'ab') // 'ababx'

         7.2.1 用途

        

       7.3 trimStart()、trimEnd(): 消除字符串头部/尾部空格、tab 键、换行符等不可见的空白符号,返回新字符串

       7.4 replaceAll(): 

        eg: 'aabbcc'.replaceAll('b', '_')    // 'aa__cc'
    8.判断参数类型
      8.1 Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity
      8.2 Number.isNaN()用来检查一个值是否为NaN,如果参数类型不是NaNNumber.isNaN一律返回false
      注意:它们与传统的全局方法isFinite()isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,
        再进行判断,而这两个新方法只对数值有效,Number.isFinite()对于非数值一律返回false
        Number.isNaN()只有对于NaN才返回true,非NaN一律返回false
      8.3 Number.isInteger()用来判断一个数值是否为整数,如果参数不是数值,Number.isInteger返回false
      注意: JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值,得到结果为true。
      一些误判情况:
        
      8.4 Number.EPSILON:设置“能够接受的误差范围”
        

      8.5 Math对象的扩展

        8.5.1 Math.trunc方法用于去除一个数的小数部分,返回整数部分

         

         8.5.2 Math.sign(): 用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值.

          返回五种值。参数为正数,返回+1;参数为负数,返回-1;参数为 0,返回0;参数为-0,返回-0;其他值,返回NaN

           


     
  • 相关阅读:
    eclipse中的Invalid text string (xxx).
    在jsp文件中出现Unknown tag (c:out)
    eclipse 界面复原
    ecilpse 纠错插件
    Multiple annotations found at this line:- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    Port 8080 required by Tomcat v9.0 Server at localhost is already in use. The server may already be running in another process, or a system process may be using the port.
    调用第三方https接口
    调用第三方http接口
    创建带值枚举
    spring整合redis之Redis配置文件
  • 原文地址:https://www.cnblogs.com/simpleyou/p/14598464.html
Copyright © 2011-2022 走看看