美文网首页
ECMAScript 中的 let 和var

ECMAScript 中的 let 和var

作者: divine_zhouo | 来源:发表于2017-09-06 16:17 被阅读0次

一:var声明的变量

全局作用域、局部作用域

var a = 1;     //a为全局变量,可以在任何地方使用

for(var i = 0; i < 3; i++){   //i 为全局变量                                                       

   function ff(){

       var b = "b" //b为局部遍历,只能在ff中使用

   }

}

console.log(a,b,i)    //结果为:1、报错(not defined)、4

二:let声明的变量

一:let声明的变量只在let命令所在的代码块内有效。如下面for循环中 i 就只在for循环中有效

二:不存在变量提升

三:不存在变量提升(使用的变量必须先声明)

四:let不允许在相同作用域内,重复声明同一个变量。(下面的for是个例外)

       for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。

let  a = 1;    //a为全局变量,可以在任何地方使用

for(let i = 0; i < 3; i++){   //i 为全局变量

   function ff(){

      let b = "b" //b为局部遍历,只能在ff中使用

}

}

console.log(a,b,i)    //结果为:1、报错(not defined)、报错

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

      i = "a"      // 即  var  i = "a"   i  作为全局变量,被赋值 a 所以循环只走了一次  就结束了

      console.log(i)   //打印一次 “a”

}

for(let  i = 0; i < 3; i++){

i = "a"      //    i  作为for代码块的局部变量,被赋值 a, 所以循环只走了一次  就结束了

console.log(i)   //打印一次 “a”

// 若改为下面的

let  a = "a"

console.log(a)   //打印 3 次 “a”

}

相关文章

  • ECMAScript 中的 let 和var

    一:var声明的变量 全局作用域、局部作用域 var a = 1; //a为全局变量,可以在任何地方使用for...

  • js 中var contst let 之间的区别

    ECMAScript 6 新增 const 和 let 命令,用来声明变量。 那么const,let和var 在声...

  • ES6第一讲

    ECMAScript 和JavaScript var let const (最近同时在看swift,别乱套了?) ...

  • ES6学习笔记(一)let和const

    ECMAScript6 基础知识掌握 1、let和const var不能用于定义常量var可以重复声明变量var存...

  • ES6基础

    ECMAScript 6学习网站:http://es6.ruanyifeng.com/ 1.let和var的比较 ...

  • let 和 const 命令 变量的解构赋值

    ECMAScript 6 入门 let命令 let 声明变量类似于var。所声明的变量,只在let命令所在的代码块...

  • ES6新增语法之一

    var、let、const三者的区别 首先,一个常见的问题是,ECMAScript 和 JavaScript...

  • var 、let、const的区别

    总结于——阮一峰老师ECMAScript6入门 js变量声明的方式:var、let、constlet 和const...

  • let VS var

    是什么 let const是ECMAScript 6提供的新特性。let可以解决var的“不完美“。 为什么(va...

  • ES6+

    ES6简介 ECMAScript 第六代标准 let 和 const 用于声明变量或声明常量 变量和常量var 和...

网友评论

      本文标题:ECMAScript 中的 let 和var

      本文链接:https://www.haomeiwen.com/subject/dhvgqxtx.html