ES6基本数据类型总结

ES5的基本数据类型有:Number,String,Boolean,null,undefined

ES6基本数据类型:Number,String,Boolean,null,undefined,symbolbigint(后两个为ES6新增)

引用数据类型:
object,function(proto Function.prototype)
object:普通对象,数组对象,正则对象,日期对象,Math数学函数对象。

1.symbol为ES6新增数据类型

Symbol 的本质是表示一个唯一标识。每次创建一个Symbol,它所代表的值都不可能重复。所以理论上 Symbol 的存在只有一个意义:用于必须使用唯一值的场景。

运用例子:

	 let id1 = Symbol('id');
	 console.log(id1);//输出symbol(id)

作用:(1)防止命名冲突:

const persons = {
 'hobby': 'reading',
 'hobby': 'playingGame'
}
 
console.log(persons.hobby); //输出 'reading'
使用Symbol作为Key可以避免这种情况:
 
const hobby1 = Symbol('hobby');
const hobby2 = Symbol('hobby');
 
const persons = {
 [hobby1]: 'reading',
 [hobby2]: 'playingGame'
}
 
console.log(persons[hobby1]); // 输出'reading'
console.log(persons[hobby2]); // 输出'playingGame'

(2)使用symbol定义枚举类型(这样保存唯一性)

方法调用:
通过Symbol.keyFor()获取到全局的symbol对象:

 let name1 = Symbol.for('name');
 let name2 = Symbol.for('name');
 console.log(Symbol.keyFor(name1));  //输出 'name'
 console.log(Symbol.keyFor(name2)); //输出 'name'

2.BigInt为ES6新增数据类型

BigInt数据类型的目的是比Number数据类型支持的范围更大的整数值以任意精度表示整数的能力尤为重要。使用BigInt,整数溢出将不再是问题。

*新增BigInt原因:在js中的数字类型是按照IEEE 754-2008标准的定义,所有数字都以双精度64位浮点格式表示,任何超出此范围的整数值都可能失去精度,因此需要BigInt,增加程序可靠性和安全性。

运用例子:

	 let num1 = 10n//可以直接后面加“n”成为BigInt
	 let num2 = BigInt(10)//或者直接定义
	 console.log(num1 === num2)//输出true

持外还支持其他进制(如八进制,二进制等)
一些特性:
(1)不能使用严格相等运算符将BigInt与常规数字进行比较,因为它们的类型不同
(2)因为隐式转换可能会导致信息丢失,所以不允许在 BigInt 和 Number 之间进行混合操作
(3)不能单用+进行操作,其他符号可以

		 console.log(1n + 20n)//输出21n
		 console.log(+20n)//这个会报错
		 console.log(1n * 2n)//输出2n
		 console.log(10n % 3n)//输出1n
		 console.log(2n / 2n)//输出1n

3.Boolean类型:
例子:

		console.log(Boolean([]))//输出true
		console.log(Boolean({}))//输出true
		console.log(Boolean(0))//输出false
		console.log(Boolean(""))//输出false
		console.log(Boolean(" "))//输出true (多了空格)
		console.log(Boolean(function(){}))//输出true
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值