做网站包括什么,建设广告网站,秀米网站怎么做推文,网站设计价钱Javascript let和const
在 ES6 之前#xff0c;JavaScript 只有两种作用域#xff1a;
全局变量 #xff1a; 在函数外声明的变量作用域是全局的
局部变量#xff08;函数变量#xff09;#xff1a;在函数内声明的变量作用域是局部的
script typetext/jav…Javascript let和const
在 ES6 之前JavaScript 只有两种作用域
全局变量 在函数外声明的变量作用域是全局的
局部变量函数变量在函数内声明的变量作用域是局部的
script typetext/javascriptvar a aaa;console.log(a) // aaafunction myFunction() {var b bbb;console.log(a) // aaaconsole.log(b) // bbb// 这里也可以使用 carName 变量}console.log(b) // 报错/script块级作用域 1 块级作用域不影响var声明的变量。使用 var 关键字声明的变量不具备块级作用域的特性它在 {} 外依然能被访问到。
{ var x 2;
}
console.log(x) // 2let i 5;
for (let i 0; i 10; i) {// 一些代码...
}
console.log(i); // 52let a) 声明的变量只在所处于的块级有效 b) let没有‘变量提升’的特性而是‘暂时性死区temporal dead zone’特性。
function func(args){if(true){console.log(i); // Cannot access i before initializationlet i 6;console.log(i); // 6}console.log(i); // i is not defined
};
func();一个经典例子
var arr [];
for(var i 0; i 2; i){arr[i] function(){console.log(i);};
};
arr[0](); // 2
arr[1](); // 2use strict;
var arr [];
for(let i 0; i 2; i){arr[i] function(){console.log(i);};
};
arr[0](); // 0
arr[1](); // 13) const a) 声明的变量只在所处于的块级有效 b) const是用来声明恒定变量的声明的同时就必须赋值否则会报错。
const 定义的变量并非常量并非不可变它定义了一个常量引用一个值。使用 const 定义的对象或者数组其实是可变的。
// 创建常量对象
const car {type:Fiat, model:500, color:white};
// 修改属性:
car.color red;
// 添加属性
car.owner Johnson;不能对常量对象重新赋值
const car {type:Fiat, model:500, color:white};
car {type:Volvo, model:EX60, color:red}; // 错误