第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

關(guān)于空字符串的使用。

關(guān)于空字符串的使用。

犯罪嫌疑人X 2018-11-20 13:18:13
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經(jīng)驗 獲得超7個贊

從你給的代碼上來看,當前使用情景里沒必要預(yù)先賦值為string類型。不預(yù)設(shè)也不會出錯。

但不賦值和賦值為空字符串有個本質(zhì)的區(qū)別,即改變了變量的類型。

不進行賦值的時候是undefined類型,賦值為null則是null類型,賦值為空字符串""則為string類型。

穩(wěn)妥起見,既然這個變量的預(yù)期結(jié)果是string類型,那么聲明時就指定其類型是很穩(wěn)妥的辦法。

如果不指定呢?那有時候確實會出問題的。

問題主要發(fā)生在要用這個變量來拼接其他數(shù)據(jù)的時候,這很可能會觸發(fā)隱式的類型轉(zhuǎn)換,你就能發(fā)現(xiàn)差別了。

如下:

var a;
a+"a";

那么結(jié)果是什么呢?不是"a",而是"undefineda"。

如果把a預(yù)設(shè)為null,則結(jié)果是"nulla"。

你的例子里,對res是直接賦值而不是用它來拼接,所以不賦值為空字符串也沒影響,但不建議這么做。

再來個例子,拼接0-9的數(shù)字,假如你想得到的也是字符串,如"0123456789":

var res;for (var i = 0; i < 10; i++) {
    res+=i;
}console.log(res);

那么不聲明的話可以嗎?不可以,res會被轉(zhuǎn)換為number類型,但undefined轉(zhuǎn)換后是NaN,最后你得到的結(jié)果也是NaN。

如果把res賦值為""空字符串,那才正確。


查看完整回答
反對 回復(fù) 2018-12-15
  • 1 回答
  • 0 關(guān)注
  • 588 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號