javascript中typeof操作符和constucor属性检测
作者:bea
*#type.js 代码如下: function Person(name, age) { this.name = name; this.age = age; } var d = {an: 'object'}; var a = ['apple', 'banana']; var f = function() {}; var s = 'David'; var n = 33; var b = true; var o = new Object(); var
*#type.js
代码如下:
function Person(name, age) {
this.name = name;
this.age = age;
}
var d = {an: 'object'};
var a = ['apple', 'banana'];
var f = function() {};
var s = 'David';
var n = 33;
var b = true;
var o = new Object();
var person = new Person('Mark', 22);
console.log(typeof(d) + ': ' + d.constructor);
console.log(typeof(a) + ': ' + a.constructor);
console.log(typeof(f) + ': ' + f.constructor);
console.log(typeof(s) + ': ' + s.constructor);
console.log(typeof(n) + ': ' + n.constructor);
console.log(typeof(b) + ': ' + b.constructor);
console.log(typeof(o) + ': ' + o.constructor);
console.log(typeof(person) + ': ' + person.constructor);
运行$node type.js得
代码如下:
object: function Object() { [native code] }
object: function Array() { [native code] }
function: function Function() { [native code] }
string: function String() { [native code] }
number: function Number() { [native code] }
boolean: function Boolean() { [native code] }
object: function Object() { [native code] }
object: function Person() { [native code] }
可见, 使用typeof操作符和constucor属性检测对象类型返回值是存在差异的.
如果变量是数组, typeof操作符返回object, constructor属性返回Array; 如果变量是构造函数对象, typeof操作符返回object, constructor属性返回该构造函数 每个变量都有其construcor属性, 这个属性不单单提供了这个是否对象, 还提供了这个对象是什么类型的对象. 总之, constructor属性保存了一个指向对象的构造函数, 无论它是自定义的还是原生类型的对象.
有一点需要注意的是, 不同的浏览器对typeof操作符检测正则表达式会有所不同,IE和Firefox会返回'object'.
好了,今天内容就先到这里了,小伙伴们如有疑问,就在下方留言吧。
有用 | 无用
代码如下:
function Person(name, age) {
this.name = name;
this.age = age;
}
var d = {an: 'object'};
var a = ['apple', 'banana'];
var f = function() {};
var s = 'David';
var n = 33;
var b = true;
var o = new Object();
var person = new Person('Mark', 22);
console.log(typeof(d) + ': ' + d.constructor);
console.log(typeof(a) + ': ' + a.constructor);
console.log(typeof(f) + ': ' + f.constructor);
console.log(typeof(s) + ': ' + s.constructor);
console.log(typeof(n) + ': ' + n.constructor);
console.log(typeof(b) + ': ' + b.constructor);
console.log(typeof(o) + ': ' + o.constructor);
console.log(typeof(person) + ': ' + person.constructor);
运行$node type.js得
代码如下:
object: function Object() { [native code] }
object: function Array() { [native code] }
function: function Function() { [native code] }
string: function String() { [native code] }
number: function Number() { [native code] }
boolean: function Boolean() { [native code] }
object: function Object() { [native code] }
object: function Person() { [native code] }
可见, 使用typeof操作符和constucor属性检测对象类型返回值是存在差异的.
如果变量是数组, typeof操作符返回object, constructor属性返回Array; 如果变量是构造函数对象, typeof操作符返回object, constructor属性返回该构造函数 每个变量都有其construcor属性, 这个属性不单单提供了这个是否对象, 还提供了这个对象是什么类型的对象. 总之, constructor属性保存了一个指向对象的构造函数, 无论它是自定义的还是原生类型的对象.
有一点需要注意的是, 不同的浏览器对typeof操作符检测正则表达式会有所不同,IE和Firefox会返回'object'.
好了,今天内容就先到这里了,小伙伴们如有疑问,就在下方留言吧。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JS实现图片放大镜效果的方法
- 浅谈javascript中的instanceof和typeof
- js实现有时间限制消失的图片方法
- js用拖动滑块来控制图片大小的方法
- javascript中局部变量和全局变量的区别详解
- 对比分析AngularJS中的$http.post与jQuery.post的区别
- JavaScript中Function详解
- JS实现图片产生波纹一样flash效果的方法
- js实现鼠标触发图片抖动效果的方法
- javascript实现当前页导航激活的方法
- jquery 根据name名获取元素的value值
- jQuery使用元素属性attr赋值详解
- jquery实现公告翻滚效果
- JS+CSS实现淡入式焦点图片幻灯切换效果的方法
- JS+CSS实现模仿浏览器网页字符查找功能的方法
- js+CSS实现弹出居中背景半透明div层的方法
- js使用post 方式打开新窗口
- JS仿Windows开机启动Loading进度条的方法
- JS实现跟随鼠标闪烁转动色块的方法