3つの質問があります。ありがとうございました!JavaScriptのTypeError例外に関する質問
最初の質問:
のJavaScriptコードは "例外TypeError" 例外が発生しますか?
その他の質問:
私は以下のコードました:
<!DOCTYPE html>
<meta charset="utf-8">
<title>An HTML5 document</title>
<script>
var str = 'abc'; // str's type is string, not object
// Syntax: Object.getPrototypeOf(object)
alert(Object.getPrototypeOf(str)); // Uncaught TypeError: Object.getPrototypeOf called on non-object
// Syntax: prototype.isPrototypeOf(object)
if (Object.prototype.isPrototypeOf(str)) { // false
alert('true');
} else {
alert('false');
}
</script>
方法getPrototypeOf()
とisPrototypeOf()
は両方とも型がオブジェクトである必要があり、パラメータを必要としています。そしてstr
のタイプは文字列です。
なぜgetPrototypeOf
メソッドがTypeError例外をスローし、isPrototypeOf
メソッドがエラーをスローしないのですか?
str
のタイプがオブジェクト(var str = new String('abc')
)の場合、Object.prototype.isPrototypeOf(str)
の結果はtrue
です。しかし、上記のコードの結果はfalse
です。 isPrototypeOf
メソッドのパラメータとして使用すると、str
が文字列からオブジェクトに自動的に変換されないのはなぜですか?
ありがとうございました!
文字列コンストラクタ(str = new String( 'abc'))を使用して "str"文字列を作成して、TypeErrorを取得しないようにする必要があります。 –