数组 字符串的解构赋值 以及const命令
生活随笔
收集整理的這篇文章主要介紹了
数组 字符串的解构赋值 以及const命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// ES6允許按照一定模式 從數組和對象中提取值 對變量進行賦值 這就是解構let [a,b,c] = [1,2,3]//模式匹配let [foo,[[bar],baz]] = [1,[[2],3]]foo//1bar//2baz//3let [head,...tail] = [1,2,3,4];head//1tail//[2,3,4]let [x,y,...z] = ['a'];x//'a'y//undefined 說明解構不成功 值為undefindedz//[]// 不完全解構模式 即等號左邊的模式 只匹配部分等號右邊的數組 即不完全解構let [x,y] = [1,2,3]x//1y//2
// Set結構 也可使用數組的解構賦值
let[x,y,z] = new Set(['a','b','c'])
x//'a'
// 解構賦值允許指定默認指
let [foo = true] = []
foo//true
let [x,y = 'b'] = ['a']
x//'a'
y//'b' const [a,x,c,s,a] = 'hello';//字符串的解構賦值 是將字符串轉換成類似數組的對象a//hx//ec//l// 類似數組的對象都有一個length屬性 所以還可以對這個屬性解構賦值
?
// const聲明一個只讀常量 一旦聲明 常量的值便不能改變//因為const 聲明變量不能改變 則必須一開始聲明時就應該賦值 和var 不一樣 否則會報錯//const 作用域與let相同 只在 聲明所在的塊級作用域有效 聲明的變量也不提升 同樣存在暫時性死區(qū)//const 本質上保證的不是變量的值不得改動 而是變量指向的那個內存地址所保存的數據不得改動// 對于復合型數據 變量指向的內存地址 保存的只是一個指向實際數據的指針 const 只能保證// 這個指針是固定的(即總是固定指向一個地址)const foo = {}foo.prop = 123;console.log(foo.prop);// foo = {}//報錯 因為常量foo儲存的是一個地址 這個地址指向一個對象 不可變的是這個地址 即不能把這個地址指向// 指向另一個地址 但對象本身是可變的數據結構 所以可以添加屬性 const a=[]; a.push('hello') a.length = 0; // a = ['dave']//報錯 同上 改變了數組 console.log(a); const fooo = Object.freeze({});//凍結對象 fooo.prop = 123; //嚴格模式下可能會報錯 一般模式新添加屬性不起作用// 將對象徹底凍結的函數 var constan = (obj) => {Object.freeze(obj);Object.keys(obj).forEach((key,i)=>{if(typeof obj[key] == 'object'){constan(obj[key])}}) }?
// ES5只有兩種聲明變量的方法// 1.var 命令// 2.function命令// ES6聲明變量的方法:// 1.var // 2.let // 3.const// 4.class// 5.function命令// 6.import命令// 頂層對象的屬性 // 瀏覽器環(huán)境中 指window對象 // Node中指 global對象 // ES6中 var function 聲明的全局變量依舊屬于頂層對象的屬性 (為和ES5兼容) // 但let const class 聲明的全局變量不再屬于頂層對象的屬性// globalThis對象// 瀏覽器里 頂層對象是window self也指向頂層對象// node里 頂層對象是global?
轉載于:https://www.cnblogs.com/treasurea/p/11228420.html
總結
以上是生活随笔為你收集整理的数组 字符串的解构赋值 以及const命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 中__new__()和__
- 下一篇: Mac 下Eclipse无法连接手机