美文网首页
ES2015 let const的用法

ES2015 let const的用法

作者: zshanjun | 来源:发表于2017-04-18 19:31 被阅读34次

传统的var

先看一下下面的代码:

function judge(bool) {
    if (bool) {
        var foo = 'bar';

        console.log(foo);
    } else {
        console.log(foo);
    }
}

judge(false);

//输出undefined

如果参照其它语言,就会觉得很奇怪,为什么不是抛出Uncaught ReferenceError的异常。
这其实是变量提升的问题,相当于在解析时将foo提升到函数的一开始,即相当于以下形式:

function judge(bool) {
    var foo;
    if (bool) {
        foo = 'bar';

        console.log(foo);
    } else {
        console.log(foo);
    }
}

judge(false);

块级作用域的let

块级作用域就不用多说,就是用let定义的变量只在定义它的块中有效,出了这个块你就不能访问到它了。

示例:

function judge(bool) {
    if (bool) {
        let foo = 'bar';

        console.log(foo);
    } else {
        console.log(foo);
    }
}

judge(false);

//抛出Uncaught ReferenceError的异常

ES2015中的常量const

ES2015中常量的实现和一般意义上的常量有一定区别,它虽然是不能对常量进行重新定义,但还是能够修改常量的值的。

示例:

const person = ['jack', 'nike'];

person.push('jobs')

console.log(person);

//输出["jack", "nike", "jobs"]

使用场景

风格一:
1、默认使用let
2、变量定义后不再改变使用const
3、在顶级可以var(一般不用)

风格二:
1、默认使用const
2、需要改变变量值时使用let
3、不使用var

个人可以根据自己喜好,选择某一种风格使用即可。

相关文章

  • ES2015 let const的用法

    传统的var 先看一下下面的代码: 如果参照其它语言,就会觉得很奇怪,为什么不是抛出Uncaught Refere...

  • ES6、ES7常用特性

    一、ES6(ES2015)新特性 1、支持let和const在之前JS是没有块级作用域的,const与let填补了...

  • 认识 ES2015 (一) —— 需要知道的几个特性

    ES2015 特性 1、属性和方法的简写 2、计算属性 3、let和const- let是更完美的var- let...

  • ES6学习笔记-let与const

    ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。 let 声明...

  • ECMAScript 6 入门

    1.let 和 const 命令 let 命令 基本用法 ES 6 新增了 let 命令,用来声明变量,它的用法类...

  • let、const用法

    let 不存在变量提升 暂时性死区 不允许重复声明 块级作用域外层作用域无法读取内层作用域的变量内层作用域可以定义...

  • ES6 笔记(未完)

    一. let 和 const 1 let 基本用法 ES6新增let命令,与var用法类似,但所声明的变量只在声明...

  • 第1章 let和const命令

    基本用法 es6新增了let和const命令。let用于声明变量,用法与var类似,不过let命令声明的变量只作用...

  • 一、块级绑定

    ES2015 一、块级绑定 1、let、const和块级作用域 var 变量提升(hoisting )   使用v...

  • ES6 学习笔记-let

    let 和 const 命令 1. let命令 基本用法 ES6 新增了let命令,用来声明变量。它的用法类似于v...

网友评论

      本文标题:ES2015 let const的用法

      本文链接:https://www.haomeiwen.com/subject/cwsqzttx.html