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

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

js中包裝類型的小例子為什么會輸出不一樣的結果

js中包裝類型的小例子為什么會輸出不一樣的結果

12345678_0001 2018-10-11 13:26:55
最近看到一個例子,主要是關于包裝類型的代碼1:var str='hello';str.len=5; console.log(str.len);    //undefined代碼2:var str=new String("Hello");str.len=5; console.log(str.len);    //5問題:為什么會出現這種情況
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

有兩個概念需要區分:基本字符串 和 字符串對象;

代碼1中,var str = 'hello'?執行后,str 是一個基本字符串,str.len = 5執行時,str 會臨時轉換為字符串對象,這個?len?賦值在了臨時對象上,而?console.log()?時會再次將?str?轉換為一個臨時字符串對象,這個新的臨時對象當然沒有屬性?len咯;

而代碼2中?var str = new String("Hello");執行后,通過 new 構造出來的 str 已經是一個對象了,為他賦值?len?屬性顯然是和一般的對象賦值是一致的。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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