• ES6入门之let、const、解构赋值、字符串string新特性、数值的扩展


    最近在看es6的一些新的方法和属性,太细的就不在这里分享了,把看到的总结这里跟大家分享一下...文章可能会有点长,但应该都是不烧脑的~~

    1.let关键字

    用let声明变量只在块级作用域起作用,适合在for循环使用,也不会出现变量提升现象。同一个代码块内,不可重复声明的相同变量,不可重复声明函数内的参数。

    2.const

    const也是用于声明一个常量,并必须赋值,声明后不可修改,跟let一样,只在块级作用域起作用,不可重复声明同一个变量,不会变量提升,声明引用类型的常量时,要注意是传址赋值。

    3.解构赋值

    数组解构

       var [a,b,c=3] =[1,2,4];
         console.log(a);//结果:a的值为1
         console.log(b);//结果:b的值为2
         console.log(c);//结果:c的值为4

    对象解构

         var { a,b,c} = {"a":1,"b":2,"c":3};
         console.log(a);//结果:a的值为1    
         console.log(b);//结果:b的值为2
         console.log(c);//结果:c的值为3

    字符串解构

        var [a,b,c,d,e,f] = "我是字符串";
        console.log(a);//
        console.log(b);//
        console.log(c);//
        console.log(d);//
        console.log(e);//
        console.log(f);//undefined

    解构赋值给我们一种新的变量赋值方式,主要可以利用数组解构赋值和对象解构赋值。它的用途包括:交换变量值,提取函数返回值,函数参数定义,默认值设定等等,都给我们编程带来便利,在未来的代码中会见到越来越多人使用这个新特性。

    4.字符串String新特性

    模板字符串

       let name = "Jacky";
        let occupation = "doctor";
        //模板字符串拼接
        let str = `He is ${name},he is a ${occupation}`;//这里需要注意的是反引号
        //支持表达式运算
        var obj = {"a":1,"b":2};
        var str = `the result is ${obj.a+obj.b}`;
        //支持函数调用
        function fn() {
        return 3;
        }
        var str = `the result is ${ fn() }`;

    标签模板

        var name = "张三";
        var height  = 1.8;
        tagFn`他叫${name},身高${height}米。`;
        //标签+模板字符串
    
        //定义一个函数,作为标签
        function tagFn(arr,v1,v2){
          console.log(arr); 
          //结果:[ "他叫",",身高","米。" ]
          console.log(v1); 
          //结果:张三
          console.log(v2); 
          //结果:1.8
         }

    repeat函数

        var name1 = "我是字符串";  //目标字符串
        var name2 =  name1.repeat(3);
        //变量name1被重复三次;
        console.log(name1); 
        //结果:我是字符串
        console.log(name2);
        //结果:我是字符串我是字符串我是字符串

    includes函数

        var name = "字符串";    //目标字符串
        name.includes('');   
        //true, 含有
        name.includes('web');  
        //false, 不含有
        name.includes('',1); 
        //false, 从第2个字符开始搜索, 不含有

    startsWith函数

        var name = "字符串";  //目标字符串
        name.startsWith(''); 
        //true,出现在开头位置
        name.startsWith(''); 
        //false,不是在开头位置
        name.startsWith('',1); 
        //true,从第2个字符开始

    endsWith函数

        var name = "我是字符串啊";    //目标字符串
        name.endsWith('');
        //false,不在尾部位置
        name.endsWith(''); 
        //true,在尾部位置
        name.endsWith('',5); 
        //false,只针对前5个字符
        name.endsWith('',6);
        //true,针对前6个字符

    String.raw函数

        console.log(String.raw`hello
    wolrd`);
        //输出:hello
    wolrd
    5.数值的扩展
    • 数值方法之前都是在window下的方法,es6都移动了Number对象下了,目的就是减少全局函数,增强模块化...

    Number.isNan函数判断非数值

        Number.isNaN(2.5); //结果:false
    
    与之前window.isNaN用法不同的是,之前会把字非数值转换了再判断,现在是直接判断不转换
    

    Number.isFinite函数 用来检查一个数值是否非无穷

        Number.isFinite(1);
        //结果:true,数值1是有穷,即非无穷
    
        Number.isFinite(Infinity);
        //结果:false,Infinity表示无穷大的特殊值
      
        Number.isFinite('abc'); //结果:false

    Number.parseInt函数解析一个字符串,返回一个整数

       //传统用法:
       parseInt('12.3abc');  
       //结果:返回数值12
    
       //ES6用法:
       Number.parseInt('12.3abc');
       //结果:返回数值12

    Number.parseFloat函数解析一个字符串,返回一个浮点数

       //传统用法:
       parseInt('12.3abc');
       //结果:返回数值12
    
      //ES6用法:
       Number.parseInt('12.3abc');
      //结果:返回数值12

    Number.isInteger函数 用来判断是否为整数

        Number.isInteger(3.2);
        //结果:false
    
        Number.isInteger(3);
        //结果:true

    Math.trunc函数去除一个数的小数部分

       Math.trunc(3);
       //结果:3
    
       Math.trunc(3.1);
      //结果:3

    Math.sign函数用来判断是正数,负数,还是零

       Math.sign(3);
       //结果:1
    
       Math.sign(-3);
       //结果:-1
    
       Math.sign(0);
       //结果:0
    
       Math.sign('abc');
       //结果:NaN

    Math.cbrt函数计算一个数的立方根

       Math.cbrt(8);
       //结果:2
    
       Math.cbrt(27);
      //结果:3

    ES6对Number对象新增了isInteger函数、极小常量Number.EPSILON、安全整数;还将window对象下的4个函数移植到了Number对象下;此外,对Math对象扩展了17个新函数。

  • 相关阅读:
    高级开发必须理解的Java中SPI机制
    希尔排序--python
    SpringContextAware使用详解
    visio professional 2013 密钥
    二分查找--python
    [Oracle]单行字符函数
    [Oracle]sqlplus调整列宽
    [Oracle]MacOS sqlplus上下选择命令
    [Oracle]开启SCOTT账户
    [Oracle]Macos 安装Oracle Client 11g 11.2.0.4
  • 原文地址:https://www.cnblogs.com/samsimi/p/6547497.html
Copyright © 2020-2023  润新知