JS的数据类型
基本数据类型
string、boolean、number、null、undefined、Symbol
引用类型
Object、Array、RegExp、Date、Function
区别
引用类型值可添加属性和方法,而基本类型值则不可以。
内存存储
基本类型
基本类型的变量是存放在栈内存(Stack)里的
基本数据类型的值是按值访问的
基本类型的值是不可变的
基本类型的比较是它们的值的比较
引用类型
引用类型的值是保存在堆内存(Heap)中的对象(Object)
引用类型的值是按引用访问的
引用类型的值是可变的
引用类型的比较是引用的比较
面试点
typeof 检测数据类型
// string、boolean、number、undefined、Object、function、Symbol
//可以先考虑下以下的变量会打印出什么结果
var a1 = "hello";
var a2 = true;
var a3 =11;
var a4 = undefined;
var a5 = null;
var a6 = [1,2,3]
var a7 = function(){};
var a8 = Symbol('aa');
var a9 = {} 或者new Object();
console.log(typeof a1);//string
console.log(typeof a2);//boolean
console.log(typeof a3);//number
console.log(typeof a4);//undefined
console.log(typeof a5);//object
console.log(typeof a6);//object
console.log(typeof a7);//function
console.log(typeof a8);//symbol
console.log(typeof a9);//object
从以上结果可以得出typeof 只能区别出
string、boolean、number、undefined、function、symbol
不能区别
null、Array、Object
那么用什么来区分啦?
instanceof 可以上场了
instanceof 可以判断Array、Object和Function
上代码
var s1 = [1,2,3];
var s2 = {};
var s3 = function(){};
console.log(s1 instanceof Array);// true
console.log(s2 instanceof Object);//true
console.log(s3 instanceof Function);//true
下面说说 null 和 undefined 的区别吧
undefined 代表没赋值
null 赋值了给了null
//一般面试笔试必有的一道题
console.log(null==undefined );// true
console.log(null===undefined );//false
第一讲结束,不知道学到并理解多少,需要多写多悟,记在脑子里。