变量是什么

107 阅读2分钟

js入门

1.变量

1.1 js中声明变量的方式有

1.var 2.let 3.const (常量)

``` /*   let a = 10
      // 变量可以理解为一个容器
      // 声明变量可以使用let + 变量名 = 储存对象
      console.log(a); */

    // let 和 Var 的区别



    // 1.变量提升
    // let 声明的变量作用域为语句所在的代码块内,没有变量提升
    // var 声明的变量作用域为语句所在的函数内(局部作用域内),有变量提升的问题


    // 举例1
    // let 配合循环
    /*  for (let i = 1; i < 10; i++) {
       console.log(i);
     } */
    // console.log(i);
    // 使用let 循环打印出来的结果
    // 循环里为1-9
    // 循环外则报错变量i未定义


    // var 配合循环
    /*     for (var j = 1; j < 10; j++) {
          console.log(j);
        }
        console.log(j); */
    // 使用var 循环打印出来的结果
    // 循环里为1-9
    // 循环外为10,因为循环里判断为<10,但是最后一次执行循环j=10不满足条件会把j为10带到循环外面,所以循环里面是1-9,循环外面为10.

    // 2.重复声明
    // let 不允许在相同的作用域内,重复声明
    // 举例

    /*
     let b = 1
     let b
     var b

     报错:标识符b已被声明 
     同理 , 如果下面继续声明变量var b 也会报错
     */


    /*    var c = 1
          var c = 2
       // let c = 3
       console.log(c); */
    // var 重复命名则会覆盖前面的值 , 但是后面的 let 变量还是会报错:标识符已被声明


    // 3.函数的参数重新声明,报错
    // function fn(a) {
    //   let a = 1
    // }
    // 这里会报错 : 标识符a已被声明,所以函数里面变量命不能和函数的形参名字相同。
    // 但是可以在函数里面添加一个花括号{}(局部作用域里面添加一个块作用域)
    // 例如:
    function fn1(b) {
      {
        let b = 1
        console.log(b);
      }
    }
    fn1()