五、基本引用类型

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.indexOf

  • str.lastIndexOf

  • str.startsWith str.endsWith str.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.matchRegExp.exec() 类似,返回值也一样,只是调用的对象和参数互换
    • str.search 返回匹配字符的起始索引或-1
    • str.replace

单例内置对象

任何由ECMAScript实现提供,与宿主环境无关,并在ECMAScript程序开始执行时就存在的对象

  • 不用显式的实例化,因为它们在程序执行时已经实例化好,如 Object,Array,String,Global,Math

Global

  • 代码不会显式的访问它,所谓全局变量或全局函数都会变为Global对象的属性
  • encodeURIencodeURIComponent 不同在于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 返回绝对值
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容