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

為了賬號安全,請及時綁定郵箱和手機立即綁定

老師 ,為什么上面的代碼不能alert,下面的代碼可以alert

var ob={};

ob[x]=11;
alert("");



var ob={};

ob[1]=11;
alert("");

正在回答

4 回答

感謝網友幫忙回答。

0 回復 有任何疑惑可以回復我~

obj[x]=22;????輸出正確!

0 回復 有任何疑惑可以回復我~

http://img1.sycdn.imooc.com//552c89a80001dc2f03500088.jpgx這個變量未定義

改成這樣就行了

var ob={};

ob["x"]=11;?

alert("");

或者

var ob={};

ob.x=11;?

alert("");


0 回復 有任何疑惑可以回復我~
#1

caixiangqi 提問者

謝謝你們~ 老師說的字符串1跟數字1都指的是obj的同一個屬性,如下。 var obj={} obj[1]=1; obj['1']=2; obj;//Object{1:2} 但是: ob[x]=11; ob['x']=11; 指的不也應該是同一個屬性嗎,不是都會toString()一下嗎? 我也知道會報錯,為什么ob[x]=11;會報錯呢,而ob[1]=11; 又不會報錯
2015-04-15 回復 有任何疑惑可以回復我~
#2

Sharon_zd 回復 caixiangqi 提問者

如果是1,會自動識別為數字基本類型,然后轉換為字符串,但如果是x,就不知道是什么了啊,怎么能toString呢。
2015-05-01 回復 有任何疑惑可以回復我~
#3

arlenhui 回復 caixiangqi 提問者

因為標識符的機制,數字1默認為非標識符也就是非變量,所以無論是1還是“1”都是一樣的變量,會tostring成單字符,但是如果是x,若不加雙引號來表示字符的話,就會和變量沖突。
2015-05-26 回復 有任何疑惑可以回復我~
因為你上邊兒報錯了
0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

老師 ,為什么上面的代碼不能alert,下面的代碼可以alert

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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