当name全部为大写时,该函数应回呼给用户.例如,当name为"JERRY"时,函数应返回字符串"HELLO,JERRY!" 控制台记录错误:.toUpperCase()不是函数.
var hello = "Hello, ";
function greet(name) {
if (name == null) {
console.log(hello + "my friend")
} else if (name == name.toUpperCase()) {
console.log(hello.toUpperCase() + name.toUpperCase())
} else {
console.log(hello + name);
}
}
var names = ["jack", "john"]
greet(names);Run Code Online (Sandbox Code Playgroud)
您可以先申请.toString(),然后使用.toUpperCase():
if (name === name.toString().toUpperCase())
Run Code Online (Sandbox Code Playgroud)
names是一个数组.数组没有这样的功能.
您可能想要greet在数组的每个元素上调用该函数:
names.forEach(greet);
Run Code Online (Sandbox Code Playgroud)
如果您希望greet函数接受数组作为参数,那么您可以这样做
function greet(name) {
if (Array.isArray(name)) {
name.forEach(greet);
return;
}
...
Run Code Online (Sandbox Code Playgroud)
但这种多态性通常被认为是一种不好的做法.