最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript中Null和undefined的簡單理解

 更新時間:2022年04月06日 15:34:40   作者:搞前端的半夏  
在JavaScript中存在這樣兩種原始類型:Null與Undefined,這兩種類型常常會使JavaScript的開發(fā)人員產生疑惑,在什么時候是Null,什么時候又是Undefined,下面這篇文章主要給大家介紹了關于Javascript中Null和undefined的相關資料,需要的朋友可以參考下

前言

在 JavaScript 中有兩種表達“無”的方式,那就是使用undefined和null。

undefined

如果您創(chuàng)建一個變量并且不對其進行任何設置,它將是undefined. ??

let dog;
console.log(dog);

image-20220330223218079

undefined是已經創(chuàng)建(變量)但尚未定義(給定值)的東西。

對象的屬性也是如此。

一個不具有任何屬性的person對象。

let person={
}

如果在控制臺中輸入person.dog,它將返回undefined。

image-20220330223355043

為什么?因為person什么都沒有。這就是undefined的。

當嘗試訪問已創(chuàng)建但未賦予值的變量時,就會出現(xiàn)這種情況。

如果在控制臺中輸入test,您會看到返回的錯誤消息說*“test is not defined”*,這意味著您沒有創(chuàng)建名為test的變量.

image-20220330223452230

對于我們上面使用的狗示例,我們已經創(chuàng)建了變量,但我們沒有設置值。這就是區(qū)別。

Null

現(xiàn)在我們將討論null類型。

Null 是空值,而 undefined 是尚未設置值的變量。

我們將通過一些示例進行演示。

在控制臺輸入下面的代碼。

let somethingUndefined;
const somethingNull = null;

注意:您不能在不設置值的情況下使用 const 變量。

somethingUndefined是未定義的,因為它沒有設置值,而somethingNull具有 null 的值,它什么都沒有。它們都什么都不是,只是方式不同。

例如,假設我們有 Cher 和 Teller(他們都是真人),我們將在這樣的對象中表示他們 ??

const zhangsan = {  mane: "zhangsan",};
const lisi = {  name: "lisi",  age: 18,};
lisi.mane = "li";
lisi.age = null;

在此示例中,zhangsan沒有age屬性。

另一方面,我們又將lisi的age設置為null。

在控制臺中,如果您鍵入,zhangsan.age您將看到返回的 undefined 值。當您嘗試lisi.age時,將返回 null 的值。

image-20220330223916282

用一句話總結兩者的區(qū)別就是:undefined 表示一個變量自然的、最原始的狀態(tài)值,而 null 則表示一個變量被人為的設置為空對象,而不是原始狀態(tài)。所以,在實際使用過程中,為了保證變量所代表的語義,不要對一個變量顯式的賦值 undefined,當需要釋放一個對象時,直接賦值為 null 即可。

附:實際應用

上面說了那么多,好像除了增加復雜性之外,并沒有什么實際的用處。

下面用代碼演示這兩種類型的實際用法,可以體會不存在和空值具體有什么區(qū)別和用處:

var foo = {a:1, b:2};
console.log(JSON.stringify(foo)); // {"a":1,"b":2}
foo = {...foo, a:null};
console.log(JSON.stringify(foo)); // {"a":null,"b":2}
foo = {...foo, a:undefined};
console.log(JSON.stringify(foo)); // {"b":2}

從上面的代碼可以看到,把一個對象的屬性設置成undefined后,這個屬性就消失了、不存在了。而設置成null,這個屬性還是存在,只不過是null值。

如果你想讓對象中某個屬性消失,那么就把它設置成undefined吧。這也許是undefined和null同時存在的最大的意義。

總結

到此這篇關于Javascript中Null和undefined的文章就介紹到這了,更多相關JS Null和undefined內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • js判斷undefined變量類型使用typeof

    js判斷undefined變量類型使用typeof

    js判斷undefined變量類型使用typeof可以輕松實現(xiàn),不了解的朋友可以參考下哈,希望對你有所幫助
    2013-06-06
  • ES6中Object.assign方法使用詳解

    ES6中Object.assign方法使用詳解

    這篇文章主要給大家介紹了關于ES6中Object.assign方法使用的相關資料,Object.assign可以用來處理數(shù)組,但是會把數(shù)組視為對象,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • 等待指定時間后自動跳轉或關閉當前頁面的js代碼

    等待指定時間后自動跳轉或關閉當前頁面的js代碼

    本文為大家詳細介紹下如何通過js實現(xiàn)等待指定時間后自動跳轉或關閉當前頁面的腳步代碼,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-07-07
  • JS中的Replace()傳入函數(shù)時的用法詳解

    JS中的Replace()傳入函數(shù)時的用法詳解

    這篇文章主要介紹了JS中的Replace()傳入函數(shù)時的用法詳解,replace方法的語法是:stringObj.replace(rgExp, replaceText)關于js replace 傳入函數(shù)的用法,大家通過本文學習吧
    2017-09-09
  • 5 種JavaScript編碼規(guī)范

    5 種JavaScript編碼規(guī)范

    編碼規(guī)范就是指導如何編寫和組織代碼的一系列標準,下面通過本文給大家?guī)砹? 種JavaScript編碼規(guī)范,需要的朋友參考下
    2018-01-01
  • JavaScript數(shù)組reduce常見實例方法

    JavaScript數(shù)組reduce常見實例方法

    reduce方法在數(shù)組的每個元素上執(zhí)行用戶提供的回調函數(shù),即"reducer",它傳入對前一個元素進行計算的返回值,結果是單個值,它是在數(shù)組的所有元素上運行reducer的結果,下面這篇文章主要給大家介紹了關于JavaScript數(shù)組reduce常見實例方法的相關資料,需要的朋友可以參考下
    2022-05-05
  • JS實現(xiàn)頁面超時后自動跳轉到登陸頁面

    JS實現(xiàn)頁面超時后自動跳轉到登陸頁面

    這篇文章主要介紹了JS實現(xiàn)頁面超時后自動跳轉到登陸頁面,需要的朋友可以參考下
    2015-01-01
  • js閉包的9個使用場景

    js閉包的9個使用場景

    這篇文章主要介紹了js 閉包的9個使用場景,幫助大家更好的理解和學習JavaScript 閉包的使用,感興趣的朋友可以了解下
    2020-12-12
  • JS 創(chuàng)建對象的模式實例小結

    JS 創(chuàng)建對象的模式實例小結

    這篇文章主要介紹了JS 創(chuàng)建對象的模式,結合實例形式總結分析了JS 創(chuàng)建對象的各種常用模式,包括工廠模式、構造函數(shù)模式、原型模式、組合構造和原型模式、動態(tài)原型模式、寄生構造函數(shù)模式、穩(wěn)妥構造模式等,需要的朋友可以參考下
    2020-04-04
  • webpack多入口文件頁面打包配置詳解

    webpack多入口文件頁面打包配置詳解

    本篇文章主要介紹了webpack多入口文件頁面打包配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論

澄城县| 定襄县| 金堂县| 深水埗区| 陈巴尔虎旗| 宝鸡市| 永寿县| 昭觉县| 城固县| 兴仁县| 洪湖市| 白银市| 潞西市| 安阳县| 札达县| 连州市| 蓬安县| 林甸县| 阜康市| 平南县| 始兴县| 东乌珠穆沁旗| 饶阳县| 和田县| 合山市| 望奎县| 昭通市| 贵溪市| 开阳县| 抚松县| 武汉市| 日喀则市| 东阳市| 铜梁县| 关岭| 镇原县| 友谊县| 获嘉县| 双桥区| 剑川县| 布尔津县|