js中的数据类型

数据类型:分为基本数据类型和引用数据类型

基本数据类型: string、number、boolean 、null、undefined、symbol、bigInt

引用数据类型: Object、function、Array、Date 、RegExp

数据类型的判断: typeof、instanceof、constructor 、Object.prototype.toString.call()

typeof

typeof 一般用来判断基本数据类型 不能判断引用数据类型 会之间返回小写的字符串数据类型

console.log(typeof '5') //string
console.log(typeof 5) //number
console.log(typeof true) //boolean
console.log(typeof undefined) //undefined
console.log(typeof []) //object
console.log(typeof {}} //object
console.log(typeof function(){}) //function

let num=123
console.log(typeof num) //number

instanceof

instanceof:用来判断一个对象是否是对象类型的实例, instanceof判断的是原型,基本数据类型不能判断,返回true/false

//数组:
//要判断的变量   instanceof  [Array/Object/Function]
var a=[1,2,3]
console.log(a instanceof Array) //true
//对象
var obj ={
name:'haha'
}
console.log(obj instanceof Object)  //true

constructor

constructor:constructor是prototype对象上的属性,指向构造函数。constructor无法判断null和undefined

//要判断的数据类型.constructor === Array
var arr=[1,2,3]
console.log(arr.constructor===Array)  //true
function Fn(a,b){
	this.a=a
	this.b=b
}
var result=new Fn('haha',16) 
console.log(result.constructor==Fn) //true
console.log(result.constructor==Object) //false

Object.prototype.toString.call()

Object.prototype.toString.call():它可以检测到任何类型,返回的是构造函数的类型’[object 数据类型]’,可以实现所有的类型检测

console.log(Object.prototype.toString.call('123'))//[object String]
//数组
       var arr=[1,2,3]
       console.log(Object.prototype.toString.call(arr));  //[object Array]
//函数
function fn(){}
console.log(Object.prototype.toString.call(fn) //[object Function]

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

堆内存:用来存放数据
栈内存:用来执行数据
区别:
基本数据类型是原始值,直接存储在栈内存中,
引用数据类型,它的值是在堆内存中开辟了一块新的内存空间,我们通过变量来复制一个引用数据类型的时候其实只是把这个开辟的内存空间的地址进行了一个赋值。

基本数据类型和引用数据类型的图

var a={
	n:1
}
var b=a
a.x=a={
	n:2
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值