码迷,mamicode.com
首页 > Web开发 > 详细

01-let和const.html

时间:2020-06-25 09:38:54      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:就会   html   inf   size   span   ima   style   read   function   

1.什麽叫做ES6?

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。

參考:https://www.runoob.com/w3cnote/es6-tutorial.html

2.1 let的用法

 

<script type="text/javascript">
    /*console.log(a)
    //Uncaught ReferenceError: a is not defined
    //会提示a未被定义
    */
    //
    //let声明的变量,属于块级作用于域、不存在变量提升、不允许复数声明;
        {
            let a = 10;
            /*let a = 20;
            //Uncaught SyntaxError: Identifier ‘a‘ has already been declared
            //会提示a被重复定义了
            */
            console.log(a);
        }
    </script>

 

笔记:

let声明的变量,属于块级作用于域、不存在变量提升、不允许复数声明;
如果在块以外打印 let声明的变量 a 会提示,a未被定义
Uncaught ReferenceError: a is not defined
如果块内已经用let声明过的变量a ,再次用let声明,会提示 a 是已经声明过的标识符。
Uncaught SyntaxError: Identifier ‘a‘ has already been declared
为什么需要块作用域?
原因一:内存变量可能会覆盖外层变量。
        function foo(a){
            console.log(a);
            if (a==2){
                var a = ‘hello es6‘;
                console.log(‘看看我被覆盖了没‘)
                console.log(a);
            }
        }
        var a = 2;
        foo (a);
原因二:用来计数的循环遍历会泄露为全局变量。
        var arr = [];
        //var i;
        //i没有定义全局变量,for语句里面定义的循环变量,因变量提升,变成了全局变量
        for (var i = 0; i < 10; i++){
            arr[i] = function () {
                return i;
            }
        }
        //期望值希望是5,输出的却是10,不管是a[5]还是a[1] a[2] a[3]都会输出10
        //当调用 arr[5]函数时,函数内没有声明i,所以直接引用了全局变量i
        console.log(arr[5]());
原因二也有用js的闭包办法来解决问题,代码如下:
        var arr = [];
        for (var i = 0; i < 10; i++){
            arr[i] = (function (j) {

                return function(){
                    return j;
                }
            })(i)
        }
        console.log(arr[5]());

2.1 const 基本用法-声明只读的常量

这意味着,const-旦声明变量,就必须立即初始化,不能留到以后赋值。对于const来说,只声明不赋值,就会报错。

        const a =10;
        //不会报错
        const b;
        //报错

与let的相同点

  • 块级作用域
  • 暂时性死区
  • 不可重复声明

let和const的使用建议。

在默认情况下用const,而只有你在知道变量会被修改的情况下,才用let。

其他笔记截图:
技术图片

 

 

  技术图片

 

 输出结果 res 是一个新的对象。

技术图片

 

 


视频看到48:04,太晚了,明天看了。感谢小马哥。

 

01-let和const.html

标签:就会   html   inf   size   span   ima   style   read   function   

原文地址:https://www.cnblogs.com/Dmail/p/13190842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!