电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

JS中null和undefined的區(qū)別

瀏覽:110日期:2022-06-10 08:17:36
目錄
  • 前言
  • 定義
  • 異同點
  • 實際應(yīng)用
  • 總結(jié)
  • 1.JS 中如何判斷 undefined
  • 2.JS 中如何判斷 null

前言

在JavaScript中,null和undefined是兩個常見的數(shù)據(jù)類型,但總是在使用時由于對兩者區(qū)別不清而導致錯誤,今天就讓我們一起來看看這兩種類型的區(qū)別。

定義

首先讓我們來看看兩者的定義: null是JavaScript中的一個特殊值,表示“空值”或“無值”。當我們想要表示某個變量不包含任何值時,就可以將其設(shè)置為null。 undefined是JavaScript中的另一種特殊值,表示“未定義的值”。當我們聲明一個變量但沒有給它賦值時,該變量的值就是undefined。

異同點

相同點:

  • undefined和null被轉(zhuǎn)換為布爾值的時候,兩者都為false
  • undefined==null,結(jié)果為true都表示一個空值,兩者判斷值相等上是一樣的

盡管nullundefined都表示“無值”,但它們之間還是有一些區(qū)別的。

不同點:

  • null表示一個空對象指針,而undefined表示一個未定義的值。
  • 當我們聲明一個變量但沒有給它賦值時,該變量的值就是undefined。當我們想要明確地表示某個變量不包含任何值時,就可以將其設(shè)置為null。
  • 如果我們使用typeof運算符檢查一個null值時,返回的結(jié)果是“object”。而如果檢查一個未聲明的變量時,返回的結(jié)果是undefined。
  • undefined不是關(guān)鍵字,而null是關(guān)鍵字
  • undefined本質(zhì)上是window的一個屬性,而null是一個對象

接下來就讓我們來結(jié)合一些小小的例子來進行理解:

let firval = null;
let secval;
console.log(firval == secval); // 輸出:true
console.log(firval === secval); // 輸出:false
console.log(firval); // 輸出:null
console.log(secval); // 輸出:undefined
console.log(typeof firval); // 輸出:object
console.log(typeof secval); // 輸出:undefined

在上面的示例中,我們聲明了兩個變量firval和secval。firval的值被設(shè)置為null,而secval沒有被賦值,因此它的值是undefined。當我們使用console.log()函數(shù)打印這兩個變量時,分別輸出了null和undefined。當我們使用typeof運算符檢查這兩個變量的類型時,分別輸出了object和undefined,同時需要注意null與undefined本質(zhì)上是不同,當使用雙等時輸出為true相信大家應(yīng)該都有所了解,沒錯,因為在 JavaScript 里,雙等號判斷相等時會進行隱式類型轉(zhuǎn)換,所以是不嚴格的。

實際應(yīng)用

在實際的開發(fā)中,我們經(jīng)常需要使用null和undefined在某些特殊的情景。例如,當我們從服務(wù)器獲取數(shù)據(jù)時,如果數(shù)據(jù)不存在,我們可能會將返回值設(shè)置為null或undefined。這樣做可以幫助我們更好地處理數(shù)據(jù)并避免出現(xiàn)錯誤。

以下便是一個null應(yīng)用場景:

function getData() {
  let data = null;
  // 如果數(shù)據(jù)不存在,返回null
  if (!data) {
    return null;
  }
  // 處理數(shù)據(jù)
  // ...
  // 如果處理成功,返回處理結(jié)果
  return result;
}

在上面的示例中,我們定義了一個名為getData的函數(shù),用于獲取數(shù)據(jù)并處理它。如果數(shù)據(jù)不存在,我們將返回值設(shè)置為null。否則,我們將處理數(shù)據(jù)并返回處理結(jié)果。

除此之外,null還有一個前端人員都熟悉的作用:作為對象原型鏈的終點

對于undefined的作用,這里大致列舉以下幾種:

  • 如果變量聲明了,但沒有賦值,它就等于undefined 。

  • 函數(shù)中的參數(shù)沒有給時,該參數(shù)就等于undefined 。

  • 對象沒有進行賦值,該屬性的值為undefined。

  • 當函數(shù)沒有返回值時,默認返回undefined。

總結(jié)

在本文中,我們簡單探討了JavaScript中的null和undefined類型,需要記住的是,null表示一個空對象指針,而undefined表示一個未定義的值。當我們想要明確地表示某個變量不包含任何值時,就可以將其設(shè)置為null。而當我們聲明一個變量但沒有給它賦值時,該變量的值就是undefined。

補:

1.JS 中如何判斷 undefined

JavaScript 中有兩個特殊數(shù)據(jù)類型:undefined 和 null,下節(jié)介紹了 null 的判斷,下面談?wù)?undefined 的判斷。

以下是不正確的用法:

var exp = undefined;
if (exp == undefined)
{
    alert("undefined");
}

exp 為 null 時,也會得到與 undefined 相同的結(jié)果,雖然 null 和 undefined 不一樣。注意:要同時判斷 undefined 和 null 時可使用本法。

var exp = undefined;
if (typeof(exp) == undefined)
{
    alert("undefined");
}

以下是正確的用法:

var exp = undefined;
if (typeof(exp) == "undefined")
{
    alert("undefined");
}

2.JS 中如何判斷 null

以下是不正確的用法:

var exp = null;?
if (exp == null)?
{?
alert(“is null”);?
}

exp 為 undefined 時,也會得到與 null 相同的結(jié)果,雖然 null 和 undefined 不一樣。注意:要同時判斷 null 和 undefined 時可使用本法。

var exp = null;?
if (!exp)?
{?
alert(“is null”);?
}

如果 exp 為 undefined 或者數(shù)字零,也會得到與 null 相同的結(jié)果,雖然 null 和二者不一樣。注意:要同時判斷 null、undefined 和數(shù)字零時可使用本法。

var exp = null;?
if (typeof(exp) == “null”)?
{?
alert(“is null”);?
}

為了向下兼容,exp 為 null 時,typeof 總返回 object。

var exp = null;?
if (isNull(exp))?
{?
alert(“is null”);?
}

JavaScript 中沒有 isNull 這個函數(shù)。

以下是正確的用法:

var exp = null; 
if (!exp && typeof(exp)!=”undefined” && exp!=0) 
{ 
alert(“is null”); 
}

 到此這篇關(guān)于JS中null和undefined的區(qū)別的文章就介紹到這了,更多相關(guān)JS null undefined內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 二手回收公司_销毁处理公司_设备回收公司-找回收信息网 | 番茄畅听邀请码怎么输入 - Dianw8.com | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | 混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 包塑软管|金属软管|包塑金属软管-闵彬管业 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 服务器之家 - 专注于服务器技术及软件下载分享 | 油缸定制-液压油缸厂家-无锡大鸿液压气动成套有限公司 | 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | 济南办公室装修-厂房装修-商铺装修-工装公司-山东鲁工装饰设计 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 石英粉,滑石粉厂家,山东滑石粉-莱州市向阳滑石粉有限公司 | 常州减速机_减速机厂家_常州市减速机厂有限公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 包塑软管|金属软管|包塑金属软管-闵彬管业 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 包装盒厂家_纸盒印刷_礼品盒定制-济南恒印包装有限公司 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 山东成考网-山东成人高考网 |