js中的typeof和instanceof的用法和区别(附类型判断方法)_暮志未晚Webgl的博客-程序员秘密

技术标签: 类型判断  判断类型  javascript  typeof  instanceof  

typeof

作用:用于判断一个一个表达式,(对象或者原始值),返回一个字符串。

返回的可能的值(摘自mdn)

类型 结果
Undefined "undefined"
Null "object" (历史遗留问题)
Boolean "boolean"
Number "number"
String "string"
Symbol (ECMAScript 6 新增) "symbol"
宿主对象(由JS环境提供) Implementation-dependent
函数对象 ( [[Call]] 在ECMA-262条款中实现了) "function"
任何其他对象 "object"

instanceof

instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

使用规则:

object instanceof constructor

要求前面是个对象,后面是一个构造函数。而且返回的是布尔型的,不是true就是false。

常用使用:

由于typeof只能判断类型,所以,数组和对象返回的都是object,这时就需要使用instanceof来判断是否是

[] instanceof Array //true


所以,我们可以通过这两种方式封装一个函数专门进行类型判断:

    function getDataType(obj) {
        if(obj === null){
            return "null";
        }else if(typeof obj === "object"){
            if(obj instanceof Array){
                return "array";
            }else{
                return "object";
            }
        }else{
            return typeof obj;
        }
    }
以下是对每个类型的测试
    console.log(getDataType(111)); //number
    console.log(getDataType("fasd"));//string
    console.log(getDataType(true));//boolean
    console.log(getDataType(function () { }));//function
    console.log(getDataType([]));//array
    console.log(getDataType({}));//object
    console.log(getDataType(null));//null
    console.log(getDataType(undefined));//undefined
    console.log(getDataType(/\n/));//object
    var a;
    console.log(getDataType(a));//undefined 如果传入没有声明的变量会直接报错

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_30100043/article/details/76618490

智能推荐

Docker安装minio_壹碗茶的博客-程序员秘密

文章目录Docker安装minio一、查看docker镜像有无minio二、docker拉取minio的镜像四、在浏览器中输入ip+端口即可访问Docker安装minio一、查看docker镜像有无miniodocker images二、docker拉取minio的镜像docker pull minio/minio:RELEASE.2020-10-28T08-16-50Z-37-ged264449b此时再查看docker镜像,就有了minio镜像## 三、编辑下面命令设置minio登录

来康康哩哩分析的女孩子适合做程序员吗?_哩哩学编程的博客-程序员秘密

女生适合做程序员吗?这是IT行业常常讨论的话题。以哩哩的观点,在这个平等自由的时代,女生绝对是非常适合做程序员!在IT领域,身为女生存在着诸多的优势:1、感性与理性思维并重图中这个沉静美丽的女子名叫Augusta Ada King。她是一位数学家,也是穿孔机程序的创始人,曾经建立了循环和子程序概念,为计算程序拟定算法,被誉为世界上第一位程序员。有人说女生不善于理性思维,这是没有任何科学依据的。女生在智力上完全不逊于男生,并且心思更为缜密,更善于调节自我状态,从事编程这一科学领域是完全不会

uniApp打包安卓应用详细步骤_恰好有你的博客-程序员秘密

一、打包安卓应用1.使用uniApp新建的一个混合运用2.点击发行-原生App打包-打包Android(apk包)3.这里我们可以使用公共的一个测试证书或者使用自有的一个证书,楼主在这里就讲一下自有证书的申请及使用,因为公共的点击一下就可以打包了4.Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。需确保电脑上安装了JRE(JRE环境),我们将使用JRE自带的创建和管理数字证书的工具Keytool,并使用keytool命令生成签名证书。

Ajax+PHP简单数据交互模拟数据查询实例代码【员工信息查询】_php ajax查询代码_程序小小生的博客-程序员秘密

