• es6+最佳入门实践(1)


    1.let和const

    1.1.let和块级作用域

    在es5中,js的作用域分为全局作用域和局部作用域,通常是用函数来区分的,函数内部属于局部作用域,在es6中新增了块级作用域的概念,使用{}括起来的区域是一个块级作用域

    {
        var a = 10
    }
    // 输出10
    console.log(a) 
    

    如果上述代码中定义变量的时候使用let,在外面使用变量a就会报错

    {
        let a = 10
    }
    // 以下输出会报错
    console.log(a) 
    

    es6中新增了块级作用域,let定义的a只能在当前的{}中使用,在括号外面会报错

    注意: 不能重复去定义一个变量,例如,下面这种写法就会报错

    let b = 10
    let b = 20
    

    如上代码,重复定义一个变量b会报错

    1.2.const命令

    const命令和let命令的区别是const定义的是常量,let定义的是变量,常量通常是不会被修改的

    # 定义常量PI
    const PI = 3.1415926
    console.log(PI)
    

    const 也是在当前块级作用域中有效

    {
        const PI = 3.1415926
    }
    console.log(PI)
    
    

    如果像上面代码中那样写会报错,const在块级作用域中定义,就不能在外面打印,否则会报错

    注意1:常量是不能被修改的(存储基本数据类型的时候),如果试图去修改它,会报错,但是如果存储的是对象,那么引用不可以被改变,至于对象里面的数据如何变化,是没有关系的

    const PI = 3.14
    //这里会报错,因为存储的是基本数据类型 字符串
    PI = 3.2  
    
    //这样写是会报错的,引用关系被改变了
    const BASE = {}
    BASE = {}   //这里直接赋值一个新对象 引用关系发生变化 会报错
    
    //如果只改变对象中的数据,那是不会报错的,例如下面这样写
    
    BASE.a = 123  //这里只是给对象添加了属性 并没有改变对象引用
    
    

    注意2: const 也不能重复定义,否则会报错

    const PI = 3.14
    const PI = 3.14  // 这里也会报错
    

    注意3: const定义常量时必须赋值

    const PI
    PI = 3.14 //这里也会报错
    

    视频教程地址:http://edu.nodeing.com/course/50

  • 相关阅读:
    poj 3253 Fence Repair (优先队列,哈弗曼)
    容斥原理 (转载)
    poj 1088 滑雪 DP(dfs的记忆化搜索)
    饭卡 01背包 + 贪心
    N分之一 竖式除法模拟
    poj2325 大数除法+贪心
    优先队列重载运算符< 以及初始化列表
    POJ 2718 Smallest Difference(贪心 or next_permutation暴力枚举)
    HASH算法
    字符串匹配算法——KMP算法
  • 原文地址:https://www.cnblogs.com/dadifeihong/p/10358106.html
Copyright © 2020-2023  润新知