目錄
JavaScript的類型
隱含轉換
#比較運算
由於基本包裝類型和基本類型的意義並不一樣,會導致typeof等操作產生不同的結果,不建議顯示實例化基本資料型別
型別偵測
以下為true:
Object.prototype.toString.apply()
首頁 web前端 js教程 分享JavaScript類型之間的比較

分享JavaScript類型之間的比較

Jun 26, 2017 pm 01:26 PM
javascript js 比較 類型

JavaScript的類型

原始類型:

  • number

  • string

  • boolean

  • null

  • #undefined

物件類型:

  • Object

  • function

  • #Array

  • Date

  • ...

隱含轉換

#+/- 運算

  • "37" + 7 = "377"

"37" - 7 = 30

==

運算
  • 以下為true:

  • "1.23" == 1.23

  • 0 == false

null == undefined

#比較運算

    ===
  • 嚴格等於

  • 類型不同,回傳false

  • 類型相同,以下為true:

  • null === null

  • undefine === null

  • NaN != NaN

new Object != new Obejct

    ==
  • 等於

    #類型相同,同
  • ===
  • ##型別不同,嘗試型別轉換比較
  • null == undefined
  • number == string 轉number
  • boolean == ? 轉number
  • #Object == number | string 嘗試物件轉換為基本型別
  • 其他:false

包裝類型

為了方便操作基本型別值,Js提供了基本型別的自動包裝功能,每單讀取一個基本型別值的時候,後台會建立一個對應的基本包裝類型的對象,並在呼叫後自動銷毀。

由於基本包裝類型和基本類型的意義並不一樣,會導致typeof等操作產生不同的結果,不建議顯示實例化基本資料型別

var a = "string";
alert(a.length);    //6

a.t = 3;
alert(a.t);         //undefined
登入後複製

型別偵測

typeof

以下為true:

typeof 100 === “number”
typeof true === “boolean”
typeof function () {} === “function”
typeof(undefined) ) === “undefined”
typeof(new Object() ) === “object”
typeof( [1, 2] ) === “object”
typeof(NaN ) === “number”   //NaN也为number
typeof(null) === “object”
登入後複製

instanceof

#obj instanceof Object

利用原型鏈進行判斷,適用於物件間判斷。它期望左邊是一對象,右邊是函數物件或函數建構器。

以下為true:

[1, 2] instanceof Array === true
new Object() instanceof Array === false
登入後複製

Object.prototype.toString.apply()

Object.prototype.toString.apply([]); === “[object Array]”;
Object.prototype.toString.apply(function(){}); === “[object Function]”;
Object.prototype.toString.apply(null); === “[object Null]”
Object.prototype.toString.apply(undefined); === “[object Undefined]”

// IE6/7/8 Object.prototype.toString.apply(null) 返回”[object Object]”
登入後複製
    小結

  • typeof
  • 適合基本類型及function檢測,遇到null失效。

  • [[Class]]
  • 透過{}.toString拿到,適合內建物件和基底類型,遇到null和undefined失效(IE678等返回[object Object] )。

  • instanceof
  • 適合自訂對象,也可以用來偵測原生對象,在不同iframe和window間偵測時失效。
#######

以上是分享JavaScript類型之間的比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

小米14 Pro怎麼開啟nfc功能? 小米14 Pro怎麼開啟nfc功能? Mar 19, 2024 pm 02:28 PM

現今手機的效能和功能越來越強大,幾乎所有手機都配備了便利的NFC功能,方便用戶進行行動支付和身分認證。然而,有些小米14Pro的用戶可能不清楚如何啟用NFC功能。接下來,讓我詳細向大家介紹一下。小米14Pro怎麼開啟nfc功能?步驟一:打開手機的設定選單。步驟二:找到並點選「連接和分享」或「無線和網路」選項。步驟三:在連接和共享或無線和網路選單中,找到並點擊「NFC和付款」。步驟四:找到並點選「NFC開關」。一般情況下,預設是關閉的狀態。步驟五:在NFC開關頁面上,點選開關按鈕,將其切換為開啟狀

建議:優秀JS開源人臉偵測辨識項目 建議:優秀JS開源人臉偵測辨識項目 Apr 03, 2024 am 11:55 AM

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

iPhone 16 Pro CAD 圖曝光 加入第二個新按鍵 iPhone 16 Pro CAD 圖曝光 加入第二個新按鍵 Mar 09, 2024 pm 09:07 PM

