【ECMAScript】String对象属性和方法梳理和总结(第二篇)

1. 前言

        本文主要梳理一下字符串String对象方法和属性。

2. String对象属性

String对象属性 说明 示例
length 字符串长度

‘abc’.length

得到3

__proto__ String.prototype <略>
constructor String <.略>

3. String原型方法

        字符串方法暂未发现有副作用(即暂未会发现改变源字符串的方法)

String对象方法 说明 示例
字符串查找
String.prototype.indexOf(serarchVal, start)

功能:指定的字符串值在字符串中首次出现位置(从前往后检索)

输入:string和number

输出:number | -1

'abbc'.indexof('b')

得到1

String.prototype.lastIndexOf(serarchVal, start)

功能:指定的字符串值最后出现位置(从后向前检索)

输入:string和number

输出:number | -1

'abbc'.lastIndexOf('b')

得到2

String.prototype.search(serarchVal)

功能:检索匹配searchVal的位置索引(此处修饰符g无效)

输入:RegExp | string

输出:number | -1

'abbc'.search(/b/)

得到1

String.prototype.includes(serarchVal, start)

功能:判断字符串是否包含指定的子串

输入:string和number

输出:boolean(即true | false)

'abbc'.includes('b',3)

得到false

String.prototype.starsWith(serarchVal, start)

功能:检测字符串是否以指定的子串开始

输入:string和number

输出:boolean(即true | false)

'abbc'.starsWith('ab')

得到true

String.prototype.endsWith(serarchVal, start)

功能:检测字符串是否以指定的子串结束

输入:string和number

输出:boolean(即true | false)

'abbc'.endsWith('bc')

得到true

String.prototype.match(regexp)

功能:根据regexp匹配子串,将所有匹配的字符串构成数组返回(有修饰符会返回所有匹配)

输入:RegExp | string

输出:Array | null

'afbgc'.match(/[abc]+/g)

得到['a','b', 'c']

字符串替换子串、重复、修剪空白
String.prototype.replace(pattern, replacement)

功能:用newVal替换匹配的子串(替换所以匹配的,正则表达式需要加修饰符g)

输入:RegExp | string, string | Function

输出:string

let str = 'My dream and her dream'

let newStr = str.replace(/dream/g, 'computer')

得到

'My computer and her computer'

String.prototype.replaceAll() <略> <略>
String.prototype.repeat(count)

功能:将字符串复制指定次数

输入:number

输出:string

<略>
String.prototype.trim()

功能:删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等

输入:无

输出:string

<略>

提取子串片段

String.prototype.slice(start, end)

功能:提取start到end的子串,但不包含end位置的字符,start和end可以负,但仍是从前往后截取子串,若未指定end,则到末尾

输入:numer, number

输出:string

let str = 'Hello World!';

let substr = str.slice(12, 2);

得到'He'

String.prototype.substring(from, to)

功能:提取from到to的子串,但不包含to位置的字符,若未指定to,则到末尾

输入:numer, number?

输出:string

let str = 'Hello World!';

let substr = str.substring(1, 2);

得到'e'

String.prototype.substr(start, length)

功能:提取从start下标开始的指定数目的字符

输入:number, number

输出:string

let str = 'Hello World!';

let substr = str.substr(1, 1);

得到'e'

字符串大小写
String.prototype.toLowerCase()

功能:将字符串转换为小写

输入:无

输出:string

‘ABC’.toLowerCase()

得到‘abc’

String.prototype.toUpperCase()

功能:将字符串转换为大写

输入:无

输出:string

‘abc’.toUpperCase()

得到'ABC'

String.prototype.toLocaleLowerCase()

功能:根据本地主机语言环境将字符串转换为小写

输入:无

输出:string

‘ABC’.toLocaleLowerCase()

得到'abc'

String.prototype.toLocaleUpperCase()

功能:根据本地主机语言环境将字符串转换为大写

输入:无

输出:string

‘abc’.toLocaleUpperCase()

得到'ABC'

Unicode编码值
String.prototype.charCodeAt(index)

功能:获取字符串指定索引位置index字符的Unicode编码值

输入:number

输出:number | NaN

Unicode编码值(0 - 65535),一个UTF-16码元(2字节)

‘Aa’.charCodeAt(0)

得到65

String.fromCharCode(n1,n2,......,nx)

功能:指定Unicode值(一个或多个UTF-16码元),返回字符串,字符串长度可能>1

输入:number

输出:string

String.fromCharCode(65)

得到'A'

String.prototype.codePointAt(index)

功能:获取字符串指定索引位置index字符的Unicode编码值,无(0 - 65535)范围限制

输入:number

输出:number | undefined

‘Aa’.codePointAt(0)

得到65

String.fromCodePoint(n1,n2,......,nx)

功能:指定Unicode值,返回字符串,字符串长度可能>1

输入:number

输出:string

String.fromCodePoint(65)

得到'A'

通用方法(隐式转换会默认调用)
String.prototype.valueOf()

功能:返回 String 对象的原始值

输入:无

输出:string

<略>
String.prototype.toString()

功能:返回一个表示 String 对象的值

输入:无

输出:string

<略>
基本不用的2个方法
String.prototype.concat()

使用模版字符` `

或+号拼接字符串

<略>
String.prototype.charAt() 使用[ ]替代,查找指定索引的字符 <略>

下一篇:【ECMAScript】Array对象属性和方法梳理和总结(第三篇)-CSDN博客

注:以上,如有不合理之处,还请帮忙指出,大家一起交流学习~

你可能感兴趣的:(ecmascript,前端,开发语言)