Object.prototype.toString.call() 区分对象类型

在JavaScript中数据类型分为:1.基本类型,2.引用类型

  1. 基本类型:Undefined,Boolean,String,Number,Null
  2. 引用类型:Object (Array,Date,RegExp,Function)

var a = 'hello world';
var b = [];
var c = function(){};
  • 1
  • 2
  • 3

我们用不同的判断类型的方法来判断上面三个变量的类型;(编译工具webStorm,浏览器Chrome) 
1.首先:typeof( )

1.console.log(typeof (a)+';'+typeof (b)+';'+typeof (c))
输出:string;object;function
  • 1
  • 2

2.其次:instanceof

console.log(a instanceof Object)    //false
console.log(b instanceof Object) //true
console.log(c instanceof Object) //true
console.log(a instanceof Array) //false
console.log(b instanceof Array) //true
console.log(c instanceof Array) //false
console.log(a instanceof Function) //false
console.log(b instanceof Function) //false
console.log(c instanceof Function) //true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

从上面两个例题可以看出,typeof(),insctanceof,这两种方法都只能对简单的变量进行判断,如果比较复杂的变量判断时就会有误,不精确; 
下面我们介绍Object.prototype.toString.call()方法; 
3.Object.prototype.toString.call()

console.log(Object.prototype.toString.call(a))
console.log(Object.prototype.toString.call(b))
console.log(Object.prototype.toString.call(c))
输出:
[object String]
[object Array]
[object Function]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以写个方法传值进入判断:

function isType(obj,type){
if(obj != ''){
return Object.prototype.toString.call(obj)==='[object '+type+']'
}else{
alert('对象不能为空')
}
}
console.log(isType('hello world','String')) //true

JS区分对象类型的更多相关文章

  1. js验证对象类型

    js验证对象类型 1. Object.prototype.toString.call() 这是最佳解决方案,可以用作通用方式处理.各种类型的判断依据类似于[object Object],替换的是后边的 ...

  2. Object.prototype.toString.call() 区分对象类型

    判断一个对象的类型: /** * 判断对象是否为数组 * @param {Object} source 待判断的对象 * @return {Boolean} true|false */ Object. ...

  3. JS判断对象类型

    对于确定JS内置对象类型,JS提供了typeof运算符,该运算符得到的结果为以下6种:number,boolean,string,function,object,undefined.不过对绝大多数对象 ...

  4. Object.prototype.toString.call() 区分对象类型(判断对象类型)

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...

  5. javascript 区分对象类型

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...

  6. js 判断对象类型

    在企业级的开发中,我们常用 typeof 来判断企业 对象类型:但是 typeof 不能判断 Array 和 null 这里我们使用一个 原型上的 toString方法:请看一下代码: <scr ...

  7. js接收对象类型数组的服务端、浏览器端实现

    1.服务端 JSONArray jsonArr = JSONUtil.generateObjList(objList); public static generateObjList(List<O ...

  8. JS 之Blob 对象类型

    原文 http://blog.csdn.net/oscar999/article/details/36373183 什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. ...

  9. js 的强制 类型 转换cast, 伪对象?

    拼音输入法简单快捷, 但是重码多, 所以要看清了再选择, 不然会影响输入正确性和 心情的! js的类型 隐式 转换? 是指, 根据 表达式的操作符号 如if(), + , && , j ...

随机推荐

  1. python epoll方式tcp连接回发消息

    # -*- coding:utf-8 -*- import socket import select class testserver(): def __init__(self): self.serv ...

  2. Visual studio 2017添加引用时报错未能正确加载ReferenceManagerPackage包的解决方法

    vs2017添加引用时报错未能正确加载“ReferenceManagerPackage”包. - AusonSir - 博客园https://www.cnblogs.com/-bao/p/674941 ...

  3. 简单易懂的解释c#的abstract和virtual的用法和区别

    先来看abstract方法,顾名思义,abstract方法就是抽象方法. 1.抽象方法就是没有实现的,必须是形如: public abstract void Init(); 2.拥有抽象方法的类必须修 ...

  4. 彻底搞懂 C# 的 async/await

    前言 Talk is cheap, Show you the code first! private void button1_Click(object sender, EventArgs e) { ...

  5. springboot idea 代码更改自己编译设置

    第一步:在pom.xml文件中添加springboot 编译依赖 <dependency> <groupId>org.springframework.boot</grou ...

  6. Git初始配置和基本使用

    初次运行Git前的配置 本文是在安裝完git以后首先应做到一些配置,安装教程可以参考廖雪峰git教程 用户信息 当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址. 这样做很重要,因为每 ...

  7. Django—Form、ModelForm

    一.Form form.py from django import forms from django.core.exceptions import ValidationError from djan ...

  8. java爬虫实现爬取百度风云榜Top10

    最近在项目中遇到了java和python爬虫进行程序调用和接口对接的问题, 刚开始也是调试了好久才得出点门道. 而后,自己也发现了爬虫的好玩之处,边想着用java来写个爬虫玩玩,虽说是个不起眼的dem ...

  9. J2EE_Maven_POM文件配置的详解(转)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  10. bootstrap学习(二)页面

    响应式图片: //当图片大的时候,逐渐缩小浏览器大小,图片会显示为自适应大小 ,img-responsive <div class="container"> <d ...