zoukankan      html  css  js  c++  java
  • 关于加减和es6

    1. console.log(1+ "2"+"2");   //对于加法来说,如果只有一个操作数是字符串,则将另一个操作数也转换为字符串,然后将两者拼接,为122
    2. console.log(1+ +"2"+"2");   //(+"2")应用了一元加操作符,一元加操作符相当于Number()函数,会将 (+"2")转换为2,1+2+"2"=32
    3. console.log("A"- "B"+"2");   //在减法中遇到字符串和加法相反,调用Number()函数将字符串转换为数字,不能转换则返回NaN,此时运用加法规则,NaN+"2","2"是字符串,则将两者拼接。
    4. console.log("A"- "B"+2);   //这个与上面的不太相同,减法运算后依然为NaN,但是加号后面的为数字2,加法规则中,如果有一个操作数是NaN,则结果为NaN
    for(let i=0;i<12;i++){}
    console.log(i);
    //i is not defined

    let 与var不同,存在块级作用域,在for循环中声明,循环之外销毁 所以 i not defined

    const a=12;a=13;console.log(a)
    //TypeError

    const 声明一个常量无法更改,所以TypeError

    const g={b:12};
    console.log(g.b); //12
    g.b=13;
    console.log(g.b);     //13

    g是一个对象 且他的属性b 的值为13,但是!!如果const出来的是一个对象他的属性是可以更改的.

    let [head,...tail]=[1,2,3,4];
    console.log(tail);
    //[2, 3, 4]

    数组的解构赋值

    ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)

    以前,为变量赋值,只能直接指定值。
     
      
    var a = 1; var b = 2; var c = 3;

    ES6允许写成下面这样

    let [foo, [[bar], baz]] = [1, [[2], 3]];
    //foo   1 
    //bar   2
    // baz   3
     
    let [x, , y] = [1, 2, 3];
     // x 1 
    //y  3
     
    let [x, y, ...z] = ['a'];
    //x "a" 
    //y  undefined 
    //z  []
     
    let [head, ...tail] = [1, 2, 3, 4];
    //head 1 
    //tail  [2, 3, 4]

    上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。

    本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。

      基本用法
     
     
        ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
     
        以前,为变量赋值,只能直接指定值。
     
         
    var a = 1; var b = 2; var c = 3;
     
        ES6允许写成下面这样。
     
    var [a, b, c] = [123];
     
    let [foo, [[bar], baz]] = [1, [[2], 3]];
    foo // 1 bar // 2 baz // 3
     
    let [x, , y] = [123];
    // 1 y // 3
     
    let [x, y, ...z] = ['a'];
    // "a" y // undefined z // []
     
    let [head, ...tail] = [1234];
    head // 1 tail // [2, 3, 4]
         
             
     
     
         
     
     let [ , , third] = ["foo""bar""baz"];
    third // "baz"    
    1
    2
    3
    4
    5
    6
    7
    上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。
     
     
     
    本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。
  • 相关阅读:
    iOS开发——网络篇——文件下载(NSMutableData、NSFileHandle、NSOutputStream)和上传、压缩和解压(三方框架ZipArchive),请求头和请求体格式,断点续传Range
    聚类_七月算法4月机器学习班第10次课程笔记
    codejam环境熟悉—Minimum Scalar Product
    STL源码剖析读书笔记--第6章&第7章--算法与仿函数
    STL源码分析读书笔记--第5章--关联式容器
    STL源码剖析读书笔记--第四章--序列式容器
    STL源码分析读书笔记--第二章--空间配置器(allocator)
    树莓PI上跑爬虫
    树莓PI安装jdk1.8,ant,maven【转】
    myeclipse10 安装 testng插件
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/8888821.html
Copyright © 2011-2022 走看看