1、数值型(Number)
统称为Number类型,但是实际上还是有int、float之分。数值型比较重要的是算术运算符(+、-、*、/、%(取余))以及函数方法
Math.pow(x,y) // x的y次方
Math.round(x) // 舍入到最接近的整数
Math.ceil(x) // 向上取整
Math.floor(x) // 向下取整
Math.abs(x) // 绝对值
Math.max(x,y,...n) // 最大值
Math.min(x,y,...n) // 最小值
Math.random() // 随机数
Math.max(x,y,...n) // 四舍五入
Number(x.toFixed(n)) // 小数点后n位,toFixed转换后,值位字符串,需要转换为数值
2、字符串(String)
除了常用的基本类型字符串外。ES6中还定义了模板字面量,即hello ${name}
通过${}定义变量拼接
let text = ""
text.substring(x,y) // 截取第x~y和字符
text.slice(x,y) // 同上
text.slice(x) // 从第x位截取到最后
text.slice(-x) // 截取最后的x个字符
text.split(",") // 根据符号,拆分位数组
text.indexOf("",x) // 查找第x个字符所在位置,x默认为1。若返回值位-1则表示不存在
text.lastIndexOf("",x) // 反向查找,原理同上
text.startsWith("x") // 判断字符串是否是以x开头
text.endsWith("x") // 判断字符串是否是以x结尾
text.includes("x") // 判断字符串中是否包含x
text.replace("x","y") // 字符串替换x=>y
text.toLowerCase() // 全小写
text.toUpperCase() // 全大写
text.padStart(x,"*") // 在左侧添加*,让字符串长度为3。不写"*"默认为空格
text.padEnd(x,"*") // 在右侧添加*,让字符串长度为3。不写"*"默认为空格
text.repeat(x) // 字符串循环拼接x次
3、布尔型(Boolean)
true/false判断。null/undefined/NAN类型都为false。下方6、类型转换中有更详细的解释
4、数组(Array)
数组是一种特殊的变量,它能够一次存放一个以上的值。数组为引用类型是通过指针指向底层对象尤其要注意数组的赋值过程
let array = []
array.join() // 用指定的分隔符将数组每一项拼接为字符串
array.push() // 向数组的末尾添加新元素
array.unshift() // 向数组首位添加新元素
array.pop() // 删除数组的最后一项
array.shift() // 删除数组的第一项
array.splice(x,y) // 对数组进行增删改x是下标,y为长度(x,0,12,...n)可实现增加(值为12)(x,1,12)可实现修改
array.slice(x,y) // 按照条件查找出数组中x到y的元素
array.fill(x) // 用x填充替换数组中的一个或多个元素
array.filter(item=>{return x==0}) // 数组根据条件过滤
array.concat() // 用于连接两个或多个数组(可用于深拷贝)
array.indexOf() // 检测当前值在数组中第一次出现的位置索引
array.lastIndexOf() // 检测当前值在数组中最后一次出现的位置索引
array.every(item=>{return x==0}) // 判断数组中每一项都是否满足条件
array.some(item=>{return x==0}) // 判断数组中是否存在满足条件的项
array.includes() // 判断一个数组是否包含一个指定的值
array.sort() // 对数组的元素进行排序
array.reverse() // 对数组进行倒序
array.forEach(item=>{return x==0})// ES5 及以下循环遍历数组每一项
array.map(item=>{return x==0}) // ES6 循环遍历数组每一项
array.copyWithin() // 用于从数组的指定位置拷贝元素到数组的另一个指定位置中
array.find() // 返回匹配的值
array.findIndex() // 返回匹配位置的索引
array.toString() // 将数组转换为字符串
5、对象(Object)
对象同数组一样,都是引用类型。其表现形式为{}。对象与数组类似。其同样也有深拷贝与浅拷贝机制
浅拷贝的对象,在对象A改变的同时,也会对对象B进行改变。因此想要让两个对象内容一致而互不影响就需要深拷贝方式
对象的深拷贝方式有Object.assign({}, obj)与解构(在8、解构赋值会有详细提及)这两种主要方式
6、类型转换
值 | 转换为字符串 | 转换为数值 | 转换为布尔值 |
---|---|---|---|
undefind | “undefind” | NaN | false |
null | “null” | 0 | false |
true | “true” | 1 | |
false | “false” | 0 | |
“” | 0 | false | |
“1.2” | 1.2 | true | |
“test” | NaN | true | |
0 | “0” | false | |
-0 | “0” | false | |
1 | “1” | true | |
NaN | “NaN” | false | |
{} | true | ||
[] | “” | 0 | true |
9 | “9” | 9 | true |
[“a”,9] | a,9 | NaN | true |