字符string
字符串用于保存文本形式的数据。数据是软件的核心,我们经常会对字符串进行一系列操作,比如查询长度,下标,拼接,提取字符串等等。
String全局对象是一个用于字符串或一个字符序列的构造函数。不要傻傻分不清string和String。
语法: 字符串字面量采用单引号或者双引号。比如'zzjyr',"zzjyr"。也可用构造函数new String(任何可被转化成字符串的值)。
es6里面新增了模板字面量(本质也是字符串字面量)`hi mygirl${her}`
常用的转义字符(特殊功能的字符可以通过转义字符放入字符串中):
\' 转为单引号
\n 转为换行
\'' 转为双引号
\\ 转为反斜杠
\uXXX转为unicode码
注意: js字符串是不区分单引号和双引号
长字符串可通过+号进行拼接,或者在字符串换行时紧挨着使用\也行。
- 字符串比较 使用比较操作符(
>, <, >=, <=)
区别基本字符串和字符串对象
基本字符串包括通过单引号或者双引号定义的字符串字面量和直接调用String方法(没有new)生成的字符串。js会自动将基本字符串转化为字符串对象,基本字符串只有转换之后才能使用字符串对象的方法。
-
使用
valueOf()可将字符串对象转换为基本字符串 -
String.fromCharCode()通过一串Unicode码创建字符串
String实例
String.prototype.constructor 是 用于创造对象的原型对象的特定函数,就是String 构造函数
String方法
.charAt()返回特定位置的字符。 从字符串获取单个字符,两种方式
return 'zzjyr'.charAt[2] // return 'j'
return 'zzjyr'[1] // return 'z'
要注意的是使用括号访问字符串不能对字符串进行删除,添加
.charCodeAt()返回表示给定索引字符串的Unicode(不清楚Unicode码的可以去百度它与utf-8的区别 然后一目了然)码值.concat()连接两个字符串文本,并返回一个新的字符串.includes()判断一个字符串里是否包含其他字符串 返回布尔值.endsWith()判断一个字符串是否以给定的字符串结尾,结果返回布尔值.indexOf()从字符串对象里返回首个被发现的给定值的索引值,如果没找到就返回-1.lastIndexOf()从字符串对象中返回最后一个被发现的给定值的索引值,如果没找到就返回-1.match()使用正则表达式与字符串相比较.normalize()返回调用字符串值的Unicode标准化形式.padStart()在当前字符串头部填充指定的字符串,直到达到指End定的长度。返回一个新的字符串.padEnd()在当前字符串尾部填充指定的字符串,直到达到指定的长度。返回一个新的字符串.repeat()返回指定字符串的指定数量副本的新字符串.slice()截取一个字符串区域 返回一个新的字符串 不会改动原字符串
str.slice(beginIndex[,endIndex])
'zzjyr'.slice(0) // 直接复制字符串 return 'zzjyr'
'zzjyr'.slice(1,3) // return 'zj'
'zzjyr'.slice(1,-2) // return 'zj'
如果endIndex是负值,则被看作strLength + endIndex
.split()通过分离字符串成子串,将字符串对象分割成字符串数组
'zzjyr'.split('') // return ['z','z','j','y','r']
'j-y-r'.split('-') // return ['j','y','r']
.startsWith() 判断当前字符串是否以另外一个给定的字符串开头,结果返回布尔值
.substr(start[,length])返回一个字符串中从指定位置开始到指定字符数的字符
'zzjyr'.substr(1,3) // return 'zjr'
.substring(indexStart[,indexEnd])返回在字符串中指定两个下标之间的字符
'program'.substring(1,4) // return 'rog'
'program'.substring(1) // return 'rogram'
.toLowerCase()将字符串转为小写并返回.toUpperCase()将字符串转为大写并返回.toString()返回指定对象的字符串形式。String对象覆盖了Object对象的toString方法.trim()从一个字符串的两端删除空格.valueOf()返回一个String对象的原始值。该值等同于.toString()方法
标准内置对象
即全局的对象(global objects),指全局作用域里的对象。和全局对象不是一个概念。全局作用域包含了全局对象的属性,还有它继承来的属性。以下是分类。
值属性
这些全局属性返回一个简单值 是没有自己的属性和方法的
InfinityNaNundefinednull字面量globalThis
函数属性
全局函数可之间调用 不需要在调用时指定所属对象 执行后会之间将结果返回给调用者
eval()会将传入的字符串当js代码来执行isFinite()
if (isFinite(10/x) { return 'Finite' }
isNaN()parseFloat() / parseInt()-decodeURI() / encodeURI()
基本对象
基本对象时定义或使用其他对象的基础。包括一般对象,函数对象,错误对象
ObjectFunctionBooleanSymbol会返回symbol类型的值ErrorEvalErrorRangeErrorReferenceErrorTypeErrorURIError
数字和日期对象
用来表示数字,日期和执行数学计算的对象
NumberMathDate
字符串
用来表示和操作字符串的对象
StringRegExp
可索引的集合对象
表示按照索引值来排序的数据集合
Array
使用键的集合对象
这些集合对象在存储数据时会使用到键,支持按照插入顺序来迭代元素
MapSetWeakMapWeakSet
结构化数据
这些对象用来表示和操作结构化的缓冲区数据
JSON
控制抽象对象
PromiseGeneratorIterator
反射
ReflectProxy
其他
arguments是一个对应于传递给函数的参数的类数组对象