es6---(let const)

let

let用于定义变量,生存周期仅在当前代码块中,var也是用来定义变量,只是用var的时候变量容易泄露,因为如forif的代码块,对var做不到完全的封装,因为var只存在于全局与函数级作用域,let存在于块级作用域

for(var i=0;i<=9;i++){
}
console.log(i);     //i=10

本应该只存在for循环里的i值在循环外也同样获取到了

for(let i=0;i<=9;i++){
}
console.log(i);     //i is not definde

1.let声明的变量只在它所在的代码块有效
2.在同一代码块中let的变量名不可以相同(哪怕上一个是var的变量)

var a='丁小柒';
let a='丁大柒';            //报错,因为之前定义过了

for(let i=0;i<=9;i++){
    let i=3;
    let i=4;//i has already declared(声明)
}

3.当当前代码快与上一级代码快中有同一名称的变量时,会优先当前代码块的变量

for(let i=0;i<=9;i++){
    let i=3;
    console.log(i);//3333333333(每一层循环都输出3)
}

4.块级作用域不仅仅存在于函数,if,for中

let a='丁小柒';
}       //块级作用域

const

1.const声明一个只读的常量,声明后就不可以再修改,const声明的时候必须赋值
2.const的作用域与let命令相同:只在声明所在的块级作用域内有效
3.const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动,确保地址不会变,而内部数据结构,就不一定了

const a={name:'apple'};
a.name='good';
console.log(a.name);        //good
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值