亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

聲明并啟動多個 javascript 變量

聲明并啟動多個 javascript 變量

泛舟湖上清波郎朗 2023-09-07 10:06:57
我對正確聲明和初始化相同類型的多個變量的正確方法有點困惑。所以它們實際上是他們自己的,而不是對其他人/副本的引用。我的研究讓我得出以下結論,這是正確的嗎?和/或有更好的方法:var str1,str2,str3,arr1,arr2,arr3,obj1,obj2,obj3;str1=str2=str3="foo";arr1=arr2=arr2=[];obj1=obj2=obj3={};(為此我想使用 var,而不是 let 和 const)
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

有多種方法可以做到這一點。


重復該值:


var a = 1, b = 1, c = 1;


console.log(a, b, c) //1 1 1


相互分配變量(提示:將名稱最短的變量放在第一位,然后重復該變量):


var a = 1, b = a, c = a;


console.log(a, b, c) //1 1 1


使用你的方法:


var a, b, c;

a = b = c = 1


console.log(a, b, c) //1 1 1


解構一個無限迭代器(這在變量數量非常大的情況下似乎很有用):


var [a, b, c] = (function*(v){while(true) yield v})(1);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// ^--- Value


console.log(a, b, c) //1 1 1

然而,當涉及到對象文字、函數的返回值和類似的東西時,它們的行為有所不同(這取決于您應該選擇的用例)。

  • 解決方案 1. 將為每個變量創建不同的值

  • 解決方案 2.、3. 和 4. 將為所有變量分配相同的值

解決方案 4. 可以修改為分配不同的值:


var [a, b, c] = (function*(){while(true) yield [1,2,3] })();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ^^^^^^^--- Value


console.log(a, b, c) //[1,2,3] [1,2,3] [1,2,3]

查看完整回答
反對 回復 2023-09-07
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號