JS从零开始(16)

95 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情

访问指定位置的字符

方法解释说明
charAt()返回指定位置的字符
str[]返回指定位置的字符
charCodeAt()返回指定位置的字符的Unicode编码

注意:这里charAt()str[]两个方法效果是一样的,区别不大

如:

charAt()和str[]

var str = 'abcdefghijk';
console.log(str.charAt(3));//d
console.log(str[3]);//d
//依次打印所有的字符   
//charAt()方法
for (var i = 0; i < str.length; i++) {
    console.log(str.charAt(i));
}
//str[]方法
for (var i = 0; i < str.length; i++) {
    console.log(str[i]);
}

这里有个小细节,我们使用charAt()方法时,如果没有在字符串中找到想要的字符,那么该方法便会返回一个空字符串,但是我们使用str()方法也没有找到想要的字符,那么返回的便是undefined

charCodeAt()

这个方法可以返回字符串的Unicode编码,而在实际开发中,通常用这个方法来判断用户按下的是哪个键

var str = 'abcdefghijk';
console.log(str.charCodeAt(3));//100
console.log(str.charCodeAt(7));//104

这里给一个思考题,就是如何通过charCodeAt()方法来判断用户按下的是否是英文? 提示:英文字符的Unicode编码在0~127之间,其他均为非英文,可以用if语句实现。

字符串切片

方法解释说明
slice()返回截取指定的字符串
substring()返回截取指定的字符串
substr()返回截取指定的字符串(参数不同)

slice()

字符串切片一般都是传两个参数,一个是开始索引,另一个是结束索引,slice()方法截取的字符串左闭右开

如:

var str = 'abcdefghijk';
console.log(str.slice(3, 6));//def
console.log(str.slice(3));//defghijk
console.log(str.slice(-3));//ijk
console.log(str.slice(3, -3));//defgh
console.log(str.slice(6, 3));//空字符串
console.log(str.slice(3, 3));//空字符串
console.log(str.slice(-3, 3));//空字符串

需要注意的点:

  • slice()方法截取的片段是左闭右开
  • 只传一个参数的时候,若该参数是正数则从该下标起(包括该下标所对应的字符)一直截取到最后,若为负数则只截取该字符串最后负数个的片段,比如说-3,那么就截取该字符串最后三个字符ijk。
  • 传两个参数时,若两个参数均为正数,则左闭右开,若前面的参数为正,后面的为负,则返回前面参数对应下标位置的字符到该字符串末尾第负数个(不包括第负数个字符)之间的内容,如console.log(str.slice(3, -3));//defgh
  • 返回为空的三种情况
    • 两个参数均为正且第一个参数大于第二个参数
    • 前面的参数为负,后面的参数为正
    • 两个参数相同