菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
482
0

js 数据类型相关?

原创
05/13 14:22
阅读数 160766

标签:bool   fine   OLE   不同   function   int   tostring   number   rgb   

一、数据类型

1、基础类型:null,undefined,string,number,boolean,bigint,symbol;

2、引用类型:object,array等都算是引用类型;

二、两种类型之间的区别

1、基础类型:存储在栈内存中,大小固定,方便快速查找;

2、引用类型:存储在堆内存中,存储一个指针,通过指针查找对应存储的的大值;

三、赋值引起的问题

1、基础类型:直接赋值,没有问题;

2、引用类型:赋值给新对象,新对象修改,原对象的值也需要修改;

var a = {};
var b = a;
b.name = name;
console.log(a);  // {name:name}

三、如何判断数据类型

1、typeof:可以判断基础类型;

2、instanceof:可以判断引用类型,但是不完全;

3、Object.prototype.toString.call(arg):可以判断所有类型;

function person() {
   this.name = 10;
}
// typeof
typeof 1; // number
typeof 1; // string
typeof true; // boolean
typeof null; // object
typeof undefined; //undefiend
typeof Symbol; // function
typeof person; // function
typeof []; // object
typeof {}; // object

// instanceof
person instanceof person; // true

// Object.prototype.toString.call(arg)
Object.prototype.toString.call(1); //[object Number]
Object.prototype.toString.call(1); //[object String]
Object.prototype.toString.call(true); //[object Boolean]
Object.prototype.toString.call(null); //[object Null]
Object.prototype.toString.call(undefined); //[object Undefined]
Object.prototype.toString.call(Symbol); //[object Function]
Object.prototype.toString.call(person); //[object Function]
Object.prototype.toString.call([]); //[object Array]
Object.prototype.toString.call({}); //[object Object]

四、undefned与null有什么不同

1、undefined:表示已定义但是未赋值;

2、null:代表值为空,内存中找不到值地址指向;

五、判断对象{}为空

1、Object.keys({}).length === 0;

2、JSON.stringify({}) === ‘{}‘;

后续继续完善

js 数据类型相关?

发表评论

0/200
482 点赞
0 评论
收藏
为你推荐 换一批