JavaScript 字符串中特定字符赋值
今天对字符串中字符进行赋值的时候,我按照c++的习惯,对字符串中字符直接赋值,但是输出后发现,字符串没有发生变化,就试验了一下,原来 Js 不可以直接对字符进行赋值!!!
如果想要对字符串中特定的字符进行赋值的话,做法如下:
let str = "Hello World!";
str[0] = 'a';//错误做法,对str没有影响
console.log(str);//输出仍为 Hello World!
//要想获取到字符串的特定字符,需要用到charAt()方法 或者 通过str[index]来获取
console.log(str.charAt(0));// H
console.log(str[0]);// H
//然后对想要改变的字符进行赋值,需要用到 replace()方法
console.log(str.replace(str.charAt(0),'a'));// aello World!
console.log(str.replace(str[0],'a'));// aello World!
//需要注意:replace()方法返回的是一个新的字符串,对原字符串没有影响,
//所以如果想改变原字符串的话,需要对原字符串进行赋值
str = str.replace(str.charAt(0),'a');
console.log(str);// aello World!
str = str.replace(str[0],'a');
console.log(str);// aello World!