zoukankan      html  css  js  c++  java
  • var let const

      重复定义 修改值 声明提升 块级作用域 循环
    var ×(function除外)
    let × ×
    const × ×(数组对象除外) × ×

    声明提升:var a = 1这句话会被浏览器读成 var aa = 1两句话执行,其中var a会在编译阶段就先执行了,而a = 1这段赋值代码会在原地等待执行阶段。

    var重复定义变量会覆盖之前的值,可以修改,var声明的变量的作用域是定义变量的整个函数

    function testVar(){
     var a = 0;
        if(true){ 
          var a =1;
          console.log(a)//输出1,两个a是同一个变量
        }
        console.log(a)//输出1
    }



    var temp = new Date();console.log(temp);
    function f(){
      console.log(temp);//输出undefined  外边的temp作用不到function中 内部的temp会被声明提升
      if(false){
        var temp = "hello";
      }

    }
    f();

    let不能重复定义变量也不能声明提升,let声明的变量的作用域是当前块

    function testLet(){
     let a = 0;
        if(true){ 
          let a =1;
          console.log(a)//输出1,两个a是不同的变量
    } console.log(a)//输出0 }

    const定义的变量只读不可修改,但是数组的对象除外

    const a={}; a.b=13;//不会报错 
    const arr=[]; arr.push(123);
    //不会报错
  • 相关阅读:
    Git
    Qcon2016上海站PPT
    TeamCity
    在cmd界面,怎么样退出Node.js运行环境
    python 2.x与python3.x的区别
    d3.max()与d3.min()
    d3.svg.line() 曲线构造器
    d3.js 之SVG:矢量化图形绘制
    moment.js 时间格式化库
    directive
  • 原文地址:https://www.cnblogs.com/lovetl/p/13397843.html
Copyright © 2011-2022 走看看