我最近开始学习javascript,这是一个实践问题的答案(编写一个函数,用字符串交换每个字母的大小写):
var swapCase = function(letters){
var newLetters = "";
for(var i = 0; i<letters.length; i++){
if(letters[i] === letters[i].toLowerCase()){
newLetters += letters[i].toUpperCase();
}else {
newLetters += letters[i].toLowerCase();
}
}
console.log(newLetters);
return newLetters;
}
var text = "Life is 10% what happens to you, and 90% of how you REACT to it";
var swappedText = swapCase(text);产出:
"lIFE IS 10% WHAT HAPPENS TO YOU, AND 90% OF HOW YOU react TO IT"这段代码功能完美,完全可以完成它需要做的事情,但我对letters的使用感到困惑。这不是我的密码。
参数letters没有链接到任何地方,这就是让我困惑的地方。我相信它代表每一封信,但它的定义是什么呢?我对Python很熟悉,所以我期待类似于for i in list的东西。
谢谢你的进阶。
发布于 2015-07-24 15:57:52
当您将text放入参数中时,text在函数中变成letters。
var swapCase = function(letters){ //anything you put as a parameter in this function will become 'letters'
var newLetters = "";
for(var i = 0; i<letters.length; i++){
if(letters[i] === letters[i].toLowerCase()){ //letters[i] represents the character in the 'i' position (which is assigned in the for loop) in the string you added as a parameter.
newLetters += letters[i].toUpperCase();
}else {
newLetters += letters[i].toLowerCase();
}
}
console.log(newLetters);
return newLetters;
}
var text = "Life is 10% what happens to you, and 90% of how you REACT to it";
var swappedText = swapCase(text); // You are adding the text string as a parameter in the function, thus it becoming the letter variable inside the function发布于 2015-07-24 15:56:10
letters是一个函数参数,因此,基本上当您调用swapCase(文本)时,该函数接受text并将其分配给letters。如果您调用没有像这个swapCase()这样的参数的函数,那么基本上将undefined传递给这个函数,这就是分配给letter。您可以在函数开始时进行快速检查,以检查这一点。
if(letters === undefined) return false;发布于 2015-07-24 15:54:58
参数字母没有链接到任何地方。
它是在这里定义的- function(letters){ -作为函数的参数名。
在这里调用函数时,传递一个值-- swapCase(text); --其中text是在上面一行中定义为字符串的变量。
我相信它代表每一封信,但它的定义是什么呢?
是一根绳子。您可以使用方括号符号访问字符串中的字符。
https://stackoverflow.com/questions/31614765
复制相似问题