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

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

javascript 多個變量聲明

javascript 多個變量聲明

慕慕森 2018-12-14 10:22:47
最近在看一本 JavaScript面向對象編程指南(第2版)有一個章節提到的多個變量同時聲明,但是結果報錯?請問是js版本的問題嗎?而目前大多數是這樣才正確?var a=1,b=2,c=3,d=4;錯誤代碼如下:var v1,v2,v3 = 'hello',    v4 = 42,    v5;    console.log(v1);         // undefined    console.log(v2);         // undefined    console.log(v3);         // hello    console.log(v4);         // 42    console.log(v5);         // undefined
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

我估計是你理解錯了。


PS:我也不贊同 定義這種說法,一個變量 應當是 聲明和賦值 來描述比較準確


首先,不是報錯。


var v1,v2,v3='hello' 這行代碼中,聲明了 v1,v2 但是沒有賦值,聲明了 v3 并且賦值了。


因此 v1 v2 是 undefined,(這個不是錯誤,聲明變量不賦值,值就是undefined),v3是'hello'


同時賦值多個是這樣子 var v4=v5=v6='hello'; 這行代碼的意思是 

首先,給全局變量v6賦值,v6='hello',因為沒有聲明v6,所以自動創建一個全局變量。

然后在把v6的值賦值給v5(和v6一樣的意思)。

最后聲明變量v4(這個是聲明變量并且賦值),在賦值

可以說 v4和v5/v6的行為是不一樣的


參照下面的代碼:


    var v1,v2,v3 = 'hello';

    var v4=v5=v6='hello';

    console.log(v1,v2,v3); // undefined undefined "hello"

    console.log(v4,v5,v6); // hello hello hello


查看完整回答
反對 回復 2019-01-24
  • 1 回答
  • 0 關注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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