Ajax+PHP简单数据交互:PHP是一种创建动态交互性站点的服务器端脚本语言,优势:PHP脚本语言应用广泛,开源免费,最重要的是入门简单,容易掌握。PHP能够接收表单数据、添加、删除、修改数据库中的数据1、server.php(接收查询和输出数据到前台)如下:<?php//设置页面内容是html编码格式是utf-8//header("Content-Type: text/p...

C语言程序设计--19春 形考任务1,南开19春学期(1709、1803、1809、1903)《C语言程序设计》在线作业-1辅导资料.docx..._weixin_39880301的博客-程序员秘密

南开19春学期(1709、1803、1809、1903)《C语言程序设计》在线作业-1辅导资料.docx南开19春学期(1709、1803、1809、1903)C语言程序设计在线作业-11、D 2、D 3、B 4、C 5、C 一、单选题共40题,80分1、以下对一维整型数组 a 的正确说明是 Aint a10 ;Bint n10,an;Cint n;Ddefine SIZE 10 int aSIZ...

随便推点

MySQL日志(log_error、general_log、slow_query_log、log_bin、InnoDB 事务日志(redo log和undo log))_途径日暮不赏丶的博客-程序员秘密

文章目录一、MySQL日志缓存二、MySQL错误日志(log_error)三、MySQL普通查询日志(general_log)四、MySQL慢查询日志(slow_query_log)五、二进制日志(log_bin)(一)开启二进制日志(二)二进制日志格式(三)日志读取(四)二进制日志的清理六、InnoDB 事务日志重做日志(redo log)回滚日志(undo log)Checkpoint机制脏页(dirty page)日志序列号(log sequence number)七、日志文件备份日志是 mysql

[Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍_weixin_33827731的博客-程序员秘密

前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作。但是,更为广泛使用的Python爬虫框架是——Scrapy爬虫。这是一篇在Windows系统下介绍 Scrapy爬虫安装及入门介绍的相关文章。...

【Books系列】2020年读书——《异类》读书笔记_飞翔的鲲的博客-程序员秘密

DATE:2020.11.15这是一本关于成功启示的书,对于一个人而言,到底取得怎样的成就才算是成功?在世人的眼中,有钱有权有声望或许就算是成功吧。人生在世,大多数人无非都是为了这三点穷尽一生。当然也有一些更加有意义的事情值得我们去探索,比如科学事业,航天事业,小家等等。或许,在每个人的眼中,成功的标准和界定都是不一样的。《异类》这本书带我们走进了成功人士的世界,意外揭开了一连串令人惊异的统计结果:英超联赛大多数球员都在9月至11月出生;比尔盖茨和史蒂夫乔布斯都生于1955年。中国人的数学优势得益于

学生信息管理系统:SSM框架实现学生信息的增删改查_eclipse ssm简单学生管理系统_一下子就醒了的博客-程序员秘密

一、项目概述:该项目主要实现对学生信息的管理,通过学生信息管理系统能够进行学生信息的增加、查看,查询,删除等功能,实现学生管理工作的系统化和自动化。该项目已经上传到github了,想看源码请移步:https://github.com/LazyTraveller/Student-Information-Management-System (内含数据库脚本)百度网盘:链接:https:...

HQL笔试题整理_hql 笔试题_灰哀之雪的博客-程序员秘密

HQL笔试题1. 求:找出所有科目成绩都大于某一学科平均成绩的学生uid,subject_id,score1001 01 901001 02 901001 03 901002 01 851002 02 851002 03 701003 01 701003 02 701003 03 85-- 创建表语句create table score(uid string,subject_id string,score int)row format delimited fields

shopex使用经验_chaimyu的博客-程序员秘密

shopex使用经验Chaim 2011.1.24模板目录themes模板目录borders模板各部分边框block头/脚信息images图像文件/CSS文件都在此中,borders和block中的html格式都在这些文件中指定修改图像列表中的价格和展示信息模板管理->gallery->type

推荐文章

热门文章

相关标签