前端基础——js数据类型及判断方法

一、数据类型
  我们通常熟知的数据类型有六种,包括5种基本数据类型(Number, String, Boolean, Undefined, Null)和一种引用数据类型(Object)。ES6又新增了一个基本数据类型Symbol,所以现在应该是七种数据类型。

注:有些地方会把引用类型分为对象(Object)、数组(Array)、函数(Function)三种,还有博客中提到了chrome 67中的新功能BigInt类型,我这里暂时不算进去。

1、Number
数字类型,包括整数和浮点数。

有一个特殊的值NaN,即非数值。js 规定NaN不等于NaN,可以用 isNaN() 来检测是否是非数值型。

2、String
字符串类型,单双引号都行。

3、Boolean
布尔类型,只有两个值,true和false。

4、Undefined
声明了变量,但是没有初始化,则这个变量的类型就是undefined,且其默认初始化值为undefined。

5、Null
null类型的默认值是null,从逻辑角度讲,是表示一个空对象指针。

注:区分undefined和null——当一个变量声明后,未初始化,则该值为undefined;如果这个值是为了保存对象,则修改默认初始化值为null。 所以当检测其类型时,会显示类型为object。

6、Object(Data、Function、Array等)
该类型实例化的对象,是一组数据和功能(函数)的集合。

实例化对象的过程有两种,一种是通过new操作符,一种是通过对象字面量表示法。

Array()、Date()、function()类型,都是从object继承的。

7、Symbol(ES6 新增)
Symbol 类型本质上是一种唯一标识符,可用作对象的唯一属性名。

唯一性
Symbol 类型的对象永远不相等,即使是用同一个变量生成的值也不相等。
在这里插入图片描述
图片来源:网页游戏
隐藏性
for···in,object.keys() 不能访问,可以用专门针对Symbol的方法来获取。
在这里插入图片描述

二、判断方法
1、typeof
typeof可以区分一部分数据类型,结果如下:

typeof   123   //Number

typeof   'abc'  //String

typeof    true       //Boolean

typeof    undefined   //Undefined

typeof  Symbol()     //Symbol

typeof    null        //Object

typeof    { }           //Object

typeof    [ ]           //Object

typeof    console.log()       //Function

2、判断null、object和array
从上面的结果可以看出,用typeof检测 null、数组、对象的结果都是Object,所以需要用其他方法区分他们的类型。

判断null
  可以用===null来判断。

判断object和array
① isArray

Array.isArray([])  //true
Array.isArray({})  //false

② instanceof

[] instanceof Array   //true
{} instanceof Array   //false

③ constructor

{}.constructor    //返回object
[].constructor    //返回Array

④ Object.prototype.toString.call

Object.prototype.toString.call([])   //["object Array"]
Object.prototype.toString.call({})   //["object Object"]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值