JS的基本数据类型及数据类型的检测方法

每天一个前端面试题之 JS的数据类型及数据类型的检测方法


一、基本数据类型

基本数据类型又称为原始数据类型,主要有以下几种

1. 数字类型,Number
可以表示32位整数及64位的浮点数。数字类型的最大值是 Numbe.MAX_VALUE。Infinity为无穷大。NaN为非数字。

2. 字符串类型,String
由一系列的Unicode字符、数字和标点组成。其中Unicode字符在内存中占两个字节。汉字的Unicode编码从/u4e00开始到/u9fa5结束。

3. 布尔类型,Boolean
用于表示条件的结果,代表空、否定的值会被转化为false,其余的都是true。

4. 空,Null
声明对象未赋值为null.

5. 未定义,Undefined
声明对象未赋值被输出时为undefined,访问对象不存在的属性时为undefined。

6. Symbol
ES6新引入的数据类型,表示独一无二的值,最大的用途是用来定义对象唯一的属性名。

二、引用类型

引用数据类型指对象类型Object type,最常用的是对象Object,数组Array,函数FunctionDate

三、两种数据类型的区别

首相应该明确的一点是,JS的数据类型是在程序运行时由等号右边的值确定的。两种数据类型的区别主要有以下4点:

1. 声明变量时不同的内存分配

基本数据类型是存储在栈中的简单数据段,也就是说,他们的值直接存储在变量访问的位置。
引用数据类型是存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存地址。

2.不同的访问机制

基本数据类型可直接访问。
引用数据类型不可以直接访问,在需要访问时首先得到的是这个对象在堆内存中的地址,然后再通过地址去获取对象中的值。

3. 复制变量时不同

基本数据类型在复制完成后是完全独立的,他们拥有相同的值,一个改变不影响另一个的改变。
引用数据类型在复制时只是将对象的内存地址赋值给了新变量,也就是说两个变量都指向了堆内存中的同一个对象,一个的改变会影响另一个。如果想实现互不影响的复制,需要进行深拷贝。

4. 参数传递时不同

js中的参数都是按值传递的。
基本数据类型将变量的值传递给参数后,变量和参数互不影响
引用数据类型只是将内存地址传 进去,因此函数内存参数的改变会体现在外部。

四、数据类型的检测方法

1.typeof(值) 或者 typeof 值

    1.console.log(typeof 1);
	2.console.log(typeof 'kk');
	3.console.log(typeof true);
	4.console.log(typeof null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值