JavaScript基本数据类型&数据存储&类型转换

1.数据类型

JS中一共分成八种数据类型
	String 字符串
	Number 数值
	Boolean 布尔值
	Null 空值
	Undefined 未定义
	Object 对象
	Symbol(es6新增,表示独一无二的值)
	BigInt(es10新增)

其中基本数据类型

	String 字符串
		JS中的字符串需要使用引号引起来双引号或单引号都行
		在字符串中使用\作为转义字符
			
		使用typeof运算符检查字符串时,会返回"string"	
		
	Number 数值
		S中所有的整数和浮点数都是Number类型
		特殊的数字
			Infinity 正无穷
			-Infinity 负无穷
			NaN 非法数字(Not A Number)
		其他进制的数字的表示:
			0b 开头表示二进制,但是不是所有的浏览器都支持
			0 开头表示八进制
			0x 开头表示十六进制
			
		 使用typeof检查一个Number类型的数据时,会返回"number"
			(包括NaN 和 Infinity)

	 Boolean 布尔值
		布尔值主要用来进行逻辑判断,布尔值只有两个
		true 逻辑的真
		false 逻辑的假
		使用typeof检查一个布尔值时,会返回"boolean"	
	
	 Null 空值
		 空值专门用来表示为空的对象,Null类型的值只有一个
		 null
		使用typeof检查一个Null类型的值时会返回"object"

	 Undefined 未定义
		如果声明一个变量但是没有为变量赋值此时变量的值就是undefined
		该类型的值只有一个 undefined
		使用typeof检查一个Undefined类型的值时,会返回"undefined"

	 Symbol
		ES6 引入了一种新的原始数据类型Symbol,
		表示独一无二的值。它是 JavaScript 语言的第七种数据类型。
		let symbol = Symbol();
		console.log(typeof(symbol));//symbol
		 [注意]Symbol函数前不能使用new命令,否则会报错。
 				因为生成的 Symbol 是一个原始类型的值,不是对象。
 	 BigInt
 		在javaScript中,number可以准确表达的最大数字是2^53没有比这更大的数字
	    Number可以表示的最大安全范围是正负2^53 - 1。
        也就是Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER.
       BigInt类型出现就可以解决这一问题,比2^53大的数可以使用BigInt类型表示

引用数据类型

	Object 对象(Object本质上是由一组无序的名值对组成)
		里面包含function、Array、Date等,JavaScript不支持任何自定义类型的机制
		而所有值最终都等于上述8种数据类型之一

数据存储

   原始数据类型:
   		直接存储在栈中,占据空间小,大小是固定的。
 	    属于频繁使用的数据,所以放入栈中存储
   引用数据类型:
     	同时存储在栈和堆中,占据空间大,大小不固定。
    	引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。
    	当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体

类型转换

	类型转换就是指将其他的数据类型,转换为String Number 或 Boolean
	转换为String
		方式一(强制类型转换):
			调用被转换数据的toString()方法
			例子:
				var a = 123;
				a = a.toString();
			注意:这个方法不适用于null和undefined
				由于这两个类型的数据中没有方法,所以调用toString()时会报错
				
		方式二(强制类型转换):
			调用String()函数
			例子:
				var a = 123;
				a = String(a);
			原理:对于Number Boolean String都会调用他们的toString()方法来将其转换为字符串,
				对于null值,直接转换为字符串"null"。对于undefined直接转换为字符串"undefined"
				
		方式三(隐式的类型转换):
			为任意的数据类型 +""
			例子:
				var a = true;
				a = a + "";
			原理:和String()函数一样	
			
	转换为Number
		方式一(强制类型转换):
			调用Number()函数
			例子:
				var s = "123";
				s = Number(s);
			转换的情况:
				1.字符串 --> 数字
					如果字符串是一个合法的数字,则直接转换为对应的数字
					如果字符串是一个非法的数字,则转换为NaN
					如果是一个空串或纯空格的字符串,则转换为0
				2.布尔值 --> 数字
					true转换为1
					false转换为0
				3.空值 --> 数字
					null转换为0
				4.未定义 --> 数字
					undefined 转换为NaN
					
		方式二(强制类型转换):
			调用parseInt()或parseFloat()
			这两个函数专门用来将一个字符串转换为数字的
			parseInt()
				可以将一个字符串中的有效的整数位提取出来,并转换为Number
				例子:
					var a = "123.45px";
					a = parseInt(a); //123
				如果需要可以在parseInt()中指定一个第二个参数,来指定进制	
					
			parseFloat()
				可以将一个字符串中的有效的小数位提取出来,并转换为Number
				例子:
					var a = "123.456px";
					a = parseFloat(a); //123.456
					
		方式三(隐式的类型转换):
			使用一元的+来进行隐式的类型转换
			例子:
				var a = "123";
				a = +a;
				
			原理:和Number()函数一样	
			
	转换为布尔值
		方式一(强制类型转换):
			使用Boolean()函数
			例子:
				var s = "false";
				s = Boolean(s); //true
			转换的情况
				字符串 --> 布尔
					除了空串其余全是true
					
				数值 --> 布尔
					除了0和NaN其余的全是true
					
				null、undefined ---> 布尔
					都是false
					
				对象 ---> 布尔
					都是true
		
		方式二(隐式类型转换):	
			为任意的数据类型做两次非运算,即可将其转换为布尔值
			例子:	
				var a = "hello";
				a = !!a; //true

图片转自公众号:前端大全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值