搜尋
首頁web前端js教程Javascript 中 null、NaN和undefined的差異總結_javascript技巧

1.型別分析
js中的資料型態有undefined,boolean,number,string,object等5種,前4種為原始型,第5種為引用型別。
程式碼

複製程式碼 程式碼如下:

var a1; var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a6 = null;
var a7 = NaN;
var a8 = undefined;
alert(typeof a); //顯示"undefined"
alert(typeof a1); //顯示"undefined"
alert(typeof a2); //顯示"boolean "
alert(typeof a3); //顯示"number"
alert(typeof a4); //顯示"string"
alert(typeof a5); //顯示"object"
alert (typeof a6); //顯示"object"
alert(typeof a7); //顯示"number"
alert(typeof a8); //顯示"undefined"


從上面的程式碼可以看出未定義的值和定義未賦值的為undefined,null是一種特殊的object,NaN是一種特殊的number。 2.比較運算
程式碼如下:var a1; //a1的值為undefined
var a2 = null;
var a3 = NaN;
alert(a1 == a2); //顯示"true"
alert(a1 != a2); //顯示"false"
alert(a1 == a3); //顯示"false"
alert(a1 != a3); //顯示"true"
alert( a2 == a3); //顯示"false"
alert(a2 != a3); //顯示"true"
alert(a3 == a3); //顯示"false"
alert (a3 != a3); //顯示"true"


從上面的程式碼可以得出結論:(1)undefined與null是相等;(2)NaN與任何值都不相等,與自己也不相等。


JavaScript undefined 屬性


定義與用法
undefined 屬性用來存放 JavaScript 的 undefined 值。

語法
undefined

說明
無法使用for/in 迴圈來枚舉undefined 屬性,也不能用運算符來刪除它。 undefined 不是常數,可以把它設定為其他值。
當嘗試讀取不存在的物件屬性時也會傳回 undefined。
提示與註解




實例
在本例中,我們將偵測兩個變數中未定義的一個:

複製程式碼 程式碼如下:
輸出:


[補充]Null 資料型別在Jscript 中資料型別null 只有一個值:null。關鍵字 null 不能用作函數或變數的名稱。
包含 null 的變數包含「無值」或「無物件」。換句話說,該變數沒有保存有效的數、字串、boolean、陣列或物件。可以透過給一個變數賦 null 值來清除變數的內容。

請注意,在 Jscript 中,null 與 0 不相等(與 C 和 C 不同)。同時應該指出的是,Jscript中 typeof 運算子將報告 null 值為 Object 類型,而非類型 null。這點潛在的混淆是為了向下相容。
Undefined 資料類型
如下情況使傳回 undefined 值:
物件屬性不存在,
宣告了變數但從未賦值。

注意不能透過與 undefined 做比較來測試變數是否存在,雖然可以檢查它的類型是否為「undefined」。在以下的程式碼範例中,假設程式設計師想要測試是否已經宣告變數x :


複製程式碼 程式碼如下:
// 這種方法不起作用
if (x == undefined)
// 作某些操作
// 這個方法同樣不起作用- 必須檢查
// 字串"undefined"
if (typeof(x) == undefined)
// 作某些動作
// 這個方法有效
if (typeof(x) == "undefined ")
// 作某些操作


考慮將 undefined 值與null做比較。
someObject.prop == null;
如下情況時,比較的結果為 true,
如果屬性 someObject.prop 包含 null 值,
如果屬性 someObject.prop 不存在。
要檢查一個物件屬性是否存在,可以使用新的in 運算子:
if ("prop" in someObject)
// someObject 有屬性 'prop'
在JavaScript中,null與undefined一度使人迷惑。下面的分析,有利於你更清晰的認知它(或讓你更迷惑):
- null是關鍵字;undefined是Global物件的一個屬性
- null是物件(空物件, 沒有任何屬性和方法);undefined是undefined類型的值。試試看下面的程式碼:
document.writeln(typeof null); //return object
document.writeln(typeof undefined); //return undefined
- 物件模型中,所有的物件都是Object或其子類別的實例,但null物件例外:
document.writeln(null instanceof Object); //return false
- null「等值(==)」於undefined,但不「全等值(===)」於undefined:
document.writeln(null == undefined); //return true
document.writeln(null === undefined); //return false
- 運算時null與undefined都可以被型別轉換為false,但不等值於false:
document.writeln(!null, !undefined); //return true,true
document.writeln(null==false) ; //return false
document.writeln(undefined==false); //return false
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Vue中的TypeError: Cannot read property '$XXX' of undefined,应该如何处理?Vue中的TypeError: Cannot read property '$XXX' of undefined,应该如何处理?Nov 25, 2023 pm 12:14 PM

