国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JScript中的undefined和"undefined"的區別

2019-11-21 02:13:44
字體:
來源:轉載
供稿:網友
JScript中用于表示未定義的undefined標識符到底是表示什么未定義?它和"undefined"(包括"在內)又有什么區別和聯系呢?為什么有的時候可以使用undefined來和變量做比較,而有的時候又不行呢?

    underfined"undefined"的區別大家一眼就能看出來。在一般的認知下,我們認為undefined是JScript提供的一個"關鍵字",而"undefined"卻毫無懸念的就是一個字符串,只是引號內的內容長得和undefined一個樣。undefined"undefined"的區別雖然是十分明顯的,但它們的聯系也是緊密的。

    仔細閱讀JScript手冊,其實這個underfined是一個"已定義"的Global值,而不是它的字面意義所表達的未定義。我們看下面這個代碼示例,很有趣:
<script language="javascript">
alert(undefined);
alert(variable);
</script>

    執行的結果是:
    undefined.png

    我們稍微修改一下上面的代碼,添加一個typeof調用來看看:   
<script language="javascript">
alert(typeof undefined);
alert(typeof variable);
</script>

    這下結果應該是什么呢?顯示"object""undefined"嗎?當然不是了,兩個alert調用都將顯示"undefined"

    所以undefined是腳本引擎定義的一個常量,它在腳本引擎初始化完畢后存在。它的實際作用是用來表示一個已定義的變量的未初始化狀態(uninitialized),比如var i;,這時這個i的值就是undefined,而i是實實在在define了的,只是未初始化。這時我們就可以寫這樣的表達式來對i做判斷,比如if ( i == undefined )。如果從未在代碼中出現過的變量被使用,這時的未定義的概念就是不undefined所描述的未初始化了,而是說明該變量完全未被登記到腳本引擎的上下文中。使用類似if ( abc == undefined )的語句,將得到類似上圖中的第二個錯誤提示。

    在實際使用中,如果使用typeof來判斷變量是否未定義,是可以完全兼容未定義(undefined)未初始化(uninitialized)兩種情況的,只是很多時我不喜歡使用 if ( typeof xxx == 'undefined' ) 這樣的寫法,因為literal的字符串容易拼寫錯誤,對用習慣了的強類型語言的角度來看也顯得不專業。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巍山| 甘肃省| 峨边| 苏尼特左旗| 南城县| 寿光市| 濉溪县| 西安市| 临泽县| 汝南县| 长武县| 鄯善县| 桃园市| 岐山县| 宜阳县| 辛集市| 渭源县| 恩施市| 陆川县| 无锡市| 巍山| 彭水| 锡林郭勒盟| 新宁县| 高雄县| 常山县| 文成县| 安义县| 钟祥市| 永新县| 鸡西市| 清原| 英吉沙县| 荥经县| 长宁区| 稻城县| 保德县| 饶平县| 汉中市| 盐亭县| 内乡县|