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);//stringconsole.log(typeof a2);//booleanconsole.log(typeof a3);//numberconsole.log(typeof a4);//undefinedconsole.log(typeof a5);//objectconsole.log(typeof a6);//objectconsole.log(typeof a7);//functionconsole.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
第一讲结束,不知道学到并理解多少,需要多写多悟,记在脑子里。