js的結構賦值

2022-09-09 06:24:15 字數 2545 閱讀 9541

var foo = ["one", "two", "three"];

var [one, two, three] = foo;

console.log(one); // "one"

console.log(two); // "two"

console.log(three); // "three"

var a, b;

[a, b] = [1, 2];

console.log(a); // 1

console.log(b); // 2

預設值(為了防止從陣列中取出乙個值為undefined的物件,可以在表示式左邊的陣列中為任意物件預設預設值)

var a, b;

[a=5, b=7] = [1];

console.log(a); // 1

console.log(b); // 7

var a = 1;

var b = 3;

[a, b] = [b, a];

console.log(a); // 3

console.log(b); // 1

function f() 

var a, b;

[a, b] = f();

console.log(a); // 1

console.log(b); // 2

function f() 

var [a, , b] = f();

console.log(a); // 1

console.log(b); // 3 也可以忽略全部

[,,] = f();

var [a, ...b] = [1, 2, 3];

console.log(a); // 1

console.log(b); // [2, 3]

注意:如果剩餘元素右側有逗號,會報異常

var [a, ...b,] = [1, 2, 3];

// syntaxerror: rest element may not h**e a trailing comma

var o = ;

var = o;

console.log(p); // 42

console.log(q); // true

var a, b;

( = );

注意:賦值語句周圍的圓括號( ... )在使用物件字面量無宣告解構賦值時是必須的。

=不是有效的獨立語法,因為左邊的被認為是乙個塊而不是物件字面量。

然而,( = )是有效的,正如var =

你的( ... )表示式之前需要有乙個分號,否則它可能會被當成上一行中的函式執行。

var o = ;

var = o;

console.log(foo); // 42

console.log(bar); // true

var  = ;

console.log(a); // 3

console.log(b); // 5

var  = ;

console.log(aa); // 3

console.log(bb); // 5

let  = 

a; // 10

b; // 20

rest; //

function userid() 

function whois(})

var user =

};console.log("userid: " + userid(user)); // "userid: 42"

whois(user); // "jdoe is john"

js 賦值問題

var foo var bar foo foo.x foo 輸出foo.x foo.x undefined為什麼呢?先看前面兩句 var foo var bar foo 這兩句的意思是定義了foo為乙個物件,並且讓bar指向這個物件。這很簡單。foo.x foo 等價於 foo.x foo 注意,此...

js變數賦值

變數名 一經宣告就不可以改變 值是可以改變的 var student wangjiaru 給 student 重新賦值 以最後一次賦值為主 的作用 賦值 student yangyuchuan student 劉浩 變數作用 存資料 變數的使用 讀資料 console.log student 使用變...

js賦值問題

js 引用 賦值 物件複製 陣列複製等 獲取基礎引數列表資料 getedittabledata event this.fieldconfdtos event 今天在用angular做父子元件的一些資料傳遞和處理時發現,子元件通過事件傳給父元件的資料被父元件處理後影響到了子元件。event是子元件傳遞...