ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript での値の型変換の概要_javascript のヒント

JavaScript での値の型変換の概要_javascript のヒント

WBOY
リリース: 2016-05-16 16:22:46
オリジナル
976 人が閲覧しました

JavaScript で -、*、/、==、!= などの演算を実行するときに、演算子の左側と右側の値の型が予期される型と一致しない場合、JavaScript はその値を変換します。演算子の両側を期待される型に変更して、操作を再実行します。期待値の型が文字列の場合、JavaScript は値を文字列に変換します。期待値の型が数値の場合、JavaScript は値を数値に変換します (たとえば、数値に変換できない場合は NaN が返されます)。 :

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

console.log(10 "猫");//猫 10 匹
console.log(10 * " 猫");//NaN, " 猫" は NaN
に変換されます console.log(10 "2");//102
console.log(10 - "2");//8
console.log(10 / "2");//5
console.log(10 * "2");//20
console.log(10 * " 2");//20
console.log("10" * "2");//20

値の型変換ルール

JavaScript の値の変換ルールについては、『JavaScript – The Definitive Guide』の表 3-2 を参照してください。より注目すべき場所は次のとおりです:

1. 未定義を数値に変換した結果は NaN になります。
2. null を数値に変換した結果は 0 になります。
3. 空文字列「」を数値に変換した結果は 0 になります。
4. -0を文字列に変換した結果は「0」になります。
5. 空の配列 [] を数値に変換した結果は 0 になります。
6. 数値メンバーが 1 つだけある配列 ([9] など) を数値に変換すると、結果は数値 (9) になります。

JavaScript が文字列を数値に変換する場合、2 つの興味深いルールがあります:

1. JavaScript は文字列の先頭と末尾にある空白文字を削除してから変換するため、「42」のような文字列は数字の 42 に正常に変換されます。

2. 先頭と末尾の空白文字を削除した後、文字列に数字以外の文字が含まれている場合、文字列は NaN に変換されます。例: 「3 m」は NaN に変換されます。

例:

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

console.log(10 * " 3 ");//30
console.log(10 * "3 m");//NaN, "3 m" は NaN
に変換されます

値の型の変換と比較

JavaScript では、等号演算子 (==) の使用には値の型の変換が含まれます。== 演算子の両側の値の型が一致しない場合、JS は判断を下す前にそれらを一貫した型に変換します。異なる型の 2 つの値は型変換後に同等になる可能性がありますが、これはそれらに対して == 演算子を使用した結果が true でなければならないという意味ではないことに注意してください。簡単な例としては、未定義と false があります。未定義をブール型に変換した後、結果はたまたま false になりますが、実際には unknown==false の結果は false になります。

明示的な型変換

JavaScript の自動型変換を使用すると非常に便利ですが、コードの保守性などの問題が発生しやすくなります。プログラム コードを明確にして曖昧さを減らすために、JS プログラムでは明示的な型変換が使用されることがあります。

コードをコピー コードは次のとおりです:
Number("3")//3
文字列(false)//"false"
Boolean([])//true

ほとんどの場合、明示的な型変換の結果は JS の自動型変換の結果と一致しますが、特殊な場合があります。null または unknown が自動的に Object に変換される場合、JS は TypeError エラーをスローします。 null または未定義を Object に変換すると、JS は空のオブジェクトを返します:

コードをコピー コードは次のとおりです:
console.log(Object(unknown));//空のオブジェクト
console.log(Object(null));//空のオブジェクト

また、明示的な変換で指定した型とJSの自動変換で指定した型が異なる場合、得られる結果も異なります。たとえば、前述の unknown==false の結果は false ですが、変換タイプが明示的にブールとして指定されている場合、結果は true になります。

console.log(未定義 == false);//false
console.log(Boolean(未定義) == Boolean(false));//true

自動型変換の使用

JS では、次のような値の型の自動変換を使用し、演算子を使用して明示的な変換と同じ効果を実現できます。

コードをコピー コードは次のとおりです:
console.log(false "");//"false"
console.log(false);//0
console.log(!!3);//true

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