js字符串方法 【老是记不住,写在博客,方便查找】

substring()和substr()

这两个家伙笔者老是傻傻分不清

相同点:

1.当只填写一个合法参数(索引)的时候,都是以该索引为起点,截取至整个字符串;
2.都不会修改原来的字符串;

var str1 = 'abcdefg';
console.log( str1.substring(1) ) // 结果是: ‘bcdefg’
console.log( str1.substr(1) ) //结果也是 :’bcdefg‘
不同点:

- substring( startIndex,endIndex)

var str1 = 'abcdefghijk';
console.log( str1.substring(1,6) )  //bcdef   开始的索引,和结束的索引的前一个位置
  • substring( )里的两个参数分别是 : 开始的索引,和 结束的索引
  • 它不会修改原来的字符串,而是会返回一个 ‘填入的参数区间的字符串
  • 不过要注意的是,结束的索引不包括结束索引本身,而是结束索引的前一个位置
  • 所以笔者会这样去记它的结果表现: substring( startIndex,endIndex-1 )

- substr( startIndex,length )

  • substr( )里的两个参数分别是 : 开始的索引,和 开始索引为起点选择的长度(个数)
var str2 = 'abcdefghijk';
console.log( str2.substr(2,6) )  //结果是:cdefgh

字符串和数字,字符串和字符串的比较

console.log( “20” > 100 ) == > false;
console.log( “20” > “100” ) == >true;

(1)字符串和数字进行比较的时候,会把 字符串Number( )一下,在进行两边比较
(2)字符串和字符串比较的时候,两边会用 charCodeAt( ) 进行转码成ASCII码 进行比较

注意的是:当字符串与字符串进行比较的时候,大于9 以后的字符串数字,会以开头第一个字符的ASCII来赋值。

所以你会发现 “20”.charCodeAt() ===> 50; 50其实对应的 字符数字值是 2
而 “100”.charCodeAt() ===> 是49; 49对应的字符数字值是 1
所以 : console.log(“20”>“100”) 结果是true!

“xxx”.charCodeAt() 还有个反向方法,即根据某个ASCII码,获取到对应的字符串值

: String.fromCharCode(ASCII CODE)

比如

console.log(String.fromCharCode(49))

打印结果是: 字符数字 1

猜你喜欢

转载自blog.csdn.net/weixin_37820744/article/details/86592784
今日推荐