JS檢測數據類型詳解

一、js檢測數據類型方法

JS中內置了用於檢測數據類型的方法,其中最常用的是typeof和instanceof。

// 使用typeof檢測數據類型
console.log(typeof 123); // 輸出 "number"
console.log(typeof "hello"); // 輸出 "string"
console.log(typeof true); // 輸出 "boolean"
console.log(typeof undefined); // 輸出 "undefined"
console.log(typeof null); // 輸出 "object"
console.log(typeof []); // 輸出 "object"
console.log(typeof {}); // 輸出 "object"
console.log(typeof function(){}); // 輸出 "function"

// 使用instanceof檢測數據類型
console.log(123 instanceof Number); // 輸出 false
console.log("hello" instanceof String); // 輸出 false
console.log(true instanceof Boolean); // 輸出 false
console.log(undefined instanceof undefined); // 輸出報錯
console.log(null instanceof null); // 輸出 false
console.log([] instanceof Array); // 輸出 true
console.log({} instanceof Object); // 輸出 true
console.log((function(){}) instanceof Function); // 輸出 true

二、js如何檢測數據類型

在JS中,除了使用內置的檢測數據類型方法外,還可以使用typeof+值的形式來進行數據類型的判斷。

// 使用typeof+值來檢測數據類型
console.log(typeof 123 === "number"); // 輸出 true
console.log(typeof "hello" === "string"); // 輸出 true
console.log(typeof true === "boolean"); // 輸出 true
console.log(typeof undefined === "undefined"); // 輸出 true
console.log(typeof null === "object"); // 輸出 true
console.log(typeof [] === "object"); // 輸出 true
console.log(typeof {} === "object"); // 輸出 true
console.log(typeof function(){} === "function"); // 輸出 true

三、檢測數據類型js

在JS中,有多種方法可以檢測數據類型,如使用typeof、instanceof、Object.prototype.toString等。

// 使用Object.prototype.toString來檢測數據類型
console.log(Object.prototype.toString.call(123) === "[object Number]"); // 輸出 true
console.log(Object.prototype.toString.call("hello") === "[object String]"); // 輸出 true
console.log(Object.prototype.toString.call(true) === "[object Boolean]"); // 輸出 true
console.log(Object.prototype.toString.call(undefined) === "[object Undefined]"); // 輸出 true
console.log(Object.prototype.toString.call(null) === "[object Null]"); // 輸出 true
console.log(Object.prototype.toString.call([]) === "[object Array]"); // 輸出 true
console.log(Object.prototype.toString.call({}) === "[object Object]"); // 輸出 true
console.log(Object.prototype.toString.call(function(){}) === "[object Function]"); // 輸出 true

四、js檢測數據類型是不是數字

在JS中,可以使用typeof或isNaN方法來檢測一個值是否為數字類型。

var num = 123;
console.log(typeof num === "number"); // 輸出 true
console.log(!isNaN(num)); // 輸出 true

var str = "123";
console.log(typeof str === "number"); // 輸出 false
console.log(!isNaN(str)); // 輸出 true

var bool = true;
console.log(typeof bool === "number"); // 輸出 false
console.log(!isNaN(bool)); // 輸出 true

var undef = undefined;
console.log(typeof undef === "number"); // 輸出 false
console.log(isNaN(undef)); // 輸出 true

var nul = null;
console.log(typeof nul === "number"); // 輸出 false
console.log(!isNaN(nul)); // 輸出 true

五、js檢測數據類型的操作符

在JS中,有三種操作符可以用於檢測變量的數據類型,分別為typeof、instanceof、和Object.prototype.toString.call()。

var num = 123;
console.log(typeof num); // 輸出 "number"
console.log(num instanceof Number); // 輸出 false
console.log(Object.prototype.toString.call(num)); // 輸出 "[object Number]"

var str = "hello";
console.log(typeof str); // 輸出 "string"
console.log(str instanceof String); // 輸出 false
console.log(Object.prototype.toString.call(str)); // 輸出 "[object String]"

var bool = true;
console.log(typeof bool); // 輸出 "boolean"
console.log(bool instanceof Boolean); // 輸出 false
console.log(Object.prototype.toString.call(bool)); // 輸出 "[object Boolean]"

var arr = [];
console.log(typeof arr); // 輸出 "object"
console.log(arr instanceof Array); // 輸出 true
console.log(Object.prototype.toString.call(arr)); // 輸出 "[object Array]"

var obj = {};
console.log(typeof obj); // 輸出 "object"
console.log(obj instanceof Object); // 輸出 true
console.log(Object.prototype.toString.call(obj)); // 輸出 "[object Object]"

var fn = function(){};
console.log(typeof fn); // 輸出 "function"
console.log(fn instanceof Function); // 輸出 true
console.log(Object.prototype.toString.call(fn)); // 輸出 "[object Function]"

六、js檢測數據類型的方法有哪些

