一、String的字符方法charAt()
和charCodeAt()
/**
charAt():接收一个参数,返回参数给定位置的那个字符。
**/
var str = 'abcdefghijklmn';
console.log(str.charAt(3)) // d;
console.log(str.charAt(-3)) // '' 返回空,charAt的参数不支持负数
/**
charCodeAt():如果你不想返回一个字符,而是想返回字符的编码,就可以用charCodeAt()方法。
**/
var str = 'abcdefghijklmn';
console.log(str.charCodeAt(3)) // 100 100就是小写字母d的字符编码
/**
fromCharCode():String本身构造函数的静态方法,接收一个或多个字符编码参数,然后将它们转成字符串。
这个方法与charCodeAt()执行相反的操作
**/
var str = String.fromCharCode(104, 101, 108, 108, 111);
console.log(str) // 'hello'
二、String的操作方法
1.concat()
: 接收一个或多个参数,用于将一个或多个字符串拼接起来,返回拼接后的新字符串。数组也有这个方法,是将传入的参数从数组尾部push到数组里面。
var str = 'my';
var res = str.concat('name', 'is', '神眼李青')
console.log(res); // mynameis神眼李青
2.slice()、substr()、substring()
: 这三个方法都会返回一个被操作字符串的一个子字符串,且都接受一个或两个参数,第一个参数指定字符串开始的位置(必填),如果不传第二个参数,则将字符串尾部作为结束的位置。
/**
slice(start, stop):
第二个参数指结束的位置(含头不含尾)
参数为负值时,会将负值与字符串的长度相加得到开始和结束位置
**/
var str = 'abcdefghijklmn';
//不传第二个参数,至字符串的末尾结束
console.log(str.slice(3)); // defghijklmn
//字符串 5 的位置是 f 含头不含尾
console.log(str.slice(3, 5)); // de
//第一个参数和第二个参数相同返回空的字符串
console.log(str.slice(3, 3)); // ''
//参数为负数,会将负值与字符串的长度相加得到开始和结束位置
console.log(str.slice(-7, -3));// hijk
//如果start比stop大,则不会互换,返回空的字符串
console.log(str.slice(7, 3));// ''
/**
substr(start, length):
第二个参数指要返回新字符串的长度
**/
var str = 'abcdefghijklmn';
console.log(str.substr(3)); // defghijklmn
//从 3 的位置开始,截取 2 的长度
console.log(str.substr(3, 2)); // de
// start为负数,会将负值与字符串的长度相加得到开始位置
console.log(str.substr(-7, 3)); // hij
// 如果length为负数或者为零,都返回空的字符串
console.log(str.substr(3, 0)); // ''
console.log(str.substr(3, -1)); // ''
/**
substring():
第二个参数指结束的位置(含头不含尾)
参数为负值时,那么该方法会先将负数变为零。
**/
var str = 'abcdefghijklmn';
//不传第二个参数,至字符串的末尾结束
console.log(str.substring(3)); // defghijklmn
//截取以 3 的位置开始,5 的位置结束,含头不含尾
console.log(str.substring(3, 5));// de
//如果start比stop大,该方法在执行前会先交换两个参数
console.log(str.substring(5, 3));// de
//如果两个参数有负数,该方法在执行前,会将负数变为零
console.log(str.substring(-2, 3));// abc
console.log(str.substring(3, -2)); // abc