ES6:let 与 const】的更多相关文章

1.let声明变量,var声明变量,而const声明的常量 2.let与var的区别 let可以让变量长期驻扎在内存当作 let的作用域是分块[ {快1  {快2 }  }每个大括号表示一个独立的块 ]的,块内的变量不会覆盖块外的变量值. { //(模)块1 let a = 1; if(true){ //(模)块2 let a = 2; } console.log(a); //1,因为块内的变量不会覆盖块外的变量值 } let与var:同一个代码块里面不能出现变量重复声明 3.const声明常量…
ES6之前javascript只有全局作用域和函数作用域,所以经常会遇到变量提升了或者使用闭包的时候出错的问题. 所有a[i]都会输出10: var arr=[]; for (var i=0;i<10;i++){ arr[i]=function(){ console.log(i); }; } 变量提升,输出undefined. function showName(){ console.log(name); var name = "Jhon"; } ES6引入了let和const关…
const 用来声明常量.一旦声明,就不能改变. const在声明必须初始化,只声明不赋值会出错 const的作用域与let一样,只在声明的块级作用域有效. const命令声明的常量也不提升,同样存在暂时性死去,只能在声明后使用. 对于复合型变量,变量名不指向数据,而是指向数据所在的地址.const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个变量声明为常量要非常小心. const foo = {}; foo.prop = 123; console.log(foo.pro…
基本用法 ES新增了let命令,用于声明变量.其用法类似于var,但是所声明的变量只在let命令所在的代码块中有效. for(let i = 0;i<5;i++) {} console.log(i);//ReferenceError:i is not defined 而下面代码的var作用就是全局 for (var i = 0; i < 5; i++) {} console.log(i);//5 如果将console.log(i)放在{}中,ES6将会输出6 不存在变量提升 let不像var那…
在ES6中,增加了2个声明变量的关键字:let 和 const.在这里将详细介绍let与var的区别.Babel对let的处理以及const的简单使用. 1. let 在ES6规范中增加了 let 关键字.let有什么用呢?与var有什么区别呢? 1.1 let 的作用 let,可用于声明一个块级作用域的变量. 如在if()语句内用let声明的变量,不会延伸到if()语句外部. function foo() { if (true) { let x = 1; } console.log(x); /…
function test(){ let a = 1 for (let i =0;i<3;i++){ console.log(i)         //1,2 } console.log(i)    //error console.log(a) const app = 1 const data = {   //对象是引用类型,最后返回的是对象存的指针,可以改变内部的值 a: 1 } data.a = 3 console.log(app ,data.a)      // 1  3 } test()…
let声明变量 用法类似于var,但是所声明的变量只在let所在的代码块内有效. 1 . 在ES6环境下,let声明的变量不能在声明之前调用. 例: console.log(i); //会报错,这叫做暂时性死区,会提示 i 未定义 let i ; let不允许在变量还没声明完成前,赋值给其他变量,或者是自己 let a = a; //报错 应该先声明,再赋值 let a ; a = 1; 或者直接赋值 let a = 1; var b = b; //不会报错,但是会返回undefined,没有赋…
1.es6 新增的let const 命令 let用来定义一个局部变量,故名思意就是只在当前代码块可用 1.1 let 声明的变量不存在变量提升(var 声明的变量存在变量提升)且代码块内 暂时性死区 且不允许重复声明 列子 var b = 3; function fn () { console.log (b) var b = 4 } fn(); // undefined //由于存在变量提升 实际代码是 /* var b = 3; function fn () { var b = undefi…
一.let 1.let块作用域 if(true){ var a=1; let b=2; } console.log("a:"+a);//a:1 console.log("b:"+b);//Uncaught ReferenceError: b is not defined 2.let常用于for循环 var a=[]; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); //6…
ECMAScript 是什么? 首先,我们都知道JavaScript由三部分组成:ECMAScript,DOM,BOM: 其中的ECMAScript是Javascript的语法规范. ECMAScript定义了很多东西,如: 语法-----解析规则,关键字,语句,声明,操作等 类型-----布尔型,数字,字符串,对象等 原型和继承 内置对象,函数的标准库----------JSON, Math, 数组方法,对象方法等 浏览器兼容: 目前Google和Firefox浏览器对ES6新特性的兼容最友好…