ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptの弱い型とはどういう意味ですか?

JavaScriptの弱い型とはどういう意味ですか?

青灯夜游
青灯夜游オリジナル
2021-06-22 16:30:385628ブラウズ

JavaScript における弱い型付けとは、データ型を無視でき、変数にさまざまなデータ型の値を割り当てることができることを意味します。 JavaScript は弱い型指定の言語であり、変数の型の暗黙的な変換や強制的な型変換などが可能です。たとえば、文字列や値は自動的に変換できますが、強く型指定された言語では通常これが許可されません。

JavaScriptの弱い型とはどういう意味ですか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

厳密に型指定された言語:

データ型定義を強制する言語。つまり、変数に特定のデータ型が割り当てられると、キャストされない限り、常にそのデータ型になります。たとえば、整数変数 a を定義した場合、プログラムは a を文字列型として扱うことはできません。強く型指定された定義言語は、タイプセーフな言語です。

弱い型指定言語:

データ型を無視できる言語。これは、変数にさまざまなデータ型の値を割り当てることができる、厳密に型指定された定義言語の逆です。

弱い型指定言語では、変数の型の暗黙的な変換や強制的な型変換などが許可されます。たとえば、文字列と値は自動的に変換できますが、強い型指定言語では一般にこれが許可されません。

js の弱い型の具体化

一般的なルールとして、制約が強いほどエラーが発生しにくくなりますが、プログラムを書くときはさらに面倒です。 JavaScript では制約が比較的弱いため、この種のエラーが発生しやすくなります: 最も単純な例:

 var a =200;
 var b ="1";
 var c= a + b;

c は 201 であると予想されるかもしれませんが、実際には "2001" です。このエラーが発生します。強く型付けされた言語では、中心は決して表示されません。ただし、JavaScript にはこれらの制約がないため、数値型と文字列型を簡単に連結できます。

別の例は次のとおりです。

var a = '11';
a = a - '';
alert(typeof a);// -->number

"-" は、単項演算子 (負の値) または二項演算子 (減算演算) です。

インループ ステートメント(if、while)、Object オブジェクトは BOOLEAN 値から暗黙的に変換できます。

var obj = {name:'jack'}
if(obj){
    //do more
}

見つけるのがさらに難しいのは、alert() 関数です。

String.prototype.fn = function(){return this};
var a = 'hello';
alert(typeof a.fn()); //-->object
alert(a.fn()); //-->hello

これは現在のクラスのインスタンス オブジェクトとして理解できることがわかり、オブジェクトなので、typeof a.fn() は当然オブジェクトを返します。

キーは最後のalert(a.fn())です。a.fn()が返すものは明らかにオブジェクトですが、表示のために暗黙的に文字列「hello」に変換されます。

【関連する推奨事項: JavaScript 学習チュートリアル

以上がJavaScriptの弱い型とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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