zoukankan      html  css  js  c++  java
  • 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个新函数。

  • 相关阅读:
    Windows Azure Cloud Service (14) 使用Windows Azure诊断收集日志记录数据
    Windows Azure Cloud Service (13) 用Visual Studio 2010 将应用程序部署到Windows Azure平台
    Windows Azure Cloud Service (15) 多个VM Instance场景下如何处理ASP.NET Session
    Windows Azure Storage (5) Windows Azure Drive
    Windows Azure Storage (7) 使用工具管理Windows Azure Storage
    SQL Azure(二) SQL Azure vs SQL Server
    webbrowser的自动提交
    提取视频的背景声音的软件
    Listview列排序的bug原因
    两个奇怪的问题
  • 原文地址:https://www.cnblogs.com/samsimi/p/6547497.html
Copyright © 2011-2022 走看看