1、声明的变量属于块级作用域
//属于块级作用域,没有变量提升
function test(){
for(let i=1;i<3;i++){ //这个括号内属于块级作用域,let 声明的变量只在其的作用域内有效
console.log(i); // i 的值 为 1、 2
}
console.log(i); // 由于脱离了作用域,访问不到块级作用域里的i , 所以 i 为undefined
}
如果将 let 换成了 var, 则结果如下
function test(){
for(var i=1;i<3;i++){
console.log(i); // 1 2
}
console.log(i); // 3
}
2、let
//使用let 声明的变量不能重复声明
{
let a = 1;
let a = 2;
console.log(a) // 报错
}
3、 const
function test(){
// 使用const 声明的变量必须赋值
const w;
w = 123 ;
console.log (w) // 报错
}
function test(){
// 使用 const 声明的变量如果为数值,则不可修改
const PI=3.1415926;
PI = 66;
console.log (PI) // 报错, 'PI' is read-only
}
function test(){
// 但是如果声明的是对象,因为对象是引用类型,返回值为对象内存的指针,声明的这个对象
// 对象存储的是指针,指针是不变的,对象的内容是可以改变的
const k={
a:6
}
k.b=8;
console.log(k); // 输出的值为 6 8
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66478.html