数据类型检测的几种方式

1.typeof

缺点:对null和Array等类型的检测不是很方便

Js代码    

1 typeof null; //"object"
2 typeof []; //"object" 

2.instanceof

缺点:1.只适用于对象类型

2.只要当前的这个类在实例的原型链上,检测出来的结果都是true

Js代码  

123 instanceof Number; //false
null instanceof null; //TypeError
null instanceof Object; //false
function A(){}
function B(){}
A.prototype=new B();
var aObj=new A();
aObj instanceof B;//true
aObj instanceof A;//true  

3.constructor

注意:在类继承时会出错

Js代码  

function A(){};
function B(){};
A.prototype = new B();
var aObj = new A();
aObj.constructor === B; //true;
aObj.constructor === A; //false; 

4.自定义方法实现(比较通用)

Js代码  

function getType(o){
   return Object.prototype.toString.call(o).slice(8,-1);
}

测试:

Js代码  

1 getType(null); //"Null"
2 getType(undefined); //"Undefined"
3 getType([]); //"Array"
4 getType({}); //"Object"
5 getType(()=>{}); //"Function"
6 getType(document.createElement(‘div‘)); //"HTMLDivElement"
时间: 2024-08-08 11:00:28

数据类型检测的几种方式的相关文章

js学习总结----数据类型检测的四种方式(转载)

1.typeof 用来检测数据类型的运算符 console.log(typeof 12)//Number 使用typeof检测数据类型,首先返回的都是字符串 ,其次字符串中包含了对应的数据类型 例如:"number"."string"."boolean"."undefined"."function"."object" console.log(typeof typeof function(

数据类型检测的四种方式

/*typeof:检测数据类型的运算符 返回的都是一个字符串 类型:number string boolean undefined function object*/ console.log(typeof 12); console.log(typeof "14"); console.log(typeof undefined); console.log(typeof function text(){}); console.log(typeof null);//空对象指针 /*instan

JS中检测数据类型的几种方式及优缺点【转】

1.typeof 用来检测数据类型的运算符 typeof value 返回值首先是一个字符串,其次里面包含了对应的数据类型,例如:"number"."string"."boolean"."undefined"."object"."function" 局限性:1)typeof null ->"object"2)检测的不管是数组还是正则都返回的是"obje

JS中检测数据类型的几种方式及优缺点

1.typeof 用来检测数据类型的运算符 typeof value 返回值首先是一个字符串,其次里面包含了对应的数据类型,例如:"number"."string"."boolean"."undefined"."object"."function" 局限性:1)typeof null ->"object"2)检测的不管是数组还是正则都返回的是"obje

js判断复合数据类型的两种方式(typeof不奏效了)

js判断复合数据类型的两种方式(typeof不奏效了) 博客分类: Web前端-JS语言核心 JavaScript 作者:zccst typeof认为所有的复合数据类型都是"object",没法进一步细分,所以还得用其他方法 先上结论: 1,(arr && typeof(arr) === "object" && arr.constructor === Array) 2,Object.prototype.toString.call(ar

JavaScript数据类型检测

一.JavaScript 数据类型 1.基本数据类型(6种) Undefined Null Boolean Number String Symbol (ES6新增) 2.引用数据类型: Object 二.数据类型检测 1. typeof 可以检测除null 外的基本类型.null 和所有对象的typeof都是"object", 不能用于检测用户自定义类型. 比如Date, RegExp, Array, DOM Element的类型都是"object". var s

原生JS-----论数据类型检测

常见的数据类型检测的方法: 一.最为基础的typeof 二.不可不知的instanceof 三.比instanceof更好的constructor 四.检测值或者表达式的结果是否为NaN 五.易用的jQuery函数isArray,isFunction 六.高大上的原型方法Object.prototype.toString typeof基本数据类型的检测: 语法:typeof  被检测的内容  或者 typeof(要检测的内容) 范例: <script> var num=2; console.l

类与类型 获取类型几种方式!!

说到类型,JavaScript 定义了少量的数据类型: null undefined 布尔值 数字 字符串 函数 和 对象. 假如要区分值得类型,无疑 typeof 首选 .如下 1 typeof 1 2 typeof "string" 3 typeof true 4 typeof null 5 typeof undefined 6 typeof {} 7 typeof /\W/ 8 9 10 11 :1 number 12 :2 string 13 :3 boolean 14 :4

[Android] 数据存储五种方式使用与总结

1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用SharedPreferences存储数据 ② 文件存储数据 ③ SQLite数据库存储数据 ④ 使用ContentProvider存储数据 ⑤ 网络存储数据 Android提供了一种方式来暴露你的数据(甚至是私有数据)给其他应用程序 - ContentProvider.它是一个可选组件,可公开读写你应用程序数