欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于JS中的undefined與null詳解

 更新時(shí)間:2023年05月23日 10:09:14   作者:施主來(lái)了  
在JavaScript中,undefined和null是兩個(gè)特殊的值,用于表示缺失或空值,文章通過(guò)代碼示例詳細(xì)介紹undefined與null作用及使用方法,感興趣的同學(xué)可以借鑒一下

undefined 是一個(gè)表示未定義或未賦值的原始值。它在以下情況下使用:

  • 變量聲明了但未初始化時(shí),默認(rèn)為 undefined。
let x;
console.log(x); // undefined
  • 訪問(wèn)對(duì)象屬性或數(shù)組元素時(shí),如果該屬性或元素不存在,則返回 undefined。
let obj = { name: "John", age: 30 };
console.log(obj.address); // undefined
let arr = [1, 2, 3];
console.log(arr[3]); //undefined
  • 函數(shù)沒(méi)有明確返回值時(shí),默認(rèn)返回 undefined。
function foo() {
  // 沒(méi)有明確返回值
}
console.log(foo()); // undefined

相比之下,null 是一個(gè)表示空值或沒(méi)有對(duì)象引用的特殊值。它通常由程序員顯式賦予變量或?qū)傩?,表示該值為空。例如?/p>

let x = null;
console.log(x); // null

null 主要用于以下情況:

  • 初始化一個(gè)變量,以便稍后將其設(shè)置為對(duì)象。
let obj = null; // 初始化為 null
obj = { name: "John", age: 30 }; // 后續(xù)設(shè)置為對(duì)象
  • 表示函數(shù)的參數(shù)不具有對(duì)象引用。
function foo(arg) {
  if (arg === null) {
    console.log("參數(shù)為空");
  } else {
    console.log("參數(shù)不為空");
  }
}
foo(null); // 參數(shù)為空
foo("Hello"); // 參數(shù)不為空

需要注意的是,undefinednull 是不同的類(lèi)型。undefined 是一個(gè)類(lèi)型為 undefined 的值,而 null 是一個(gè)類(lèi)型為 object 的值。然而,在相等性比較(=====)中,它們是相等的,因?yàn)樗鼈兌急硎局嗤暮x——空值。

console.log(undefined == null); // true
console.log(undefined === null); // false

在編程中,通常使用 undefined 來(lái)表示未定義或未賦值的狀態(tài),使用 null 來(lái)表示有意地將一個(gè)值設(shè)置為空。

當(dāng)涉及到undefinednull的更多細(xì)節(jié)時(shí),還有一些要注意的事項(xiàng):

  • 類(lèi)型檢查:

    • 使用 typeof 操作符檢查 undefined 值時(shí),會(huì)返回字符串 "undefined"
    • 使用 typeof 操作符檢查 null 值時(shí),會(huì)返回字符串 "object"。這是一個(gè)歷史遺留問(wèn)題,null 被錯(cuò)誤地標(biāo)識(shí)為對(duì)象類(lèi)型。
let x;
console.log(typeof x); // "undefined"
let y = null;
console.log(typeof y); // "object"

默認(rèn)參數(shù)值:

  • 當(dāng)函數(shù)的參數(shù)沒(méi)有傳遞或傳遞的值為 undefined 時(shí),可以使用默認(rèn)參數(shù)值。
  • 當(dāng)函數(shù)的參數(shù)傳遞 null 值時(shí),會(huì)將 null 視為有效值,而不會(huì)觸發(fā)默認(rèn)參數(shù)值。
function foo(x = "default") {
  console.log(x);
}
foo(); // "default"
foo(undefined); // "default"
foo(null); // null

安全導(dǎo)航操作符(Optional Chaining):

  • 使用安全導(dǎo)航操作符(?.)可以避免訪問(wèn)對(duì)象屬性或調(diào)用方法時(shí)出現(xiàn) undefined 或 null 的錯(cuò)誤。如果屬性或方法不存在,則會(huì)返回 undefined。
