1. 程式人生 > >js 中null和undefined的區別和用法

js 中null和undefined的區別和用法

js中,每次想知道一個物件是否為空時,首先想到的判斷條件是"o==null",但轉念一想,感覺還不大安心,又加上“||o== undefined”,這樣終於

心滿意足了!這就側面表現出我對null和undefined認知的不足及不自信。而每次查了資料,看過之後又給忘了,所以這裡姑且做個筆記!

1.null表示一個物件不存在,即“沒有物件”;undefined表示基本型別或物件的值沒被定義,也就“缺少值”!所以要判斷一個值是否存在可以這樣:

objA.valueA === undefined

而要判斷一個物件是否為空可以:
objA.valueA == null

2. null和undefined在js中其實沒多少區別,比如:

var a = null;
var b = undefined;
if (a == b) {
   alert("一般來說null和undefined在if語句中是相等的");
}
if (!a) {
   alert("null會轉為false");
}
if (!undefined) {
  alert("undefined會轉為false")
}<pre name="code" class="javascript">alert(typeof undefined);//undefined
alert(typeof null);//object


3.我們寫js時,可以設定一個值為null,但不可設定一個值為undefined,即
objA.valueA = undefined;//valueA已存在,再給它設定為undefined肯定不合理嘛。
咱們回過頭再看這一句:
if (o == null || o == undefined) {

}
這一句就是說,如果物件o為空或其值沒定義的話,就執行程式碼塊中的內容,所以這樣判斷也是可以的。


相關推薦

淺談JS的!=、== 、!==、===的用法區別 JSNullUndefined區別 讀取XML文件 獲取路徑的方式 C#Cookie,Session,Application的用法區別? c#反射 抽象工廠

main 收集 data- 時間設置 oba ase pdo 簡單工廠模式 1.0 var num = 1; var str = ‘1‘; var test = 1; test == num //true 相同類型 相同值 te

JSNullUndefined區別

class undefine 為我 false 應該 一行代碼 等於 解釋 什麽 在JavaScript中存在這樣兩種原始類型:Null與Undefined。這兩種類型常常會使JavaScript的開發人員產生疑惑,在什麽時候是Null,什麽時候又是Undefined?Un

js nullundefined區別用法

js中,每次想知道一個物件是否為空時,首先想到的判斷條件是"o==null",但轉念一想,感覺還不大安心,又加上“||o== undefined”,這樣終於 心滿意足了!這就側面表現出我對null和undefined認知的不足及不自信。而每次查了資料,看過之後又給忘了,所以

學習:JSnull undefined 的主要區別

注意在 JScript 中 null 和 undefined 的主要區別是 null 的操作象數字 0,而 undefined 的操作象特殊值NaN (不是一個數字)。對 null 值和 undefined 值作比較總是相等的。 var a; var b=null; var

jsnullundefined區別

JavaScript有兩個特殊的原始值:null和undefined,它們不是數字、字串和布林值。它們通常分別代表了各自特殊型別的唯一的成員,也就說是它自有型別的唯一的一個成員。從技術上講,只有Javascript物件才能擁有方法,數字、字串和布林值都可以擁有自

CocosCreator開發筆記(20)-在JS如何判斷undefinednull

不當用法 有時為了判斷某個值有效,JS新手會寫這種臃腫程式碼: if (data != null && typeof(data) != undefined && data != '') { ... } 為避免這種情況,首先要了解und

JS的!=、== 、!==、=== 的用法區別

<script type="text/javascript" src="jquery-3.2.1.js"></script> <script type="text/javascript"> $(function () { var v=1; var v1='

JSnullundefine的區別

資料型別 undefine null number string boolean Object 1: undefine:引入這個值是為了區分空物件指標和未經初始化的變數。未經初始化的變數預設就取undefine。只有一個值 空物件指標:未分配或者尚未指向任何地方的指標。可以確保不指向任何物件

js!!!的區別用法簡介

js中!的用法是比較靈活的,它除了做邏輯運算常常會用!做型別判斷,可以用!與上物件來求得一個布林值, 1、!可將變數轉換成boolean型別,null、undefined和空字串取反都為false,其餘都為true。 複製程式碼 1 !null=true 2 3

JS比較運算子及nullUndefined區別

比較運算子 當我們對Number做比較時,可以通過比較運算子得到一個布林值: 2 > 5; // false 5 >= 2; // true 7 == 7; // true 實際上,JavaScript允許對任意資料型別做比較: false == 0;

null undefined 區別

fin nbsp if語句 undefined 有一個 賦值 undefine 區別 -- ---恢復內容開始--- 1.在javascipt中,將一個變量賦值為undefined 或 null ,幾乎沒什麽區別。 2. 在if語句中undefined 和 null 都會

js,indexOf()、substring()substr()的區別

index length world mic 返回結果 document -s start star 1. indexOf() 返回指定的字符串在字符串首次出現的位置。 比如 var str="Hello world!" documen

[js]js變量帶var不帶var的區別

code scrip window div 分享 全局變量 賦值 blog error: 上圖已說的很清晰了. 下面代碼是贅述 <script> //帶var和不帶var的區別: // 1.只有帶var的才可以預解釋,所以在賦值的前操作不會報

js獲取時間new date()的用法獲取時間戳

etsec 開始 ava time() 方法 spa value 元素 index 獲取時間: 1 var myDate = new Date();//獲取系統當前時間 獲取特定格式的時間:

jsvar a=new Object()var a={}有什麽區別嗎?

ext 語言 details () targe new 簡易 end 屬性 應該是沒有區別的,兩者都是生成一個默認的Object對象。js和其它語言一樣,一切對象的基類都是Object,所以,new Object()和簡易的{}是同樣的空對象,就是默認的對象。本來我以為{}

JS遍歷普通陣列字典陣列的區別

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

node.js的定時器nextTick()setImmediate()區別分析

nextTick()和setImmediate()都是延遲載入。但是nextTick()是放在當前佇列的最後一個,setImmediate()是下一個佇列的對首 console.log(1); //下一個佇列的對首 setImmediate(()=>{ console.log('set

認清jsvar a=b=1var a=1,b=1的區別

js中一次性定義多個變數的時候,可以用:var a=1,b=1這種中間用逗號隔開的方式,但有些時候為了省事,直接定義var a=b=1。那這兩種寫法方式最後效果是一樣的嗎?有沒有什麼區別呢?請大家看下面的範例: 1、用var a=b=1的方式 可以看出:變數b的作用域是全域性的,變

Node.jspath模組的resolve()join()方法的區別

關於Node.js中path模組的resolve()和join()方法的比較,對照著總結看例子差不多以後在寫模組的時候思路就能很清晰了 resolve 作用:path.resolve() 該方法將一些的 路徑/路徑段 解析為絕對路徑。 語法:path.resolve([…path

js兩個等於號三個等於號的區別

首先,== equality 等同,=== identity 恆等。 ==, 兩邊值型別不同的時候,要先進行型別轉換,再比較。 ==,不做型別轉換,型別不同的一定不等。 下面分別說明: 先說 ===,這個比較簡單。下面的規則用來判斷兩個值是否===相等: 1、如果型別不同,