JavaScript基础-ECMAScript

ECMAScript(es):负责翻译,为js的核心,解释器。

一、JS数据类型

5种基本数据类型:Undefined、Null、Boolean、Number、String,Symbol(es6新增)
1种复杂类型:object
5种引用类型:Array,Object,Function,Date,RegExp
3种基本包装类型:Boolean,Number,String
2种单体内置对象:Global,Math

1、四种方式判断数据类型 

typeof

const a = ""
console.log(typeof(a)) => String

const b = 1
console.log(typeof(b)) => Number

const c
console.log(typeof(c)) =>Undefined

const d = []
console.log(typeof(d)) => Object

const e = {}
console.log(typeof(e)) =>Object

const f = null
console.log(typeof(f)) =>Object  //null 作为尚未创建的对象




instanceof

这种方式只适合判断object类型

const arr = [] 
console.log(arr instanceof Array)=> true

console.log(null instanceof Object) ---> false

console.log([function] instanceof Object | Function)  --> true

Object.prototype.toString.call()   

这种方式可以将全部的数据类型检测出来  推荐使用。因为toString是Object的原型方法, 而 Array Function 等都是Object的实例。都重写了toString 方法。返回的是类型的字符串

Object.prototype.toString.call(null)  =>  [object Null]

Object.prototype.toString.call(Math) => [object Math]

Object.prototype.toString.call(function(){}) => [object Function]

Objdec.prototype.toString.call(new Date)  => [object Date]

Object.prototype.toString.call(Symbol())  => [object Symbol]

Object.prototupe.toString.call(undefined)  => [object Undefined]

Object.prototype.toString.call(123)  => [object Number]

Object.prototype.toString.call(true) => [object Boolean]

Object.prototype.toString.call('123') => [object String]

Object.prototype.toString.call({})    => [object Object]

Object.prototype.toString.call([])    => [object Array]

constructor 

判断对象的构造函数。

1.  null 是js 原型链的起点,没有构造函数

2. undefined 没有构造函数

3. [].constructor  === Array  ---> true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值