js 判断数据类型

var a = {};
var b = [];
var c = null;
var d = ‘‘;
var e = undefined;

var aa = (typeof a === ‘object‘);
var bb = (typeof b === ‘object‘);
var cc = (typeof c === ‘object‘);
var dd = (typeof d === ‘object‘);
var ee = (typeof e === ‘object‘)

var f = [aa,bb,cc,dd,ee];

console.log(f);

>: [true, true, true, false, false]

var aa = (typeof a === ‘object‘); 
var bb = (typeof b === ‘object‘); 
var cc = (typeof c === ‘object‘); 
var dd = (typeof d === ‘string‘); 
var ee = (typeof e === ‘undefined‘)

var f = [aa,bb,cc,dd,ee];

console.log(f);

>: [true, true, true, true, true]

推论:‘’及undefined的typeof不是Object,而是string及undefined类型

var aa = a instanceof Object;
var bb = b instanceof Object;
var cc = c instanceof Object;
var dd = d instanceof Object;
var ee = e instanceof Object;

var f = [aa,bb,cc,dd,ee];

console.log(f);

>: [true, true, false, false, false]

var aa = a instanceof Object; 
var bb = b instanceof Object; 
var cc = c instanceof Object; 
var dd = d instanceof Object; 
var ee = e instanceof Object; 

var f = [aa,bb,cc,dd,ee];

console.log(f);

>: [true, true, false, false, false]

console.log(c instanceof null)
>: 抛出错误

console.log(d instanceof String)

>: false

console.log(new String(‘123‘) instanceof String)

>: true

console.log(e instanceof undefined)

>: false

推论:instanceof 仅用于判断对象是否属于指定对象的实例,null不是任何对象的实例;简单数据类型如bool、number、string、undefined均不是其他对象的实例,因此不能使用instanceof运算符判断,但是,显式的使用基本包装类型创建的对象则可以使用instanceof判断出具体类型;

var aa = a.constructor.name;
var bb = b.constructor.name;
var cc = c.constructor.namet;
var dd = d.constructor.name;
var ee = e .constructor.name;
var f = [aa,bb,cc,dd,ee];
console.log(f);

>:["Object", "Array", 错误, "String", 错误]

错误都是因为null和undefined并无构造子引起的;

时间: 2024-08-01 22:46:04

js 判断数据类型的相关文章

[转]js判断数据类型的四种方法

原文地址:https://www.cnblogs.com/crackedlove/p/10331317.html 1.typeof typeof是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型.返回的结果用该类型的字符串(全小写字母)形式表示,包括number,string,boolean,undefined,object,function,symbol等. typeof ""; //string typeof 1; //number typeof false; //b

JS判断数据类型方法

var a = "iamstring.";var b = 222;var c= [1,2,3];var d = new Date();var e = function(){alert(111);};var f = function(){this.name="22";}; **1.最常见的判断方法:typeof **alert(typeof a) ------------> stringalert(typeof b) ------------> numbe

Jquery / js 判断数据类型方法

当想要判断文本框中的值是否为自己想要的类型时,可以通过一些方法作出判断,这里对于光标离开文本框时判断文本框中输入的是否是数值类型,如果不是,做出提示 $("#WORKYEARS").blur(function () {//光标离开事件 var WORKYEARS = $.trim($("#WORKYEARS").val());//取出文本框的值 if (WORKYEARS != "") { var isok = isNumber(WORKYEAR

js判断数据类型

1 //是否是json类型 2 function isJson(data){ 3 return (typeof data === 'object' && data+'' === '[object Object]'); 4 } 5 //是否是数组 6 function isArray(data){ 7 return data instanceof Array; 8 } 9 //是否是简单类型 10 function isSimple(data){ 11 if(typeof data ===

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

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

js 判断各种数据类型

原文:js 判断各种数据类型 了解js的都知道, 有个typeof  用来判断各种数据类型,有两种写法:typeof   xxx   ,typeof(xxx) 如下实例: typeof   2      输出   number       typeof   null   输出   object typeof   {}    输出   object typeof    []    输出   object typeof   (function(){})   输出  function typeof  

js基本数据类型+判断数据类型方法

摘要:不管是什么类型的,Object.prototype.toString.call();都可以判断出其具体的类型,简单基本类型(String.Number.Boolean.Null.Undefined)不是对象,复杂基本类型都为对象子类型,函数是特殊的对象子类型(可调用对象) 数据类型分为基本类型和引用类型: 基本类型:String.Number.Boolean.Null.Undefined.symbol(ES6) 引用类型:Object.Array.Date.Function.Error.R

js高阶函数--判断数据类型、函数胡柯里化;

一.判断数据类型: 常见的判断有typeof.instanceof. constructor. prototype,先来看typeof: var a = "hello world"; var b = 10; var c = [1, 3, 5]; var d = new Date(); var e = function() {}; console.log(typeof a); // string console.log(typeof b); // number console.log(t

JavaScript判断数据类型总结

最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断网页特效,在此做一个总结吧! 一.JS中的数据类型  1.数值型(Number):包括整数.浮点数. 2.布尔型(Boolean) 3.字符串型(String) 4.对象(Object) 5.数组(Array) 6.空值(Null) 7.未定义(Undefined) 二.判断一个变量的数据类型 1.数值型(number) 比较常用的判断方法是: 1 function isNumbe