js 数据类型,和类

基本类型:string number null undefined boolean symbol bigint 7种,存放在栈(stack)中线性结构,先进后出。

引用类型:对象(Object) 1种  数组(Array)、函数(Function)也算object,数据存储在堆(heap)中,

地址指针是存储于栈(stack)中。深拷贝是拷贝地址指针和基本数据,浅拷贝只拷贝地址指针。

特殊的对象:正则(RegExp)和日期(Date)

symbol

是es6新增,表示独一无二的值,最大的用法是用来定义对象的唯一属性名

let sy = Symbol("KK");
console.log(sy);   // Symbol(KK)
typeof(sy);        // "symbol"
 
// 相同参数 Symbol() 返回的值不相等
let sy1 = Symbol("kk"); 
sy === sy1;       // false

bigint

js的number类型最大可以为 2^53 - 1,bigint可以比它大,用来定义大整数。es11新增 

//定义和初始化 bigint常量
const bigIntNum = 9007199254740991n;
const bigIntNum1 = BigInt(9007199254740991);
console.log(bigIntNum === bigIntNum1)

//和Number比较
const bNum = 3n;
const Num = 3;
console.log(bNum == Num,bNum === Num);//true false 

类型检测

hasOwnProperty 检测属性是否为对象的自有属性,如果是,返回true,否者false,此方法无法检查该对象的原型链中是否具有该属性    

object.hasOwnProperty(proName)

constructor 属性返回对创建此对象的数组函数的引用 属性值是指向创建当前实例的对象的      

[].constructor == Array //true
Object.constructor == Object //false

原型链被改变会报错        

var arr = [];
arr.__proto__ = String
arr.constructor == Array //false

instanceof 检测这个实例对象是不是这个方法new出来的    

[] instanceof Array //true
Number instanceof Number //false
String instanceof String //false
Object instanceof Object //true
Function instanceof Function //true
Function instanceof Object //true
function Foo(){}
Foo instanceof Function //true
Foo instanceof Foo //false

typeof 用于检测基本类型   

    typeof undefined;//=> undefined
    typeof 'a';//=> string
    typeof 1;//=> number
    typeof true;//=> boolean
    typeof {};//=> object
    typeof [];//=> object
    typeof function() {};//=> function
    typeof null;//=> object

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuhang139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值