js基本概念之检测数据类型typeof与instanceof

typeof

总结:用来检测一个变量是不是基本数据类型,不适用于null和引用类型(引用类型一律返回object), typeof 操作符是确定一个变量是字符串、数值、布尔值,还是 undefined 的最佳工具。

返回值:undefined、string、boolean、number、object、function

规则:

var s = "Nicholas";
var b = true;
var i = 22;
var u;
var n = null;
var o = new Object();
var methond = function(){
    console.log("this is a function");
}

alert(typeof s);           // "string"
alert(typeof i);           // "number"
alert(typeof b);           // "boolean"
alert(typeof u);           // "undefined"
alert(typeof n);           // "object"
alert(typeof o);           // "object"
alert(typeof methond);     // "function"
alert(typeof NaN);         // "number"

instanceof

总结:检测一个对象是不是引用类型的对象,不适用于检测  值为基本类型的变量

返回值:true、false

规则:

  所有引用类型的值都是 Object 的实例

var arr = [];
var obj = {};
var date = new Date();
var reg = new RegExp();
var fun = function(){}

arr instanceof Array;            // 返回 true
arr instanceof Object;           // 返回 true
obj instanceof Object;           // 返回 true
date instanceof Date;            // 返回 true
date instanceof Object;          // 返回 true
reg instanceof Object;           // 返回 true
reg instanceof RegExp;           // 返回 true
fun instanceof Object;           // 返回 true
fun instanceof Function;         // 返回 true

  因为基本类型不是对象,使用 instanceof 操作符检测基本类型的值,则该操作符始终会返回 false。

var s = "Nicholas";
var b = true;
var i = 22;
var u;
var n = null;
var o = new Object();
var methond = function(){
    console.log("this is a function");
}

s instanceof String;             // 返回 false
b instanceof Boolean;            // 返回 false
i instanceof Number;             // 返回 false
u instanceof undefined;          // 语法错误
n instanceof Object;             // 返回 false
o instanceof Object;             // 返回 true
methond instanceof Object;       // 返回 true

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值