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

首頁 > 語言 > JavaScript > 正文

javascript中的undefined 與 null 的區別 補充篇

2024-05-06 14:11:04
字體:
來源:轉載
供稿:網友

之前錯新站長站發不過類似的文章
JavaScript null和undefined區別分析

JavaScript Undefined,Null類型和NaN值區別

先說說undefined:
Javascript中的變量是弱類型的(關于這個我想就不用我多解釋啦), 所以聲明變量的時候只需使用var關鍵字即可。如果是像C這樣的強類型語言, 聲明變量的時候如果沒有指定初始值,那么會給他一個默認值,比如int變量的默認值是0。但是在Javascript這樣的弱類型語言中,沒有辦法確定到底該給這樣的變量一個什么樣的默認值,比如我聲明一個變量
var v1;
是給他false還是0,或者是'' ?
因為沒有類型,所以無法確定。 在Javascript中對于這種生命后沒有給定初始值的變量,就給他一個undefined。不過前提是這個變量必須已經聲明,如果對于沒有聲明過的標識符,就會出錯。看看下面的代碼。
代碼如下:
var v1;
alert(v1); //undefined
alert(v2); //報錯

    再來說說null,Javscript有幾個基本類型,Number,String,Boolean,Object。對于Object 類型的變量,他有兩種情況,一種是他是一個對象的實例,另一種他是一個空引用null,熟悉類似Java這樣面向對象語言的朋友應該很容易理解。對于這兩種情況,他們的類型都是Object。Javascript中的變量,在給他賦值的時候,才
會確定它的類型,比如下面這樣。
代碼如下:
var v1 = 1;
var v2 = true;

alert(typeof v1); //number
alert(typeof v2); //boolean

v2 = new Date();
alert(typeof v2); //object

v2 = "str";
alert(typeof v2); //string

v2 = null;
alert(typeof v2); //object

    可以看到,null在 Javascript中代表一個特殊的Object類型的值,他用來表示空引用的概念,如果要將一個標識符聲明稱object類型,但是暫時不給他實例,那么就可以將它先初始化為null,以便以后使用。
    不一定絕對正確,簡單來說,對于所有變量,只要聲明后還沒有指定初始值 ,那么他就是undefined,如果是Object類型用來表示空引用的概念,那么就是用null來表示。
下面是一些補充:
null :表示無值;
undefined : 表示一個未聲明的變量,或已聲明但沒有賦值的變量,或一個并不存在的對象屬性。==運算符將兩者看作相等。如果要區分兩者,要使用===或typeof運算符。
使用if (!object){}兩者就都包含了
補充:2006.12.6
代碼如下:
var obj = "aaa";
var nullobj;
if (obj == null || obj == undefined || (!obj) ){
alert("obj is null");
}
if (nullobj == null){
alert("obj is null");
}
if (nullobj == undefined){
alert("obj is undefined ");
}
if ( !nullobj ){
alert("! obj ");
}

關于undefined和"undefined的補充(2007/1/30):
JScript中用于表示未定義的undefined標識符到底是表示什么未定義?它和"undefined"(包括"在內)又有什么區別和聯系呢?為什么有的時候可以使用undefined來和變量做比較,而有的時候又不行呢?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 洛隆县| 湖州市| 泰顺县| 内黄县| 潜江市| 永泰县| 青浦区| 莎车县| 陆良县| 忻州市| 蓬莱市| 惠水县| 双柏县| 同江市| 修水县| 柳州市| 汉中市| 东乡族自治县| 九江市| 长岭县| 城市| 六枝特区| 巴东县| 沙河市| 长汀县| 金塔县| 永泰县| 济宁市| 万荣县| 林甸县| 湘阴县| 中超| 天峻县| 吕梁市| 河北省| 临夏市| 始兴县| 襄汾县| 射洪县| 铁岭市| 弋阳县|