字符串常用方法
都不会影响原字符串:因为字符串是不可变的!
增删改:
replace,replaceAll
增:
repeat,concat,padStart,padEnd
删:
substr,substring,slice,trim,trimStart,trimEnd
改:
split,toLowerCase,toUpperCase,toLocaleLowerCase,
toLocaleUpperCase,
String.fromCharCode()
查:
valueOf,at,charAt,charCodeAt,indexOf,lastIndexOf,
search,includes,match,startsWith,endsWith
charCodeAt与fromCharCode
js
'ABC'.charCodeAt(2) // 67 返回指定索引位的 ASCII 码
String.fromCharCode(65, 66, 67) // 'ABC' 返回 ASCII 码对应的字符
slice 与 substring区别
slice 与 substring
slice 结束索引大于等于 0 时且小于起始索引时,返回空;结束索引大于0从前面计数,小于0从后面计数的原则。
substring 中如果结束索大于起始索引,则会自动将其调换后截取,当参数小于0 时按0处理。
js
const y = 'www.map.baidu.com'
console.log(y.slice(4, 11)) // map.bai
console.log(y.slice(11, 4)) // ''
console.log(y.slice(3, -4)) // .map.baidu
console.log(y.slice(3, 0)) // ''
console.log(y.slice(4)) // map.baidu.com
console.log(y.substring(4, 11)) // map.bai
console.log(y.substring(11, 4)) // map.bai
console.log(y.substring(3, -4)) // www
console.log(y.substring(3, 0)) // www
console.log(y.substring(4)) // map.baidu.com
valueOf 与 toString 的异同
共同点
都是对象的方法,用于将对象转换成可操作的基本类型值。
valueOf | toString | |
---|---|---|
返回值 | 原始值或对象本身 | 对象转换成可阅读的字符串 |
能否接受参数转换基数 | 不可以 | 可以,返回不同进制的字符串形式的数值 |
Date类型返回 | 现在到1970年1月1日的毫秒数 | 时间的字符串 |
undefined
和 null
都没有toString()
和 valueOf()
方法
Object.prototype.toString.toString()
能够很好的判断数据的类型及内置对象
js
Number(10).toString(2) // '1010'
Number(10).valueOf(2) // 10
new Date().toString() // 'Thu Mar 02 2023 11:39:56 GMT+0800 (中国标准时间)'
new Date().valueOf() // 1677728421211