Javascript语法函数问题

Javascript语法函数问题,javascript,function,Javascript,Function,为什么下面的代码不应该设置为小写而导致第二个if语句失败 var title = 'RANDOM_LETTERS'; if(title.toLowerCase() == 'random_letters') { //This will fire } if(title == 'RANDOM_LETTERS') { //This will still fire as the variable was not saved to lowercase } 您没有更改变量的值。您可以

为什么下面的代码不应该设置为小写而导致第二个if语句失败

var title = 'RANDOM_LETTERS';
if(title.toLowerCase() == 'random_letters')
{
     //This will fire
}

if(title == 'RANDOM_LETTERS')
{
      //This will still fire as the variable was not saved to lowercase
}

您没有更改变量的值。您可以通过在每一步打印出变量的值来证明这一点

var title = 'RANDOM_LETTERS';

console.log(title);
// Here, title is "RANDOM_LETTERS"

if(title.toLowerCase() == 'random_letters')
{
    console.log(title);
    // Here, title is still "RANDOM_LETTERS"
}

console.log(title);
// Here, title is "RANDOM_LETTERS"

if(title == 'RANDOM_LETTERS')
{
    //We get to this line, our title is still "RANDOM_LETTERS"
}

根据docs(),使用此方法的字符串的值不受影响。

您没有更改变量的值。您可以通过在每一步打印出变量的值来证明这一点

var title = 'RANDOM_LETTERS';

console.log(title);
// Here, title is "RANDOM_LETTERS"

if(title.toLowerCase() == 'random_letters')
{
    console.log(title);
    // Here, title is still "RANDOM_LETTERS"
}

console.log(title);
// Here, title is "RANDOM_LETTERS"

if(title == 'RANDOM_LETTERS')
{
    //We get to this line, our title is still "RANDOM_LETTERS"
}

根据docs(),使用此方法的字符串的值不受影响。

所以它只是说使用此变量使其小写并进行比较,但不要更改变量的实际值。是的。根据文档(请参阅),它返回一个新字符串,并且不修改现有字符串。其他语言可能会通过指针修改现有字符串,但Java完全是按值传递的(准备好一个好的ol'stackoverflow参数);调用title.ToLowerCase()时,您会得到一个全新的字符串(已为该字符串分配了内存)。你还有一段关于“标题”的记忆。如果您想存储title.toLowerCase()的值,应该执行title=title.toLowerCase()。哦,糟了。我注意到它被标记为javascript,而不是java。同样的概念也适用,但我会适当地编辑我的答案。所以它只是说,取这个变量,使其小写并进行比较,但不要改变变量的实际值。是的。根据文档(请参阅),它返回一个新字符串,并且不修改现有字符串。其他语言可能会通过指针修改现有字符串,但Java完全是按值传递的(准备好一个好的ol'stackoverflow参数);调用title.ToLowerCase()时,您会得到一个全新的字符串(已为该字符串分配了内存)。你还有一段关于“标题”的记忆。如果您想存储title.toLowerCase()的值,应该执行title=title.toLowerCase()。哦,糟了。我注意到它被标记为javascript,而不是java。同样的概念也适用,但我会适当地编辑我的答案