一元操作子「+」、「-」の強制変換値
1809 ワード
インクリメントと逓減はそれぞれ前置型と後置型がありますが、ここでは区別しません.
下のコードは全部後置型のインクリメントです.有効数字文字を含まない文字列 数字と他の文字を組み合わせた文字列は、有効な数字文字列ではなく、1の に属しています.は、有効な数字文字の文字列 を含む.
一元操作子「+」、「-」は上のこれらの文字列に対して、次のような規則があります.
1.有効な数字文字を含む文字列に適用する場合は、まず数値に変換してから1を減算します.文字列変数は数値変数に変わります.
2.有効な数字文字を含まない文字列に適用すると、変数の値をNaNに設定します.文字列変数は数値変数に変わります.
NaNは特別なNumberタイプです.
注意:
下のコードは全部後置型のインクリメントです.
var str = "z";
console.log(str++) //NaN
console.log(typeof str) //number
var str = "123abc";
console.log(str++) //NaN
console.log(typeof str) //number
var str = "123";
console.log(str++) //123
console.log(typeof str) //number
上の3つのコードはそれぞれ3つの文字列に対応しています.一元操作子「+」、「-」は上のこれらの文字列に対して、次のような規則があります.
1.有効な数字文字を含む文字列に適用する場合は、まず数値に変換してから1を減算します.文字列変数は数値変数に変わります.
2.有効な数字文字を含まない文字列に適用すると、変数の値をNaNに設定します.文字列変数は数値変数に変わります.
NaNは特別なNumberタイプです.
注意:
NaN instanceof Number //false
基本タイプは、Numberコンストラクタの実例となるオブジェクトではないので、このようにタイプを検出することができません.