亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript - 關于空字符串的使用。

瀏覽:54日期:2023-03-12 09:05:41

問題描述

javascript - 關于空字符串的使用。

問題解答

回答1:

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

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

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

穩妥起見,既然這個變量的預期結果是string類型,那么聲明時就指定其類型是很穩妥的辦法。

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

問題主要發生在要用這個變量來拼接其他數據的時候,這很可能會觸發隱式的類型轉換,你就能發現差別了。

如下:

var a;a+'a';

那么結果是什么呢?不是'a',而是'undefineda'。

如果把a預設為null,則結果是'nulla'。

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

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

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

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

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

回答2:

當前案例可以不用預定義為空字符串,可刪除提高代碼可閱讀性

空字符串一般運用在針對一個字符串條件判斷操作或者對自身操作的場景下:第一種:

var a = ’’;if (xxx) { a = ’hello’;}console.log(’a’); //這時如果你不提前定義好a,如果條件不滿足if,那么就不會執行,下面調用變量a的時候就會undefined

第二種:

var a = ’’;a += 2; //這其實也要調用變量a,如果不提前定義,那么也是undefined回答3:

js預解析時會對var關鍵字定義的變量進行預解析,都會賦值undefined。下面將其賦值為字符串,上面定義的時候也就將它預先初始化為一個空字符串。只聲明var res;,不給它賦值也是可行的。回答4:

個人認為是作者無意間的做法…

若硬要解讀,這樣也好也不好。好是因為你可以直觀地認識到res是一個字符串變量,增強了可讀性;不好則因為多了一次對象創建和釋放的過程,性能有損耗,盡管損耗可以忽略不計。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 日韩精品1 | 青青青国产依人免费视频 | 最新国产精品自拍 | 一区二区三区免费高清视频 | 国产精品7m凸凹视频分类大全 | 又黄又爽又猛午夜性色播在线播放 | 午夜久久| 夜恋全部国产精品视频 | 亚洲一区二区免费视频 | 久久久久免费精品国产小说 | 国产亚洲精品aa在线看 | 亚洲女同视频 | 欧美经典成人在观看线视频 | 狼人久久尹人香蕉尹人 | 国产亚洲小视频 | 唐人呦一呦xxxx视频 | 久久亚洲电影 | 青操在线| 天天色天天综合 | 在线看免费涩涩视频网 | 午夜精品aaa国产福利 | 欧美另类网 | 日韩中文字幕免费观看 | 91最新在线 | 丝袜足交在线播放 | 亚洲毛片在线 | 欧美一二区 | 久久视频精品线视频在线网站 | 国产一级爱c片免费播放 | 国产精品区免费视频 | 久久这里只有精品66re99 | 麻豆精品视频 在线视频 | 国产精品久久精品视 | 国产精品久久久久久久久久久久久久 | 久久婷婷午色综合夜啪 | 色婷婷亚洲十月十月色天 | 91丁香亚洲综合社区 | 欧美大陆日韩一区二区三区 | 极品蜜桃臀美女啪啪 | 黄色欧美一级片 | 欧美日韩在线播一区二区三区 |