第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么NULL是一個(gè)對(duì)象,空和未定義之間有什么區(qū)別?

為什么NULL是一個(gè)對(duì)象,空和未定義之間有什么區(qū)別?

收到一只叮咚 2019-06-19 16:50:53
為什么NULL是一個(gè)對(duì)象,空和未定義之間有什么區(qū)別?為什么null被認(rèn)為是object用JavaScript?正在檢查if ( object == null )       Do something同if ( !object )       Do something?此外:.之間的區(qū)別是什么?null和undefined?
查看完整描述

3 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

這種差異可以歸納為以下片段:

alert(typeof(null));      // objectalert(typeof(undefined)); // undefinedalert(null !== undefined) //truealert(null == undefined)  //true

檢查

object == null是不同的檢查if ( !object ).

后者等于! Boolean(object),因?yàn)橐辉?/trans>!運(yùn)算符自動(dòng)將右操作數(shù)轉(zhuǎn)換為布爾值。

Boolean(null)等于假!false === true.

所以如果你的對(duì)象是非空 假的0"",該支票將通過,因?yàn)椋?/trans>

alert(Boolean(null)) //falsealert(Boolean(0))    //falsealert(Boolean(""))   //false


查看完整回答
反對(duì) 回復(fù) 2019-06-19
?
30秒到達(dá)戰(zhàn)場

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

null不是物體,這是一個(gè)原始值..例如,不能向其添加屬性。有時(shí)人們錯(cuò)誤地認(rèn)為它是一個(gè)物體,因?yàn)?/trans>typeof null回報(bào)"object"..但這實(shí)際上是一個(gè)bug(甚至可以在ECMAScript 6中修復(fù))。

.之間的區(qū)別nullundefined如下:

  • undefined*由JavaScript使用,意思是“無值”。未初始化變量、缺少參數(shù)和未知變量都有此值。

    > var noValueYet;> console.log(noValueYet);undefined> function foo(x) { console.log(x) }> foo()undefined> var obj = {};
    > console.log(obj.unknownProperty)undefined

    但是,訪問未知變量會(huì)產(chǎn)生異常:

    > unknownVariableReferenceError: unknownVariable is not defined
  • null*程序員用來表示“無值”,例如作為函數(shù)的參數(shù)。

檢查變量:

console.log(typeof unknownVariable === "undefined"); // truevar foo;console.log(typeof foo === "undefined"); 
// trueconsole.log(foo === undefined); // truevar bar = null;console.log(bar === null); // true

作為一般規(guī)則,您應(yīng)該始終在JavaScript中使用=和從不=(=執(zhí)行)各種轉(zhuǎn)換會(huì)產(chǎn)生意想不到的結(jié)果)。支票x == null是一種邊緣情況,因?yàn)樗鼘?duì)兩種情況都適用。nullundefined:

> null == nulltrue> undefined == nulltrue

檢查變量是否有值的一種常見方法是將其轉(zhuǎn)換為布爾值,并查看它是否為布爾值。true..該轉(zhuǎn)換由if語句和布爾運(yùn)算符!(“不”)。

function foo(param) {
    if (param) {
        // ...
    }}function foo(param) {
    if (! param) param = "abc";}function foo(param) {
    // || returns first operand that can't be converted to false
    param = param || "abc";}

此方法的缺點(diǎn):以下所有值計(jì)算為false,所以您必須小心(例如,上面的檢查不能區(qū)分undefined0).

  • undefinednull

  • 布爾人:

    false

  • 數(shù)字:

    +0-0NaN

  • 字符串:

    ""

可以通過以下方法測試到布爾值的轉(zhuǎn)換:Boolean作為一個(gè)函數(shù)(通常它是一個(gè)構(gòu)造函數(shù),用于new):

> Boolean(null)false> Boolean("")false> Boolean(3-3)false> Boolean({})true> Boolean([])true


查看完整回答
反對(duì) 回復(fù) 2019-06-19
  • 3 回答
  • 0 關(guān)注
  • 1158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)