打印Object的prototype属性:

有一个toString方法,不同于一般变量的toString方法,当Object的toString方法执行时:

1.获取当前对象的[[Class]]属性的值;

2.返回 "[object " + 第一步得出的值+ "]"格式的字符串,例如[object Array],

解析:

[[Class]]是一种内部属性,所有的对象(原生对象和宿生对象)都拥有该属性,描述该对象的类型

(值得注意的是[[Class]]的值只能是Object, Number, String, Date等javaScript内置的数据类型,不能用于构造函数产生的对象)

于是,再借用call方法: 调用toString方法,并用另一个对象替换当前对象Object。

console.log(Object.prototype.toString.call(11)); //[object Number]
console.log(Object.prototype.toString.call("12")); //[object String]
console.log(Object.prototype.toString.call(true)); //[object Boolean]
console.log(Object.prototype.toString.call({})); //[object Object]
console.log(Object.prototype.toString.call(undefined)); //[object Undefined]
console.log(Object.prototype.toString.call(new Date)); //[object Date]
console.log(Object.prototype.toString.call(null)); //[object Null]
console.log(Object.prototype.toString.call([1,2,3])); //[object Array]
console.log(Object.prototype.toString.call(function(){})); //[object Function]

这个方法是多用于判断变量是数组/函数的情况

还有一种更简单的判断数组的方法:Array.isArray(arrayObj),当arrayObj为数组时,返回true,否则,返回false,但这种方法有兼容性问题,因此,最好的解决方法是:

if(typeof Array.isArray === "undefined"){Array.isArray = function(arg){return Object.prototype.toString.call(arg) === "[object Array]";};
}

此方法对任何类型的变量都管用,包括null、undefined。。。

转载于:https://www.cnblogs.com/yanze/p/6354364.html

判断对象是否为数组/函数相关推荐

  1. js判断对象是否是数组的几种方式

    js判断对象是否是数组的几种方式 1.通过instanceof判断 instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值. let a ...

  2. html 判断是否在 数组,javascript如何判断对象是否是数组?

    JavaScript变量能够保存多种数据类型:数值.字符串值.数组.对象等等,有时我们需要知道变量中所存储的数据类型,我们该如何判断数据类型呢? 就算变量定义的是数组格式,typeof返回的数据类型还 ...

  3. isArray()判断对象是否为数组

    定义和用法 isArray() 方法用于判断一个对象是否为数组. 如果对象是数组返回 true,否则返回 false. 语法 Array.isArray(obj) 参数 参数 描述 obj 必需,要判 ...

  4. java判断对象是否为数组 并且取得数组的值 --- 用instanceof或则isArray() 方法

    今天项目逻辑需要传个数组过去..然后调用一个通用方法.但是这个方法的参数是 object  如果改变这个参数类型 其他模块调用这个方法就会出现问题 最后解决办法是在dao层加入了一个判断 这是dao层 ...

  5. java判断是否是数组_java判断对象是否是数组

    1.从构造函数入手,obj instanceof Array typeof 和 instanceof 都可以用来判断变量,typeof方法返回一个字符串,来表示数据的类型; 但是typeof来判断数据 ...

  6. 原生Array.isArray()判断对象是否为数组

    Array.isArray()函数:用来判断一个对象是否为数组,如果是,则返回true,否则返回false. 语法:Array.isArray(obj) Array.isArray([1]);//tr ...

  7. 判断对象是否是数组instanceof和isArray

    instanceof问题在于,它假定了单一的全局执行环境.如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数.如果你从一个框架向另一个框架传 ...

  8. 创建健壮的isArray()函数(JavaScript中判断对象类型的种种方法)

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  9. java判断是否是数组_Java判断对象类型是否为数组

    判断对象是否为数组: public static void main(String[] args) { String[] a = ["1","2"]; if(a ...

最新文章

  1. Codeforces Round #527 (Div. 3) 总结 A B C D1 D2 F
  2. Visual C++ 时尚编程百例016(字体)
  3. idea主题颜色Linux,IntelliJ IDEA更换主题样式分享
  4. lintcode :sort letters by case字符大小写排序
  5. complexType
  6. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.4——更新新版本的Gradle...
  7. 百度文档ppt,word文档下载
  8. java语言c语言表情包_c语言表情包 - c语言微信表情包 - c语言QQ表情包 - 发表情 fabiaoqing.com...
  9. 网页登录《记住我》功能实现原理
  10. 电脑开机一直自动重启
  11. 通讯录总结-JAVA GUI- “婉君被通讯录吓晕”-第一版
  12. Cb Vc 经典大讨论(很长的一篇文章!)?
  13. 单车---------Eason
  14. 棋牌游戏支付接口H5支付宝微信
  15. SQLZOO刷题笔记
  16. ProxmoxVE折腾记录(一)--安装
  17. Python-Snappy的安装 以及报错解决
  18. 爬取当当网的图书信息之导读
  19. 计算机视觉OpenCV(五):图像金字塔与轮廓检测
  20. 将ibd恢复进数据库

热门文章

  1. 洛谷P1080 国王游戏
  2. 织梦标签把","逗号改成空格技巧
  3. cocos2d-x for wp8 设置横竖屏
  4. .Net开发笔记(十四) 基于“泵”的UDP通信(接上篇)
  5. 让数据库操作变成非阻塞的
  6. 传递function_Excel VBA解读(132): 调用Function过程的4种方式
  7. Spark源码分析之BlockManagerMaster
  8. 贵州农信凭证打印小程序_我的医保凭证小程序入口
  9. 视觉检测无脊椎机器人或vipir_深入浅出人工智能前沿技术—机器视觉检测,看清人类智慧工业...
  10. 计算机一级考试复习资料,全国计算机一级考试复习资料