首页 > 试题广场 >

JS的基本数据类型有哪些,基本数据类型和引用数据类型的区别,

[问答题]

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在什么情况下会出现呢?

一般来说都是本来要输出一个数值,但是在输出的数值类型出现错误时,系统难以识别。但是系统没有报错,而是返回了NaN。例如下面这种情况
let a = "abcde";
let b = 12;
let c = a✖️b;
console.log(c) // NaN
b是数值类型,a是字符串,所以参与运算后c值输出结果就是NaN,也就是Number类型。0/0也会出现NaN。
需要注意的是,NAN 不会和任何一个值相等,包括NaN本身。运行结果都为false。
console.log(NaN == NaN) // false
console.log(NaN === NaN) // false
console.log(NaN != NaN) // true

___________________________________________

JS作用域类型:
全局作用域、局部作用域、块级作用域

细节请看:https://blog.csdn.net/qq_44647809/article/details/114654274

___________________________________________

undefined与null的关系:


null和undefined基本是同义的,只有一些细微的差别,null表示没有对象,undefined表示缺少值,就是此处有一个变量但是还没有初始化


undefined == null;//返回值是true
undefined === null; //返回值是false

___________________________________________

判断变量类型:

typeof:判断变量是基本类型还是引用类型
instanceof:判断变量是哪一种引用类型
Object.prototype.toString():判断任意类型
constructor:判断任意数据类型,但是该属性有被重写的风险

细节请看第243题评论

编辑于 2021-10-08 21:19:58 回复(0)
<p>基本数据类型:numbers,null,undefined,string,object,布尔值</p><p>NaN 表示不是一个数字</p><p>函数作用域,如果在函数内部我们给为定义未的一个变量赋值,这个变量会转变成一个全局变量</p><p>块作用域,块作用域把标识符限制在{}内</p><p>undefined==null返回true,在ES6中她们认为undefined与null基本是同义的,只是有一点细微的区别。undefined表示一个不存在的值,null表示已经声明了一个值但是没有进行赋值。</p><p><br></p>
发表于 2020-06-16 16:52:40 回复(0)
undefined==null返回true
NaN ,not a number
基本类型,string number null undefined boolen symbol(es6)
复杂类型,object
编辑于 2019-06-04 15:30:54 回复(0)