1.Math数字
- 整型直接量
16进制 0x 或 0X 0-9和a(A)~f(F)之间字母构成
8 进制 0开头, ES6严格模式下明令禁止使用(8进制有些支持,有些不支持) - 函数
Math.pow(2,53) // 2的53次幂
Math.round(.6) // => 1.0: 四舍五入
Math.ceil(.6) // => 1.0: 向上取整
Math.floor(.6) // => 0.0: 向下取整
Math.abs(-5) // => 5: 求绝对值
Math.max(x, y, z) // 返回最大值
Math.min(x, y, z) // 返回最小值
Math.random() // 生成一个大于等于0小于1.0的伪随机数
Math.PI // π: 圆周率
Math.E // e: 自然对数的底数
Math.sqrt(3) // 3的平方根
Math.pow(3, 1/3) // 3的n次根
Math.sin(0) // 三角函数,还有 Math.cos , Math.atan等
Math.log(10) // 10的自然对数
Math.log(100)/Math.LN10 // 以10为底100的对数
Math.exp(3) // e的三次幂
- 日期和时间
let later = new Date()
later.getFulllYear() // => 2019
later.getMonth() // => 6: 从0开始计算的月份
later.getDate() // => 6: 从1开始计算的天数
later.getDay() // => 5: 得到星期几,0代表星期日
later.getHours() // => 当地时间
later.getUTCHours() // 使用UTC表示小时的时间,基于时区
4.字符串方法
let s = "Hello, world"
s.charAt(1) // => e: 第二个字符
s.charAt(s.length - 1) // => d: 最后一个字符
s.substring(1, 3) // => ell: 第2-4字符
s.slice(1, 4) // => ell: 同上
s.slice(-3) // => rld: 同上最后三个字符
s.indexOf("l") // => 2: 字符l首次出现的位置
s.lastIndexOf("l") // => 10: 字符l最后一次出现的位置
s.indexOf("l", 3) // => 3:在位置3及之后首次出现字符l的位置
s.split(",") // => ["Hello", "world"]分割成数组
s.replace("H", "h") // => hello world全文字符替换
s.toUpperCase() // => HELLO WORLD
2.运算符
- 分为算数表达式、比较表达式、逻辑表达式、赋值表达式
- 一元操作符、赋值和三元条件运算符都具有从右往左的结合性
- 注意事项
let a = 1
let b = (a++) + a + (a++) + (a++)
1 2 2 3
console.log(a) // 4
console.log(b) // 8
let a = 1
let b = a + (a++) + (a++) + (a++)
1 1 2 3
console.log(a) // 4
console.log(b) // 7
删除delete
delete为一元操作符,它用来删除对象属性或者数组元素
let obj = {x: 1, y: 2}
delete obj.x // 删除一个属性
"x" in obj // => false 这个属性在对象中不存在
let a = [1, 2, 3]
delete a[1]
2 in a // => false 元素2在数组中已经不存在
注意:a.length = 3 数组长度并没有改变
严格模式下,如delete操作是非法的,比如变量、函数或函数参数,delete操作将抛出语法错误(SyntaxError)
let o = {a: 1, b: 2}
delete o.a // 返回true
typeof o.x // 属性不存在,返回false
delete o.x // 删除不存在的属性,返回true
this.x = 1
delete x // 非严格模式,返回true
delete this.x // 严格模式下删除