使用数组处理 JavaScript 字符串 为什么它在控制台上打印“R”而不是“Z”
javascript string handling with array why it's print 'r' on console but not 'z'
var cun = function(cun){
cun[0] = 'z';
console.log(cun[0]);
return cun;
}
cun("ratul");
为什么在控制台上打印 r 而不是 z? 为什么我不能使用数组符号更改字符串?
字符串是不可变的。您无法更改它们。您必须为此创建一个新字符串。
function cun(str) {
var newString = 'z' + str.substring(1);
console.log( newString[0] );
return newString;
}
cun('ratul');
因为字符串在 JavaScript 中是不可变的(意味着你不能更改它们的值)。
您可以通过多种方式完成您尝试执行的操作,包括:
var cun = function(cun){
return "z" + cun.slice(1);
}
cun("ratul");
摘自《犀牛书》:
在 JavaScript 中,字符串是不可变的对象,这意味着 其中的字符不得更改,并且对它们的任何操作 字符串实际上会创建新字符串。字符串由 引用,而不是按值。通常,当对象由 引用,通过一个引用对对象所做的更改将是 通过对对象的所有其他引用可见。因为字符串 无法更改,但是,您可以对 字符串对象,不用担心字符串值会更改,没有 你知道的
您可以尝试:
String.prototype.replaceAt=function(index, character) {
return this.substr(0, index) + character + this.substr(index+character.length);
}
var hello="ratul";
alert(hello.replaceAt(0, "z"));
这是工作演示
相关文章:
- 按压“;输入“;将值打印到控制台日志
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 打印javascript控制台的堆栈跟踪
- 打印到控制台时为NaN,但typeof为数字jquery
- 为什么控制台.log(true,' ')打印真“ ”
- system.err风格的控制台以javascript打印
- 如何做if/else语句并使用控制台.log打印出来
- 谷歌浏览器控制台,打印图像
- Grails:多个加载ajax调用,但只有一个打印到控制台
- page.evaluate() 未打印控制台消息
- 它将打印控制台.log(1+ + “2”)
- Selenium NodeJS将cookie打印到控制台
- 使用javascript在HTML的输出窗口中打印控制台消息
- 如何将52个随机生成的数字打印到控制台
- jQuery显示函数打印到控制台
- 如何在控制台.log中打印 JSON 数据
- js 如何将对象名称打印到控制台
- 打印机.js未打印到控制台
- Node.js打印控制台输出两次
- 否则,如果不打印控制台值