如果你在使用Vue.js进行开发时,经常遇到“TypeError:Cannotreadproperty'$XXX'ofundefined”的错误提示,那么该如何处理呢?本文将介绍这个错误的原因以及如何解决。问题的原因在使用Vue.js的时候,我们经常会用到this来调用Vue组件的方法,比如:exportdefault{data()

PHP Notice: Undefined property: 的解决方法PHP Notice: Undefined property: 的解决方法Jun 22, 2023 pm 02:48 PM

在使用PHP编写代码时,我们可能会遇到“Notice:Undefinedproperty”这个错误提示。这个错误提示意味着我们正在访问一个未定义的属性,通常是因为该属性在代码中尚未被初始化。那么,该如何解决这个问题呢?下面是几种可能的解决方法:初始化属性这是解决该问题的最简单方法。在代码中显式地初始化属性,可以确保它在使用前已经被定义。例如:class

c语言中null和NULL的区别是什么c语言中null和NULL的区别是什么Sep 22, 2023 am 11:48 AM

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

undefined和null是什么意思undefined和null是什么意思Nov 20, 2023 pm 02:39 PM

在JavaScript 中,undefined和null都代表着“无”的概念:1、undefined 表示一个未初始化的变量或一个不存在的属性,当声明了一个变量但没有对其赋值时,这个变量的值就是undefined,访问对象中不存在的属性时,返回的值也是undefined;2、null表示一个空的对象引用,在某些情况下,可以将对象的引用设置为null,以便释放其占用的内存。

null和undefined有什么不同null和undefined有什么不同Nov 08, 2023 pm 04:43 PM

null和undefined的区别在:1、语义含义;2、使用场景;3、与其它值的比较;4、与全局变量的关系;5、与函数参数的关系;6、可空性检查;7、性能考虑;8、在JSON序列化中的表现;9、与类型的关系。详细介绍:1、语义含义,null通常表示知道这个变量不会拥有任何有效的对象值,而undefined则通常表示变量未被赋值,或者对象没有此属性;2、使用场景等等。

undefined是什么undefined是什么Jul 31, 2023 pm 02:28 PM

undefined是代表一个值或变量不存在或未定义的状态。它可以作为默认值来判断一个变量是否已经被赋值,也可以用于设置默认参数值。尽管在不同的编程语言中,undefined可能具有不同的含义和用法,但理解undefined的概念可以帮助我们更好地理解和编写程序。

什么时候用null和undefined什么时候用null和undefinedNov 13, 2023 pm 02:11 PM

null和undefined都表示缺少值或未定义的状态,根据使用场景的不同,选择使用null还是undefined有以下一些指导原则:1、当需要明确指示一个变量为空或无效时,可以使用null;2、当一个变量已经声明但尚未赋值时,会被默认设置为undefined;3、当需要检查一个变量是否为空或未定义时,使用严格相等运算符“===”来判断变量是否为null或undefined。

如何解决 golang 中的 “undefined: path.Join” 错误?如何解决 golang 中的 “undefined: path.Join” 错误?Jun 24, 2023 pm 01:12 PM

在Go语言中,path包是处理文件路径的重要工具之一。其中path.Join()函数可以将多个路径组合成一个完整的路径。但是,有时你会遇到“undefined:path.Join”的错误信息,该怎么办呢?以下是几种常见的解决方法:检查import语句首先,你需要确认自己已经正确import了path包。在Go语言中,导入包时可

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器