.toUpperCase()不是函数

noo*_*oor 3 javascript

当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)

Ora*_*Dar 6

您可以先申请.toString(),然后使用.toUpperCase()

if (name === name.toString().toUpperCase())
Run Code Online (Sandbox Code Playgroud)


Den*_*ret 5

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)

但这种多态性通常被认为是一种不好的做法.