原始值与引用值
ES设计了6种原始值:Undefined、Null、Boolean、Number、String和Symbol
原始值是不可改变的
原始值不能有属性
通常采用instanceof操作符,判断引用值是否为某个构造函数的实例
数值与Number
十六进制:以0x或0X为前缀
二进制:以0b或0B为前缀
八进制:以0o或0O为前缀
(在ES6的严格模式下,禁止使用八进制)
指数记数法:在实数部分后跟字母e或E,再跟正负号,在跟一个整型的指数。
如:5.12e12->5.12×1012,1.44E-8->1.44×10-8
JavaScript提供了3个函数可将非数值转换为数值。
Number( )、parseInt( )和parseFloat( )
字符串扩展与新增
通过new调用String()会返回一个字符串对象
new String(100)==new String(100)//false
原因:比较的是引用而不是值
String(100)==new String(100)//true
原因:会将引用转换为值
字符串的复制
let str="abc";
console.log(str.repeat(2));//字符串的复制(如果是小数则取整数部分)
padStart()方法,padEnd()方法
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
console.log('1'.padStart(2,'0'));//第一个参数为长度,当长度不够时,第二个参数来补
console.log('1'.padEnd(2,'0'));
当指定长度小于原本字符串的长度时,原字符串保持不变
raw
//raw:对斜杠进行转义,使其不生效
{
console.log(String.raw`Hi\n${1+2}`);
console.log(`Hi\n${1+2}`);
}
for…in、for…of遍历字符串
for…in遍历的是数组的索引,而for…of遍历的是数组元素值