前端 vue js判断数据类型常用的方法 [typeof,instanceof,prototype,constructor,jquery.type(), ===]
会更快更好更快照着大佬的自己打印了一遍,加深一下印象原文链接:js判断数据类型常用的6种方法_Clara_G的博客-CSDN博客_js判断数据类型1.typeof(一般判断基本数据类型用这个方法)js数据类型:JS基础篇1:数据类型(8种)_1363648943的专栏-CSDN博客_js数据类型打印结果:console.log(typeof "helloworld")-------->"st
·
会更快更好更快
照着大佬的自己打印了一遍,加深一下印象
原文链接:js判断数据类型常用的6种方法_Clara_G的博客-CSDN博客_js判断数据类型
1.typeof(一般判断基本数据类型用这个方法)
js数据类型:JS基础篇1:数据类型(8种)_1363648943的专栏-CSDN博客_js数据类型
打印结果:
console.log(typeof "helloworld") -------->"string"
console.log(typeof 123) -------->"number"
console.log(typeof [1, 2, 3]) -------->"object"
console.log(typeof new Function()) -------->"function"
console.log(typeof new Date()) -------->"object"
console.log(typeof new RegExp()) -------->"object"
console.log(typeof Symbol()) -------->"symbol"
console.log(typeof true) -------->"boolean"
console.log(typeof null) -------->"object"
console.log(typeof undefined) -------->"undefined"
console.log(typeof 'undefined') -------->"string"
注意:打印的结果都是以字符串呈现
2.instance of()
console.log([1, 2] instanceof Array) ---->"true"
console.log(new Function() instanceof Function); ---->"true"
console.log(new Date() instanceof Date); ---->"true"
注意:这个方法判定函数我没有理解到,自己去找资料看
3. Object.prototype.toString.call(万金油,哪里都可以用)
console.log(Object.prototype.toString.call("123")) //-------->[object String]
console.log(Object.prototype.toString.call(123)) //-------->[object Number]
console.log(Object.prototype.toString.call(true)) //-------->[object Boolean]
console.log(Object.prototype.toString.call([1, 2, 3])) //-------->[object Array]
console.log(Object.prototype.toString.call(null)) //-------->[object Null]
console.log(Object.prototype.toString.call(undefined)) //-------->[object Undefined]
console.log(Object.prototype.toString.call({ name: 'Hello' })) //-------->[object Object]
console.log(Object.prototype.toString.call(function () { })) //-------->[object Function]
console.log(Object.prototype.toString.call(new Date())) //-------->[object Date]
console.log(Object.prototype.toString.call(/\d/)) //-------->[object RegExp]
console.log(Object.prototype.toString.call(Symbol())) //-------->[object Symbol]
注意:注意区分大小写. toString方法,在Object原型上返回数据格式
4. constructor()
//注意当出现继承的时候,使用constructor会出现问题
function A() {};
function B() {};
A.prototype = new B(); //A继承自B
console.log(A.constructor === B) -------->false
var C = new A();
//现在开始判断C是否跟A的构造器一样
console.log(C.constructor === B) -------->true
console.log(C.constructor === A) -------->false
//解决这种情况,通常是手动调整对象的constructor指向
C.constructor = A; //将自己的类赋值给对象的constructor属性
console.log(C.constructor === A); -------->true
console.log(C.constructor === B); -------->false
注意:null和undefined没有constructor;判断数字时使用(),比如 (123).constructor,如果写成123.constructor会报错,constructor在类继承时会出错,因为Object被覆盖掉了,检测结果就不对了
5. jquery.type(万能法)
console.log(jQuery.type(undefined) === "undefined") -------->true
console.log(jQuery.type() === "undefined"); -------->true
console.log(jQuery.type(window.notDefined) === "undefined") -------->true
console.log(jQuery.type(123) === "number") -------->true
console.log(jQuery.type('123') === "string") -------->true
console.log(jQuery.type([]) === "array") -------->true
console.log(jQuery.type(true) === "boolean") -------->true
console.log(jQuery.type(function(){}) === "function") -------->true
console.log(jQuery.type(new Date()) === "date") -------->true
console.log(jQuery.type(/\d/) === "regexp") -------->true
console.log(jQuery.type(new Error()) === "error") -------->true
console.log(jQuery.type({name:'Hello'}) === "object") ------->true
console.log(jQuery.type(Symbol()) === "symbol") ------->true
------->其余对象类型一般返回object
注意:在使用时,一定要引入jquery文件,不然会报错,jQuery is not defined
5. 严格运算符===
通常===出现在我们的条件判断中,比如判断一个变量是否为空
更多推荐
已为社区贡献2条内容
所有评论(0)