js中的数据类型

基本数据类型

number: NaN\Infinity\正常数字

string: 正常字符串\模版字符串

boolean: true\false

null: 空 typeof null ==> "object"

undefined: 未定义

symbol: 唯一值

bigInt: 大数字

引用数据类型

object   function  symbol

数据类型判断

  1. typeof 对于基本数据类型判断是没有问题的,但是遇到引用数据类型(如:Array)是不起作用  
typeof {} // object
typeof  [1,2] // object
typeof /\s/ //object
  1. instanceof    判断 new 关键字创建的引用数据类型 不考虑 null undefined(这两个比较特殊)以对象字面量创建的基本数据类型
console.log(arr instanceof Array ); // true
console.log(date instanceof Date ); // true
console.log(fn instanceof Function ); // true
  1. constructor 似乎完全可以应对基本数据类型和引用数据类型 但如果声明了一个构造函数,并且把他的原型指向了 Array 的原型,所以这种情况下,constructor 也显得力不从心
console.log('数据类型判断' -  constructor);
console.log(arr.constructor === Array); //true
console.log(date.constructor === Date); //true
console.log(fn.constructor === Function); //true
  1. Object.prototype.toString.call() 完美的解决方案
Object.prototype.toString.call();
console.log(toString.call(123)); //[object Number]
console.log(toString.call('123')); //[object String]
console.log(toString.call(undefined)); //[object Undefined]
console.log(toString.call(true)); //[object Boolean]
console.log(toString.call({})); //[object Object]
console.log(toString.call([])); //[object Array]
console.log(toString.call(function(){})); //[object Function]
  1. jquery.type()如果对象是undefinednull,则返回相应的“undefined”“null”

  基本数据类型和引用数据类型的区别

存储位置不同:
基本数据类型存储在栈中
引⽤类型的对象存储于堆中
堆栈(内存) 这门语言在内存中的调用和读取

图片

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值