JS中檢測數據類型的方法有很多種,如上文所述,最常用的是typeof、instanceof、和Object.prototype.toString.call()。

除此之外,還有以下方法:

  • 1.使用constructor方法進行數據類型的判斷
  •     var num = new Number(123);
        console.log(num.constructor === Number); // 輸出 true
        
        var str = new String("hello");
        console.log(str.constructor === String); // 輸出 true
        
        var bool = new Boolean(true);
        console.log(bool.constructor === Boolean); // 輸出 true
        
        var arr = [];
        console.log(arr.constructor === Array); // 輸出 true
        
        var obj = {};
        console.log(obj.constructor === Object); // 輸出 true
        
        var fn = function(){};
        console.log(fn.constructor === Function); // 輸出 true
        
  • 2.使用isPrototypeOf方法進行數據類型的判斷
  •     var num = new Number(123);
        console.log(Number.prototype.isPrototypeOf(num)); // 輸出 true
        
        var str = new String("hello");
        console.log(String.prototype.isPrototypeOf(str)); // 輸出 true
        
        var bool = new Boolean(true);
        console.log(Boolean.prototype.isPrototypeOf(bool)); // 輸出 true
        
        var arr = [];
        console.log(Array.prototype.isPrototypeOf(arr)); // 輸出 true
        
        var obj = {};
        console.log(Object.prototype.isPrototypeOf(obj)); // 輸出 true
        
        var fn = function(){};
        console.log(Function.prototype.isPrototypeOf(fn)); // 輸出 true
        
  • 3.使用Array.isArray方法判斷是否為數組類型
  •     var arr = [];
        console.log(Array.isArray(arr)); // 輸出 true
        
        var obj = {};
        console.log(Array.isArray(obj)); // 輸出 false
        

七、檢測數據類型的四種方式

JS中檢測數據類型的四種方式是:typeof、instanceof、Object.prototype.toString.call()和constructor。

var num = 123;
console.log(typeof num === "number"); // 輸出 true
console.log(num instanceof Number); // 輸出 false
console.log(Object.prototype.toString.call(num)); // 輸出 "[object Number]"
console.log(num.constructor === Number); // 輸出 true

var str = "hello";
console.log(typeof str === "string"); // 輸出 true
console.log(str instanceof String); // 輸出 false
console.log(Object.prototype.toString.call(str)); // 輸出 "[object String]"
console.log(str.constructor === String); // 輸出 true

var bool = true;
console.log(typeof bool === "boolean"); // 輸出 true
console.log(bool instanceof Boolean); // 輸出 false
console.log(Object.prototype.toString.call(bool)); // 輸出 "[object Boolean]"
console.log(bool.constructor === Boolean); // 輸出 true

var arr = [];
console.log(typeof arr === "object"); // 輸出 true
console.log(arr instanceof Array); // 輸出 true
console.log(Object.prototype.toString.call(arr)); // 輸出 "[object Array]"
console.log(arr.constructor === Array); // 輸出 true

var obj = {};
console.log(typeof obj === "object"); // 輸出 true
console.log(obj instanceof Object); // 輸出 true
console.log(Object.prototype.toString.call(obj)); // 輸出 "[object Object]"
console.log(obj.constructor === Object); // 輸出 true

var fn = function(){};
console.log(typeof fn === "function"); // 輸出 true
console.log(fn instanceof Function); // 輸出 true
console.log(Object.prototype.toString.call(fn)); // 輸出 "[object Function]"
console.log(fn.constructor === Function); // 輸出 true

八、怎樣檢測數據類型

在JS中,我們可以使用多種方式來檢測一個值的數據類型,如 typeof、instanceof、Object.prototype.toString.call()等。

對於基本數據類型,可以使用typeof或者isNaN方法來檢測其數據類型;對於引用類型如數組和對象,可以使用instanceof、Object.prototype.toString.call()或者constructor方法來進行判斷。

原創文章,作者:PTANB,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/371706.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PTANB的頭像PTANB
上一篇 2025-04-23 18:08
下一篇 2025-04-23 18:08

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python 轉換數據類型

    本文將詳細探討Python中轉換數據類型的方法和技巧,幫助大家更好地處理不同類型的數據。 一、數據類型概述 在Python中,常用的數據類型包括字符串、整數、浮點數、列表、元組、字…

    編程 2025-04-29
  • Python數據類型分為哪幾種

    Python作為一門非常靈活的編程語言,有着非常豐富的數據類型。Python的數據類型可以分為數字類型、字符串類型、列表類型、元組類型、字典類型和集合類型六種。 一、數字類型 Py…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • Python數據類型操作題

    本文將從多個方面對Python數據類型操作題進行詳細闡述,並給出相應的代碼示例。 一、列表 列表是Python中的常見數據類型之一,可以存儲各種類型的對象。下面是一些常見的列表操作…

    編程 2025-04-27

發表回復

登錄後才能評論