小編給大家分享一下基于ES6作用域和解構賦值的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
ES6 強制開啟嚴格模式
作用域
?var 聲明局部變量,for/if花括號中定義的變量在花括號外也可訪問
?let 聲明的變量為塊作用域,變量不可重復定義
?const 聲明常量,塊作用域,聲明時必須賦值,不可修改
// const聲明的k指向一個對象,k本身不可變,但對象可變
function test() {
const k={
a:1
}
k.b=3;
console.log(k);
}test()解構賦值
{
let a, b, 3, rest;
[a, b, c=3]=[1, 2];
console.log(a, b);
}
//output: 1 2 3
{
let a, b, 3, rest;
[a, b, c]=[1, 2];
console.log(a, b);
}
//output: 1 2 undefined
{
let a, b, rest;
[a, b, ...rest] = [1, 2, 3, 4, 5, 6];
console.log(a, b, rest);
}
//output:1 2 [3, 4, 5, 6]
{
let a, b;
({a, b} = {a:1, b:2})
console.log(a ,b);
}
//output: 1 2使用場景
變量交換
{
let a = 1;
let b = 2;
[a, b] = [b, a];
console.log(a, b);
}獲取多個函數值
{
function f(){
return [1, 2]
}
let a, b;
[a, b] = f();
console.log(a, b);
}獲取多個函數返回值
{
function f(){
return [1, 2, 3, 4, 5]
}
let a, b, c;
[a,,,b] = f();
console.log(a, b);
}
//output: 1 4
{
function f(){
return [1, 2, 3, 4, 5]
}
let a, b, c;
[a, ...b] = f();
console.log(a, b);
}
//output: 1 [2, 3, 4, 5]對象解構賦值
{
let o={p:42, q:true};
let {p, q, c=5} = o;
console.log(p ,q);
}
//output: 42 true 5獲取json值
{
let metaData={
title: 'abc',
test: [{
title: 'test',
desc: 'description'
}]
}
let {title:esTitle, test:[{title:cnTitle}]} = metaData;
console.log(esTitle, cnTitle);
}
//Output: abc test看完了這篇文章,相信你對“基于ES6作用域和解構賦值的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。