> <!DOCTYPE html> <html lang="en">
> <head>
> <meta charset="UTF-8">
> <meta name="viewport" content="width=device-width, initial-scale=1.0">
> <meta http-equiv="X-UA-Compatible" content="ie=edge">
> <title>Document</title> </head>
>
> <body>
> <!-- let、const -->
> <!-- 1.let用来声明变量,用法类似var,但是let声明的变量具有块级作用域 -->
> <script>
> {
> var a = 1
> let b = 2
> }
> console.log(a);//1
> console.log(b);//b is not defined
> </script>
>
> <!-- 2.for循环中let声明的变量在外部不能访问到 -->
> <script>
> for (var i = 0; i < 5; i++) {
>
> }
> console.log(i);//5
> </script>
> <script>
> for (let j = 0; j < 5; j++) {
>
> }
> console.log(j);//j is not defined
> </script>
>
> <!-- 3.let声明的变量不存在变量提升, -->
> <script>
> console.log(aa);//undifined
> var aa = 2;
> </script>
> <script>
> console.log(bb);//bb is not defined
> let bb = 2;
>
> </script>
> <!-- 4.let声明的变量存在暂时性死区-TDZ,也就是在块作用域内声明的变量一开始就存在封闭作用域,所以在声明之前使用此变量就会报错 -->
>
> <script>
> var cc = 123;
> {
> cc = '123';//cc is not defined
> let cc;
> }
> </script>
> <!-- 5.let不允许重复声明变量 -->
> <script>
> {
> let d = 1;
> var d = '1';//Identifier 'd' has already been declared
> }
> </script>
> <!-- 6.const用于声明常量,一旦声明不能更改 -->
> <script>
> const x = 1;
> x = 2;//Assignment to constant variable.
> </script>
> <!-- 7.const只声明,不赋值也会报错 -->
> <script>
> const y;//Missing initializer in const declaration
> </script>
>
> <!--
> 其他:const和let一样,在块级作用域内有效,也存在暂时性死区,在声明之前调用也会报错。
> --> </body>
>
> </html>
es6学习-let,const
最新推荐文章于 2022-07-08 17:01:13 发布