1.let和const

2020-06-28  本文已影响0人  web_jianshu
<!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></body>

</html>

<script>

  // 通过var 来定义变量的时候有什么缺点

  // 1:变量会提升

  // 2:没块级作用域,全局变量污染

  // console.log(a);

  // var a = '知了堂'

  // for (var i = 0; i < 3; i++) {

  //   console.log(i);

  // }

  // console.log(i);

  // console.log(a); // let和const.html:67 Uncaught ReferenceError: Cannot access 'a' before initialization

  // let a = 1;

  // let a = 1;

  // function a() { // Uncaught SyntaxError: Identifier 'a' has already been declared

  // }

  // var a = 1; // 这里a是函数声明的a

  // function a() {}

  // console.log(a); // 1 // JavaScript在编译时会把 相同变量名会把var a忽略

  // // 分析:

  // // 编译过程变量声明提升

  // function a() {}

  // var a;

  // // 执行过程a重新赋值

  // a = 1;

  // { // 块级作用域:定义在块级作用域的变量 只能在块级作用域中进行使用

  //     let a = 1;

  //     console.log(a);

  // }

  // console.log(a); //  a is not defined

  // for (var i = 0; i < 5; i++) {

  //   setTimeout(function() {

  //     console.log(i);

  //   }, i * 1000);

  // }

  // for (let i = 0; i < 3; i++) { // 想要输出的是 0,1,2

  //     setTimeout(function () {

  //         console.log(i);

  //     }, i * 1000)

  // }

  // console.log(i); //  i is not defined

  // const 在某一些情况下面,我们需要定义一个全局变量,这个全局变量不能被修改

  // 通过const来定义的变量是一个常量,不允许被修改,通时也会产生一个块级作用域

  // const PI = 3.14;

  // PI = 111;

  // console.log(PI); // let和const.html:111 Uncaught TypeError: Assignment to constant variable.

</script>
上一篇 下一篇

猜你喜欢

热点阅读