Date
-
new Date()根据传入参数的不同,内部会隐式的调用Date.parse()或Date.UTC() -
Date.now()可以返回当前时间的时间戳,但Date对象之间可以直接比较大小,不用显式的转换时间戳进行比较
RegExp
-
RegExp.exec()返回包含第一个匹配信息的数组,如果没有找到匹配项,返回null
原始值包装类型
-
String Number Boolean
当我们用到这些原始值的方法和属性时,后台其实会创建一个相应原始值的对象实例,在方法调用结束后,销毁实例;通过这种方式可以让原始值拥有对象行为,方便数据处理
let s1 = 'some text' let s2 = s1.substring(2) // 后台操作类似于 let s1 = new String('some text') let s2 = s1.substring(2) let s1 = null
String
-
str.slice()str.substring()用于截取字符串,参数为正数时,返回包含参数一,至参数二 **之前 **的字符串,不传参数二则截取至末尾
-
str.substr用于截取字符串,参数为正数时,参数一为起始索引,参数二为字符个数
str.indexOfstr.lastIndexOfstr.startsWithstr.endsWithstr.includes用于判断是否包含参数子串str.trim去除参数字符串首尾空格,返回副本str.repeat(n)返回重复n次的拼接副本str.padStart(n, strArg)str.padEnd(n, strArg)将strArg重复n次拼接在字符串首或尾,strArg默认为空格-
字符串原型上暴露了一个@@iterator方法,可以手动调用迭代器
let message = 'abc' let stringIterator = message[Symbol.iterator]() console.log(stringIterator.next()) // {value: 'a', done: false} // 有了这个迭代器后,字符串可以通过解构操作符解构了 let message = 'abc' console.log([...message]) // ['a', 'b', 'c'] // 相当于 message.split('') -
字符串匹配方法
-
str.match与RegExp.exec()类似,返回值也一样,只是调用的对象和参数互换 -
str.search返回匹配字符的起始索引或-1 str.replace
-
单例内置对象
任何由ECMAScript实现提供,与宿主环境无关,并在ECMAScript程序开始执行时就存在的对象
- 不用显式的实例化,因为它们在程序执行时已经实例化好,如 Object,Array,String,Global,Math
Global
- 代码不会显式的访问它,所谓全局变量或全局函数都会变为Global对象的属性
-
encodeURI和encodeURIComponent不同在于encodeURI不会编码属于URL的特殊字符; - 常用的是
encodeURIComponent,用于编码 查询字符串参数(URL的某一部分) - 对应
decodeURI()及decodeURIComponent
Window
- 在浏览器中,window对象实现为Global对象的代理,全局变量和函数都变成window的属性
Math
常用方法
-
Math.min(1, 2 ,5)返回最小值 Math.max()-
Math.ceil向上取整 -
Math.floor向下取整 -
Math.round四舍五入 -
Math.random 返回0~1` 范围内的随机数,不含1 -
Math.abs返回绝对值