JS数据类型

Js有哪些数据类型
Js基本数据类型:String (字符串)、Number (数值)、Boolean (布尔值)、Null (空值)、Undefined (未定义)、Symbol (符号)
Js引用数据类型:Array、 date、 function、regexp 、object
区别:基本数据类型的值是存放栈中
引用数据类型的值是存放堆中
检测数据类型的方法
1.typeof 检测一些基本的数据类型

在这里插入代码片
    console.log(typeof /\d/);//object
	console.log(typeof {});//object
	console.log(typeof []);//object
	console.log(typeof (null));//object
	console.log(typeof 123);//number
	console.log(typeof true);//boolean
	console.log(typeof function () {});//function
	console.log(typeof (undefined));//undefined

2、A instanceof B检测当前实例是否隶属于某各类

	//注意双目运算符 a instanceof b ,判断a的构造器是否为b,返回值为布尔值
    function b(){}
	let a = new b;
	console.log(a instanceof b);//true
	console.log(b instanceof Object);//true
	let arr = [1,2,3,4];
	console.log(arr instanceof Array);//true

3.Object.prototype.toString()方法:

在这里插入代码片
例子:
	(123).toString()//'123'
	(true).toString()//'true'
	[12,23].toString()//'12.23'
 	Object.prototype.toString.call(12)//[boject Number]
 
	Object.prototype.toString.call(true)//[boject Boolean]
										//"[object Number]"
										//"[object String]"
										//"[object Object]"
										//"[object Function]"
										//"[object Undefined]"
										//"[object Null]"
										//"[object RegExp]"
										//"[object Boolean]"

4.constructor属性:判断某个实例对象是不是这个构造函数创建出来的。

在这里插入代码片
	function Anamil(name) {
		this.name = name
	}
	let ana1 = new Anamil('dog');
	function f(){}
 
	console.log('--------')
	console.dir(ana1.constructor == Anamil) //true
    console.dir(ana1.constructor == Object) //false
	console.log('--------')

5.valueOf:可以看到数据最本质内容(原始值)

例子:
	let a = "12345";
	let b= new String('12345');
	console.log(typeof a);//string
	console.log(typeof b);//object
	console.log(a == b);//true  (typeof检测出来是对象居然和一个数组相等,显然b并不是一个真的对象。)
	//此时看看 valueOf()的表现
	console.log(b.valueOf());//12345  拿到b的原始值是 字符串的12345
	console.log(typeof b.valueOf())//string  这才是 b的真正的数据类型

6.hasOwnporperty(属性名(K值)) 检测当前属性是否为对象的私有属性

例子:
	let obj = {
	name:"lxw"
	};
	console.log(obj.hasOwnProperty('name'));//true --key值
	console.log(obj.hasOwnProperty('lxw'));//false --value值

7.判断是否是数组

var arr = ["Banana", "Orange", "Apple", "Mango"];
//系统默认是  arr.prototype.constructor = Array
console.log(arr.constructor === Array) //打印结果为true则是数组
console.log(arr instanceof Array) //打印结果为true则是数组
console.log(Object.prototype.toString.call(arr) ===[object Array]) //打印结果为true则是数组
console.log(Array.isArray(arr)) //打印结果为true则是数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值