let obj = { name: "John", address: { city: "New York" } };
console.log(obj.address?.city); // "New York"
console.log(obj.address?.zipCode); // undefined

變量賦值:

  • 在變量賦值時(shí),undefined 被視為一個(gè)變量可以接收的有效值。
  • 而 null 被視為一個(gè)特殊值,通常用于表示空或未定義的狀態(tài)。
let x = undefined;
console.log(x); // undefined
let y = null;
console.log(y); //  null

以上就是關(guān)于JS中的undefined與null詳解的詳細(xì)內(nèi)容,更多關(guān)于JS undefined與null的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript中操作Mysql數(shù)據(jù)庫(kù)實(shí)例

    JavaScript中操作Mysql數(shù)據(jù)庫(kù)實(shí)例

    這篇文章主要介紹了JavaScript中操作Mysql數(shù)據(jù)庫(kù)實(shí)例,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-04-04
  • 如何自定義微信小程序tabbar上邊框的顏色

    如何自定義微信小程序tabbar上邊框的顏色

    這篇文章主要介紹了如何自定義微信小程序tabbar上邊框的顏色,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • echarts幾個(gè)公司內(nèi)部數(shù)據(jù)可視化圖表必收藏

    echarts幾個(gè)公司內(nèi)部數(shù)據(jù)可視化圖表必收藏

    最近公司有一個(gè)需求,要做一個(gè)數(shù)據(jù)可視化的頁(yè)面,所有的圖表都在下面,做這些都是本人自己寫(xiě)的,全部都是真是的項(xiàng)目中的代碼,包含有柱狀圖、折線圖、水球圖以及散點(diǎn)圖,這里直接打出來(lái)給大家練手,希望大家多多支持,如果這篇文章對(duì)您有用的話必須收藏
    2022-08-08
  • JSONP跨域請(qǐng)求

    JSONP跨域請(qǐng)求

    本文主要介紹了jsonp跨域請(qǐng)求的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • JavaScript實(shí)現(xiàn)移動(dòng)端滑動(dòng)選擇日期功能

    JavaScript實(shí)現(xiàn)移動(dòng)端滑動(dòng)選擇日期功能

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)滑動(dòng)選擇日期功能,基于sui-mobile的移動(dòng)端實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2016-06-06
  • js的touch事件的實(shí)際引用

    js的touch事件的實(shí)際引用

    研究移動(dòng)端頁(yè)面的觸屏滑動(dòng)事件,搜索jquery 的相應(yīng)技術(shù)支持實(shí)在繁瑣,而js只需幾步簡(jiǎn)單定義即可,下面與大家分享下js的touch事件的實(shí)際引用
    2014-10-10
  • 深入淺出理解javaScript原型鏈

    深入淺出理解javaScript原型鏈

    這篇文章主要介紹了對(duì)javaScript原型鏈的理解,以實(shí)例形式對(duì)javaScript原型鏈的概念及相關(guān)使用技巧做了較為淺顯易懂的分析,需要的朋友可以參考下
    2015-05-05
  • 一篇文章讓你徹底搞懂js中的位置計(jì)算

    一篇文章讓你徹底搞懂js中的位置計(jì)算

    js中有各種與位置相關(guān)的屬性,每次看到的時(shí)候都各種懵逼,索性一次總結(jié)一下,這篇文章主要給大家介紹了關(guān)于js中位置計(jì)算的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • javascript模擬的Ping效果代碼 (Web Ping)

    javascript模擬的Ping效果代碼 (Web Ping)

    JS雖然發(fā)送不了真正Ping的ICMP數(shù)據(jù)包,但Ping的本質(zhì)仍然是請(qǐng)求/回復(fù)的時(shí)間差,HTTP自然可以實(shí)現(xiàn)此功能.
    2011-03-03
  • 詳解微信小程序工程化探索之webpack實(shí)戰(zhàn)

    詳解微信小程序工程化探索之webpack實(shí)戰(zhàn)

    這篇文章主要介紹了詳解微信小程序工程化探索之webpack實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論