新聞中心
1.undefined 和 null 有什么區(qū)別?

目前成都創(chuàng)新互聯(lián)公司已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、蘭溪網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
在理解undefined和null之間的差異之前,我們先來看看它們的相似類。
它們屬于 JavaScript 的 7 種基本類型。
- letprimitiveTypes=['string','number','null','undefined','boolean','symbol','bigint'];
它們是屬于虛值,可以使用Boolean(value)或!!value將其轉(zhuǎn)換為布爾值時(shí),值為false。
- console.log(!!null);//falseconsole.log(!!undefined);//falseconsole.log(Boolean(null));//falseconsole.log(Boolean(undefined));//false
接著來看看它們的區(qū)別。
undefined是未指定特定值的變量的默認(rèn)值,或者沒有顯式返回值的函數(shù),如:console.log(1),還包括對(duì)象中不存在的屬性,這些 JS 引擎都會(huì)為其分配 undefined 值。
- let_thisIsUndefined;constdoNothing=()=>{};constsomeObj={a:"ay",b:"bee",c:"si"};console.log(_thisIsUndefined);//undefinedconsole.log(doNothing());//undefinedconsole.log(someObj["d"]);//undefined
null是“不代表任何值的值”。null是已明確定義給變量的值。在此示例中,當(dāng)fs.readFile方法未引發(fā)錯(cuò)誤時(shí),我們將獲得null值。
- fs.readFile('path/to/file',(e,data)=>{console.log(e);//當(dāng)沒有錯(cuò)誤發(fā)生時(shí),打印nullif(e){console.log(e);}console.log(data);});
在比較null和undefined時(shí),我們使用==時(shí)得到true,使用===時(shí)得到false:
- console.log(null==undefined);//trueconsole.log(null===undefined);//false
2. && 運(yùn)算符能做什么
&& 也可以叫邏輯與,在其操作數(shù)中找到第一個(gè)虛值表達(dá)式并返回它,如果沒有找到任何虛值表達(dá)式,則返回最后一個(gè)真值表達(dá)式。它采用短路來防止不必要的工作。
- console.log(false&&1&&[]);//falseconsole.log(""&&true&&5);//5
使用if語句
- constrouter:Router=Router();router.get('/endpoint',(req:Request,res:Response)=>{letconMobile:PoolConnection;try{//dosomedboperations}catch(e){if(conMobile){conMobile.release();}}});
使用&&操作符
- constrouter:Router=Router();router.get('/endpoint',(req:Request,res:Response)=>{letconMobile:PoolConnection;try{//dosomedboperations}catch(e){conMobile&&conMobile.release()}});
3. || 運(yùn)算符能做什么
||也叫或邏輯或,在其操作數(shù)中找到第一個(gè)真值表達(dá)式并返回它。這也使用了短路來防止不必要的工作。在支持 ES6 默認(rèn)函數(shù)參數(shù)之前,它用于初始化函數(shù)中的默認(rèn)參數(shù)值。
- console.log(null||1||undefined);//1functionlogName(name){varn=name||"Mark";console.log(n);}logName();//"Mark"
4. 使用 + 或一元加運(yùn)算符是將字符串轉(zhuǎn)換為數(shù)字的最快方法嗎?
根據(jù)MDN文檔,+是將字符串轉(zhuǎn)換為數(shù)字的最快方法,因?yàn)槿绻狄呀?jīng)是數(shù)字,它不會(huì)執(zhí)行任何操作。
5. DOM 是什么?
DOM 代表文檔對(duì)象模型,是 HTML 和 XML 文檔的接口(API)。當(dāng)瀏覽器第一次讀取(解析)HTML文檔時(shí),它會(huì)創(chuàng)建一個(gè)大對(duì)象,一個(gè)基于 HTM L文檔的非常大的對(duì)象,這就是DOM。它是一個(gè)從 HTML 文檔中建模的樹狀結(jié)構(gòu)。DOM 用于交互和修改DOM結(jié)構(gòu)或特定元素或節(jié)點(diǎn)。
假設(shè)我們有這樣的 HTML 結(jié)構(gòu):
DocumentObjectModel


咨詢
建站咨詢