zoukankan      html  css  js  c++  java
  • js中let和var定义变量的区别

    let变量之前没见过,刚遇到,探探究竟。

    以下转自:http://blog.csdn.net/nfer_zhuang/article/details/48781671

    声明后未赋值,表现相同

    复制代码
    (function() {
          var varTest;
          let letTest;
          console.log(varTest); //输出undefined
          console.log(letTest); //输出undefined
        }());
    复制代码

    使用未声明的变量,表现不同:

    复制代码
    (function() {
      console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行)
      console.log(letTest); //直接报错:ReferenceError: letTest is not defined
    
      var varTest = 'test var OK.';
      let letTest = 'test let OK.';
    }());
    复制代码

    重复声明同一个变量时,表现不同:

    复制代码
    (function() {
          "use strict";
          var varTest = 'test var OK.';
          let letTest = 'test let OK.';
    
          var varTest = 'varTest changed.';
          let letTest = 'letTest changed.'; //直接报错:SyntaxError: Identifier 'letTest' has already been declared
    
          console.log(varTest); //输出varTest changed.(注意要注释掉上面letTest变量的重复声明才能运行)
          console.log(letTest);
        }());
    复制代码

    变量作用范围,表现不同:

    复制代码
    (function() {
      var varTest = 'test var OK.';
      let letTest = 'test let OK.';
    
      {
        var varTest = 'varTest changed.';
        let letTest = 'letTest changed.';
      }
    
      console.log(varTest); //输出"varTest changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明
      console.log(letTest); //输出"test let OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量
    }());
    复制代码

    备注:

    使用 let 语句声明一个变量,该变量的范围限于声明它的块中。  可以在声明变量时为变量赋值,也可以稍后在脚本中给变量赋值。  

    使用 let 声明的变量,在声明前无法使用,否则将会导致错误。

    如果未在 let 语句中初始化您的变量,则将自动为其分配 JavaScript 值 undefined

  • 相关阅读:
    2016-8-29
    2016-8-25
    2016-8-24
    2016-8-23
    2016-8-22
    2016-8-16
    2016-8-15
    深圳_多测师面试 __腾讯云/_高级讲师肖sir
    深圳_多测师面试 _新字节跳动(2020年10月23日)_高级讲师肖sir
    多测师讲解自动化 _RF_(202)高级讲师肖sir
  • 原文地址:https://www.cnblogs.com/AlvinCrash/p/6242840.html
Copyright © 2011-2022 走看看