ES6 let const笔记
1.let在代码块内有效(块级作用域)
{
let a = 1;
var b = 2;
}
console.log(b);//2
console.log(a);//Uncaught ReferenceError: a is not defined
2.if for循环问题
if循环
if(true){
var a = 1;
}
console.log(a);//1
if(false){
var b = 1;
}
console.log(b);//undefined
if(true){
let c = 1;
}
if(false){
let d = 2;
}
console.log(c);//Uncaught ReferenceError: d is not defined
console.log(d);//Uncaught ReferenceError: d is not defined
for循环
for(var i=1;i<10;i++){
}
console.log(i);//10
for(let j=1;i<10;i++){
}
console.log(j);//Uncaught ReferenceError: j is not defined
for循环
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = i;
}
console.log(a[6]);//6
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
return i;
};
}
console.log(a[6]());//10
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = (function () {
return i;
})();
}
console.log(a[6]);//6
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
return i;
};
}
console.log(a[6]());//6
3.无变量声明提升,存在死区,不能重复申明变量(先申明,后使用)
console.log(a);//Uncaught ReferenceError: a is not defined let a=1; console.log(b);//undefined var b=1;
var a=1;
let a=2;
console.log(a);//Uncaught TypeError: Duplicate declaration "a"
4.const申明变量不能改变(常量),特性与let类似[块级作用域],复合型变量指向地址,,地址固定,内容是可变的
const a = [];
a.push(1);
a.push(2);
console.log(a);//[1,2]
5.跨模块常量,类似于Node的export import
// a.js 模块
export const A = 1;
export const B = 2;
// b.js 模块
import * as constants from './a';
console.log(constants.A); // 1
console.log(constants.B); // 2
// c.js 模块
import {A, B} from './a';
console.log(A); // 1
console.log(B); // 2
浙公网安备 33010602011771号