ホームページ > ウェブフロントエンド > jsチュートリアル > 知っておきたいJavaScript入門:「リテラルと対応する型」_javascriptスキル

知っておきたいJavaScript入門:「リテラルと対応する型」_javascriptスキル

WBOY
リリース: 2016-05-16 17:35:50
オリジナル
1269 人が閲覧しました

コード例:

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

var date1 = new Date( 2013,1,1);
var date2 = new Date(2013,1,1);
date1 == date2; //実行結果は false
date1 === date2; //実行結果は false

var num1 = new Number(10);
var num2 = new Number(10);
num1 == num2; //実行結果は false
num1 === num2; //実行結果は false
num1 == 10; //実行結果は true
10 == num2; // 実行結果は true
== 10; //実行結果は false
10 === num2; //実行結果は false

このトピックを書こうと思った理由は、予期せぬエラーが頻繁に発生するためです。この問題は、JavaScript を使用するほぼすべての開発者が日付型を比較す​​るときに発生します。

一体なぜ
ルール 1
JavaScript では、次のタイプのリテラル (値の型) を除き、すべてがオブジェクト (参照型) です: ブール値 (例: true)、数値 (例: 100) 、未定義、null。

ルール 2
「==」または「===」を使用して参照型を比較す​​る場合、その 2 つが同じメモリ アドレスを指していない限り、false が返されます。

コード例

コードのコピー コードは次のとおりです。

var date1 = new Date(2013 ,1,1);
var date2 = new Date(2013,1,1);
date1 == date2; //実行結果は false
date1 === date2; / /実行結果は false

画像表現

ルール 3

「==」を使用して参照型と対応する値型との比較演算を行う場合、まず型変換が行われ、その後に比較が行われます。

コード例

コードのコピー コードは次のとおりです。

var num1 = new Number(10 );
var num2 = new Number(10);
num1 == 10; //実行結果は true
10 == num2; //実行結果は true

規則 4: 参照型と対応する値型の間で比較演算「===」を使用した場合、常に false が返されます。

コード例

コードのコピー コードは次のとおりです。

var num1 = new Number(10 );
var num2 = new Number(10);
num1 === 10; //実行結果は false
10 === num2 //実行結果は false

特殊な文字列型
文字列は特殊な参照型です。JavaScript インタプリタは 2 つの同一のリテラルに遭遇すると、それらに同じメモリ アドレスを割り当てます。また、JavaScript 自体も値のセマンティクスを維持します。作成後に変更されます)。
コード例
コードのコピー コードは次のとおりです。

var str1 = new String(' hello');
var str2 = new String('hello');
var str3 = 'hello';
var str4 = 'hello';

str1 == str2 // ポインティング結果は false
str1 === str2 //ポインティング結果は false
str3 == str4 //ポインティング結果は true
str3 === str4 //ポインティング結果is true
str2 = = str4 //ポインティング結果は true
str2 === str4 //ポインティング結果は false

画像表現

値型のメモリレイアウト

コード例

<span style="COLOR: #008080">1</span> <span style="COLOR: #0000ff">var</span> num1 = 1<span style="COLOR: #000000">;</span><span style="COLOR: #008080">2</span> <span style="COLOR: #0000ff">var</span> num2 = 1;
ログイン後にコピー

写真

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート