我是靠谱客的博主 敏感钢铁侠,最近开发中收集的这篇文章主要介绍笔记-ES6-1: let和const,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考:http://es6.ruanyifeng.com/#docs/let

一、let
1、let 只在所在的代码块内有效
2、let没有变量提升现象
3、暂时性死区:只要在块级作用域内存在let命令,它所声明的变量就“绑定”这个区,不再受外部影响
    var tep=13;
    if(true){
        tmp='122';  //报错 ReferenceError
        let tmp;
    }
4、不允许在相同作用域内重复声明同一变量
    (1)// 报错
    function func() {
      let a = 10;
      var a = 1;
    }
    (2)// 报错
    function func() {
      let a = 10;
      let a = 1;
    }
    (3)
    function func(arg) {
      let arg;
    }
    func() // 报错
    (4)
    function func(arg) {
      {
        let arg;
      }
    }
    func() // 不报错
    
二、块级作用域(ES5只有全局作用域和函数作用域)
1、let实际上为JavaScript增加了块级作用域
2、ES6 允许块级作用域的任意嵌套
    {{{{{let insane = 'Hello World'}}}}};
3、外层作用域无法读取内层作用域的变量
    {{{{
      {let insane = 'Hello World'}
      console.log(insane); // 报错
    }}}};
4、在ES6环境中,块级作用域内声明的函数,行为类似于var声明的变量

三、const
1、声明一个只读的常量,一旦声明,值就不能改变
2、一旦声明,就必须立即初始化,不能留到后面赋值
3、只在声明所在的块级作用域内有效
4、声明的常量不提升,只能在声明后使用
5、不可重复声明
6、const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。

最后

以上就是敏感钢铁侠为你收集整理的笔记-ES6-1: let和const的全部内容,希望文章能够帮你解决笔记-ES6-1: let和const所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部