国产探花免费观看_亚洲丰满少妇自慰呻吟_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的字符串容易拼寫錯誤,對用習慣了的強類型語言的角度來看也顯得不專業。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 军事| 咸宁市| 乳山市| 通道| 淮安市| 辽宁省| 丹棱县| 南丹县| 巧家县| 新源县| 汤原县| 禄丰县| 前郭尔| 麦盖提县| 莆田市| 宿州市| 马边| 宁明县| 阿拉善右旗| 嘉兴市| 乌兰浩特市| 英吉沙县| 祥云县| 星子县| 独山县| 吴江市| 屯门区| 吉木萨尔县| 普格县| 本溪市| 大连市| 互助| 盐池县| 鄯善县| 阿克| 五常市| 瑞丽市| 峨山| 温州市| 河间市| 鸡泽县|