JavaScript的类型
JavaScript 是一门弱类型的编程语言,其一共有6中数据类型
1.Number 数值类型
2.String 字符串类型
3.Boolean 布尔类型
4.undefined 未定义类型
5.null 空值
6.object 对象类型
在JavaScript 中的比较操作
在JavaScript中存在两种比较操作分别是
==
和===
两个的区别在于===
不会做默认的类型转换,会比较两个值的类型是否一致,当然对于object类型的值==
和===
是一样的,两者都是比较object类型的引用是否为同一个对象 (Array也是obejct类型)
References : Stack Overflow 回答
如何判断JavaScript的数据类型
JavaScript 提供了typeof 函数来返回数据类型,但是typeof操作符的返回值有时候是不准确的.
例如typeof new Number(1) # object
针对上面的情况,我们可以使用
toString()函数来返回数据的真正对象
var mytypeof = function (o) {
var s = Object.prototype.toString.call(o);
return s.match(/\[object (.*?)\]/)[1].toLowerCase();
}
mytypeof({}); // "object"
mytypeof([]); // "array"
mytypeof(5); // "number"
mytypeof(null); // "null"
mytypeof(); // "undefined"
mytypeof(/abcd/); // "regex"
mytypeof(new Date()); // "date"
但是JavaScript中还有两个比较特殊的类型 NaN, Array,针对这两个类型我们可以使用
isNaN
和Array.isArray
来检测其类型
PS:typeof 操作符一般可以用来判断某个值或函数是否存在
JavaScript 是面向对象的编程语言,JavaScript是通过原型链做继承的,当我们想要检测自定义的对象,或者对象的继承关系的时候.
这个时候应该使用instanceof
操作符(instanceof 只能用于检测object类型的值).这个函数是通过构造函数的prototype来检测对象的类型的
function Super(age){
this.name = "lsh";
this.age = age;
}
Super.prototype.sayName = function (){
console.log(this.name);
}
function Sub(){
Super.call(this,99);
}
Sub.prototype = new Super;
Sub.prototype.constructor = Sub;
Sub.prototype.hello = function (){
console.log(this.age);
}
var s = new Super();
var n = new Sub();
console.log(n instanceof Sub);
console.log(n instanceof Super);
网友评论