let与const关键字

71 阅读1分钟

声明变量

           var num
           let num
           const num

区别

let 和 var

          1.let没有变量提升(预解析) let声明量必须先定义再使用
            console.log(num)
            var num = 100
          2. **let声明的变量,不能重复声明变量**
             var num = 100
             var num = 200
          3. let具块作用域
               全局作用域
               局部作用域
               块作用域   let

let声明的变量无法重复声明,且必须先声明再使用

	function test1() {
				let num = 100
				console.log(num)
			}
        function test2(){
                let num = 100
                let num1 = 200 // Identifier 'num' has already been declared
            }
           

什么是块作用域

  局部作用域,在函数体里面的作用域
  在大括号里面的作用域,且只在大括号里面生效,在大括号外面无法调用
  function test3(){
                if(true){
                    let a = 100  // 块作用域
                }
                for(var i = 0; i < 10; i++){
                    let b = 200 //块作用域
                    // console.log('b ',b); 
                }
                // console.log('b ',b); //  b is not defined
            }

const 和 let

          const声明的变量称为常量,只能赋值一次
          const num = 100
          num = 200 x报错 

案例

function test4(){
                const num = 100
                // num = 200   //Assignment to constant variable.
                console.log(num);
            }
            test4()

应用场景

          1.考虑兼容问题
            使用var
          2. 变量可以多次改变值
             let
          3. 变量只赋值一次后,不再改变
            const
            const button = document.quererySelctor('button')