iPhone16Pro的CAD檔案已經曝光,設計與先前的傳聞一致。去年秋天,iPhone15Pro新增了Action按鈕,而今年秋天,Apple似乎計劃對這款硬體的尺寸進行微小的調整。加入Capture按鈕據傳言,iPhone16Pro可能會新增第二個新按鈕,這將是繼去年之後連續第二年增加新按鈕。傳聞指出新的Capture按鈕將被設定在iPhone16Pro的右下側,這項設計可望讓相機控制更加便捷,同時也能讓Action按鈕用於其他功能。這個按鈕將不再只是一個普通的快門按鈕。關於相機,從目前iP

華為 Pocket2怎麼隔空刷抖音? 華為 Pocket2怎麼隔空刷抖音? Mar 18, 2024 pm 03:00 PM

隔空滑動螢幕是華為的一項功能,在華為mate60系列中可以說是備受好評,這個功能是通過利用手機上的激光感應器和前置攝像頭的3D深感攝像頭,來完成一系列不需要觸碰螢幕的功能,比如說隔空刷抖音,但華為Pocket2該要怎麼隔空刷抖音呢?華為Pocket2怎麼隔空截圖? 1.開啟華為Pocket2的設定2、然後選擇【輔助功能】。 3.點選打開【智慧感知】。 4.打開【隔空滑動螢幕】、【隔空截圖】、【隔空按壓】開關就可以了。 5.使用的時候,需要再距離螢幕20~40CM處,張開手掌,待螢幕上出現手掌圖標,

WPS Word怎麼設定行距讓文件更工整 WPS Word怎麼設定行距讓文件更工整 Mar 20, 2024 pm 04:30 PM

WPS是我們常用的辦公室軟體,在進行長篇文章的編輯時,常常會因為字體太小而看不清楚,所以會對字體和整個文件進行調整。例如:把文件進行行距的調整,會讓整個文件變得非常清晰,我建議各位小夥伴們都要學會這個操作步驟,今天就分享給大家,具體的操作步驟如下,快來看一看!開啟要調整的WPS文字文件,在【開始】選單中找到段落設定工具欄,你會看到行距設定小圖示(如圖中紅色線圈所示)。 2.點選行距設定右下角的小倒三角形,會出現對應的行距數值,可以選擇1~3倍行距(如圖箭頭所示)。 3.或者點選滑鼠右鍵點擊段落,就會出

TrendX 研究院:Merlin Chain 計畫分析及生態盤點 TrendX 研究院:Merlin Chain 計畫分析及生態盤點 Mar 24, 2024 am 09:01 AM

根據3月2日數據統計,比特幣二層網路MerlinChain總TVL已達30億美元。其中比特幣生態資產佔比達90.83%,包括價值15.96億美元的BTC以及4.04億美元的BRC-20資產等。上一個月,MerlinChain在開啟質押活動14天內,其TVL總額就已經達到了19.7億美元,超過了去年11月份上線也是最近同樣引人注目的Blast。 2月26日,MerlinChain生態內的NFT總價值超過了4.2億美元,成為除以太坊以外NFT市值最高的公鏈項目。項目簡介MerlinChain是OKX支

C語言與PHP的區別及比較分析 C語言與PHP的區別及比較分析 Mar 20, 2024 am 08:54 AM

C語言與PHP的差異及比較分析C語言和PHP都是常見的程式語言,但它們在許多方面有著明顯的差異。本文將對C語言和PHP進行比較分析,並透過具體的程式碼範例來說明它們之間的差異。一、語法和用途:C語言:C語言是一種過程導向的程式語言,主要用於系統級程式設計和嵌入式開發。 C語言的語法相對較為簡潔和底層,能夠直接操作內存,具有高效性和靈活性。 C語言強調程式設計師對程式的完全

小米14 Ultra AI智慧擴圖如何使用? 小米14 Ultra AI智慧擴圖如何使用? Mar 16, 2024 pm 12:37 PM

時代的進步讓許多人收入越來越高了,平時使用的手機也會經常更換,最近小米剛推出的小米14Ultra想必用戶們都是有所了解的,性能配置非常高,能夠為用戶們提供更為舒適的流暢體驗,不過新手機難免會遇到很多不會用的功能,例如小米14UltraAI智慧擴圖怎麼使用?快來看看下面的使用教學吧!小米14UltraAI智慧擴圖怎麼使用?先打開小米14Ultra,進入相冊,選擇想要進行擴圖的圖片,進入相簿編輯選項。點選其中的裁切旋轉,點選裁切,在出現的選擇中點選智慧擴圖。最後根據你自己的需求來選擇擴圖的方式,

See all articles