javascript es6的常用语法
kenneth_zh 人气:21.const常量标识
1.不允许重复声明赋值
const args='kenneth' const args="kenneth"
es5实现声明常量
Object.defineProperty(window,"args",{ value: ' this is es5', writable: false })
2.块级作用域
if(true){ const args=123 } console.log(args)
3.无变量提升
console.log(args) const args=1
var args=123 console.log(window.args) //123 cosnt args1=456 console.log(window.args1) //cosnt不在window中
4.dead zone (死区)
if(true){ console.log(infor) const infor=123 }
专属报错:
5.let or cosnt
const obj={ id:1, age:18, name:'aaa' } obj.age=19 // cosnt 创建一个对象,对象中的属性可以被改变 //解决:冻结对象,一个被冻结的对象再也不能被修改 Object.freeze() const obj2={ id:2, name:'bbb', age:20, food:['banana','apple'] } Object.freeze(obj2) obj2.age=21 //被Object.freeze()冻结后,不可以改变 obj2.foods[1]='pear' //可以改变 freeze只能冻结根层 嵌套引用类型需要嵌套递归 //实现创建引用类型: function deepFreeze(obj) { Object.freeze(obj); (Object.keys(obj) || []).forEach((key) => { let innerObj = obj[key] if (typeof innerObj === 'object') { deepFreeze(innerObj); } } ) } const tempObj = { id: 23, name: '1', food: ['banana', 'apple'] } deepFreeze(tempObj)
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
1.const常量标识
1.不允许重复声明赋值
const args='kenneth' const args="kenneth"
es5实现声明常量
Object.defineProperty(window,"args",{ value: ' this is es5', writable: false })
2.块级作用域
if(true){ const args=123 } console.log(args)
3.无变量提升
console.log(args) const args=1
var args=123 console.log(window.args) //123 cosnt args1=456 console.log(window.args1) //cosnt不在window中
4.dead zone (死区)
if(true){ console.log(infor) const infor=123 }
专属报错:
5.let or cosnt
const obj={ id:1, age:18, name:'aaa' } obj.age=19 // cosnt 创建一个对象,对象中的属性可以被改变 //解决:冻结对象,一个被冻结的对象再也不能被修改 Object.freeze() const obj2={ id:2, name:'bbb', age:20, food:['banana','apple'] } Object.freeze(obj2) obj2.age=21 //被Object.freeze()冻结后,不可以改变 obj2.foods[1]='pear' //可以改变 freeze只能冻结根层 嵌套引用类型需要嵌套递归 //实现创建引用类型: function deepFreeze(obj) { Object.freeze(obj); (Object.keys(obj) || []).forEach((key) => { let innerObj = obj[key] if (typeof innerObj === 'object') { deepFreeze(innerObj); } } ) } const tempObj = { id: 23, name: '1', food: ['banana', 'apple'] } deepFreeze(tempObj)
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
加载全部内容