js学习:js数据类型及判断(1)

js数据类型为:null,undefined,boolean,number,string,symbol,object

根据复杂程度划分为:

(一)基本类型:null,undefined,boolean,number,string,symbol

(二)引用类型:object(包括Array和function等)

       我们在判断数据类型时可以使用typeof,但是要注意typeof返回的数据类型分为两类,当所判断的是基本数据类型的时候,返回的值是基本数据类型(除了null,null的返回值是object,但是function的返回值是function),但是当你判断的是引用类型的时候,返回的是object,比如Array会返回object,所以使用typeof无法判断出具体的引用类型,typeof返回值如下表:

                              

当我们想要判断一个元素是否是数组的时候,可以使用如下方法:

(1)isArray():

       isArray() 方法用于判断一个对象是否为数组。如果对象是数组返回 true,否则返回 false。(Value是要检测的值)

                            用法:Array.isArray(Value)

(2)instanceof(也可以用来判断继承关系,但是不可以判断null和undefined,浏览器认为null和undefined不是构造器)

      instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上

                            用法: Value instanceof Array

(3)当没有isArray的时候可以用如下方式:

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

原因: Object.prototype.toString方法会取得对象的一个内部属性[[Class]],然后依据这个属性,返回一个类似于[object Array]的字符串作为结果,call用来改变toString的this指向为待检测的对象,同时可以利用这个方法来检测是否是function

可以参考如下链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray

                              https://www.cnblogs.com/sakura-sakura/p/6678264.html

                              https://blog.csdn.net/zjy_android_blog/article/details/81023177

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值