-1

私はこの疑問を持っています。このコードは、単語の最初の文字を大文字に変換することになっています

function ucFirst(str) {
    var newStr = str.charAt(0).toUpperCase();
    for (var i = 1; i < str.length; i++) {
        newStr += str.charAt(i);

    }

    return newStr
}
alert(ucFirst("john"));

これにより、コンソールに undefined とともに「John」が出力されます。

今、配列値を使用してまったく同じことを試しました

function ucFirst(str) {
    var newStr = str.str[0].toUpperCase();
    for (var i = 1; i < str.length; i++) {
        newStr += str.str[i];
    }
    return newStr;
}
alert(ucFirst("john"));

コンソールにこのエラーが表示されます"Cannot read property '0' of undefined"

なぜそうなのですか?

4

2 に答える 2

1
str.str[0].toUpperCase();

ただあるべき

str[0].toUpperCase();

そうでない場合は、console.log(str)正確に何strが何であるかを調べてみる必要がありますが、これはあなたの問題だと思います.

于 2013-09-02T18:12:53.887 に答える