javascript es6的常用語法你知道嗎
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)
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
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)
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- JS Object構造函數之Object.freeze
- Object.keys()、Object.values()、Object.entries()用法總結
- JavaScript中的Map數據結構詳解
- Javascript Object對象類型使用詳解
- JavaScript中檢測數據類型的四種方法