JS的基本数据类型有哪些,基本数据类型和引用数据类型的区别,NaN是什么的缩写,JS的作用域类型,undefined==null返回的结果是什么,undefined与null的区别在哪,写一个函数判断变量类型
基本数据类型有几个?
ES6中新增了一个基本数据类型symbol(独一无二的),剩下五个分别是undefined、null、number、boolean、string,所以基本数据类型应该说是6个
___________________________________________
“基本类型”和“引用类型”的区别:
1. 内存分配不同。
变量名都指向一段栈内存,但是,“基本类型”直接将对应的值存储在这段栈内存;而“引用类型”,是先将对象存储在一段堆内存中,然后将这段堆内存的地址存储在栈内存。原理:可变的数据存储在栈内存会降低变量查询速度,而地址是不可变的。
2. 访问不同。
根据存储的方式,就很容易知道,通过变量名,基本类型的变量名可以直接访问到变量值。而引用类型,会先从栈内存访问到一段堆内存,再从堆内存访问对应的对象。
3. 复制时存在差异。
由于存储方式的差异,复制也就有所不同。不论是基本类型还是引用类型,都是将变量名指向的栈内存中的数据进行复制。所以对基本类型直接复制得到的是变量值,而对引用类型直接复制得到的是地址。在函数传参时也是同理,将实参复制给形参,用到的也是复制。
总结:“基本类型”和“引用类型”的差异,大多都是源自存储方式的差异。
___________________________________________
NaN全称是什么?
NaN是属于JavaScript的数值类型Number类型。NaN意思是指数据“Not a Number”不是一个数字,但是NaN却属于数值类型。
那么NaN在什么情况下会出现呢?
___________________________________________
细节请看:https://blog.csdn.net/qq_44647809/article/details/114654274
___________________________________________
undefined与null的关系:
null和undefined基本是同义的,只有一些细微的差别,null表示没有对象,undefined表示缺少值,就是此处有一个变量但是还没有初始化
___________________________________________
判断变量类型:
细节请看第243题评论