ホームページ  >  記事  >  ウェブフロントエンド  >  TypeOf_javascript スキルに関するこれらの知識ポイントをご存知ですか

TypeOf_javascript スキルに関するこれらの知識ポイントをご存知ですか

WBOY
WBOYオリジナル
2016-05-16 15:14:331287ブラウズ

昨日、同僚とコーディングに関する質問をしました。それはとても面白かったので、typeof の知識をまとめたいと思います。何か間違っていることがあれば、ご指摘ください。一緒に進歩していきます。

コードは次のとおりです:

<!DOCTYPE html>
<head>
<title>typeof</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<script>
var a= a||null; 
var b= c||null; 
var c= typeof f;
console.log(a);
console.log(b);
console.log(c);
</script>
</body>
</html>

では、このコードを実行すると、Chrome デバッガーは何を出力するでしょうか?

レンダリングをご覧ください


この結果はなぜ起こるのでしょうか?

まず、上の図の 2 つの null を分析します


JavaScript はコードを実行する前に事前解析 (ホイスティング) を行うためです。

ホイスティングとは何ですか?

つまり、JavaScript では、関数内の任意の場所で複数の var ステートメントを宣言でき、それらのステートメントは関数の先頭で宣言されたかのように機能し、var で宣言された変数の初期値として unknown が与えられます。この動作はホイスティングと呼ばれます。

したがって、上記のコードを実行する前に、JavaScript は最初にすべての var 変数 (a、b、c) を事前解析 (ホイスト) します。したがって、結果は null になります。

c||null は真実です。

もう一度見てみましょう。なぜ typeof f が未定義なのでしょうか? f が定義されていない場合、エラーが報告されるべきではないでしょうか?

はい、未定義の変数を使用すると、ブラウザはエラーを報告します。

ただし、typeof を使用して未定義の変数を決定すると、unknown が返されます。

typeof が値の型を決定するために使用するメカニズムは何ですか?概要は次のとおりです。

1. 数値型の値の場合、typeof は数値を返します。 注: NaN は JavaScript で特殊な非数値を表すため、数値型でもあります。

2. 文字列型の値の場合、typeof は文字列を返します。

3. ブール型値の場合、typeof はブール値を返します。

4. オブジェクト、配列、null の場合、typeof は object

を返します。

5. 関数型の場合、typeof は function

を返します。

6. オペランドが定義されていない (存在しない、または値が割り当てられていない) 場合は、unknown が返されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。