这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战。
前言
ECMAScript 6.0 简称ES6 , 是 JavaScript 语言的新一代的标准,于在 2015 年 6 月发布,正式名称就是《ECMAScript 2015 标准》。一般情况,泛指, 5.1版以后的标准,涵盖了 ES2015、ES2016、ES2017、ES2018、ES2019、ES2020、ES2021 等等
我们一起来学习 字符串函数对象String吧。
平时使用
我们平时都是习惯直接申明, 其实可以String(txt)或者new String(txt)形式调用。
var text = "我们都是好朋友";
"我们都是好朋友" == String("我们都是好朋友") // true
text == String(text) // true
ES6之后,又多了一种形式:
var text = `我们都是好朋友`
String的一些信息
JavaScript的代码中的String本身是一个函数:
typeof String // 'function'
String 是 Function实例,Function 又是 Object的实例,所以:
String instanceof Function // true
Function instanceof Object // true
String instanceof Object // true
所以 String 本身,既有Function也有Object原生上的属性。
这里额外再来一个小插曲:
Function instanceof Object // true
Object instanceof Function // true
纳尼,这什么花样,别着急,我们会在之后的原型篇详细解答。
Object原型上标志性的方法
- Object.prototype.hasOwnProperty
- Object.prototype.isPrototypeOf
- Object.prototype.toString
- Object.prototype.valueOf
Function原型上标志性的方法
- Function.prototype.apply
- Function.prototype.bind
- Function.prototype.call
- Function.prototype.length
- Function.prototype.name
String既然是String 和 Object的实例,那么这么方法均有
String的静态属性
String的各种属性和方法可以参见 String JavScript | MDN。 我们首先一起来看看String的静态方法和属性, 其中红色的是ES6新增。 也就是:
String.fromCodePointString.raw
从下面的列表可以看出, String自身具备的方法很少,这里抛开自身原型上String.prototype的方法, 也就是:
- String.fromCharCode
String.fromCodePointString.raw
静态方法
-
String.fromCharCode
自有方法。 由指定的 UTF-16 代码单元序列创建的字符串。 简单说,就是Unicode的码点。 码点低于0xFFFF的字符能正确解析,大于的就会错乱了,先一起看看例子。console.log(String.fromCharCode(66, 67, 68, 69)) // BCED console.log(String.fromCharCode(20013,22269, 20154)) // 中国人 String.fromCharCode(0x21154) // 'ᅔ' String.fromCharCode(0x1154) // 'ᅔ' String.fromCodePoint(0x21154) // '𡅔'这里,你会发现,码点大于0xFFFF之后,
0x21154和0x1154值相等。这么看来,就是直取了后四位,超过的直接被丢弃了。 -
String.fromCodePoint
自有方法。 之后重点介绍 -
String.raw
自有方法。 之后重点介绍 -
String.apply
继承自Function -
String.bind
继承自Function -
String.call
继承自Function -
String.constructor
继承自Object -
String.toString
继承自Object -
String.hasOwnProperty
继承自Object -
String.isPrototypeOf
继承自Object -
String.propertyIsEnumerable
继承自Object -
String.toLocaleString
继承自Object -
String.valueOf
继承自Object
静态属性
- String.length
继承自Function。String方法的参数长度,值为1。String.length // 1 new String("string") // String {'string'} - String.name
继承自Function。String方法名,当然也就是StringString.name // "String" - String.prototype
继承自Function
小结
各位客官,今天你收获了吗?