es6---(let const)

来源:互联网 发布:大数据零售业案例 编辑:程序博客网 时间:2024/04/29 17:17

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
0 0
原创粉丝点击