css - JavaScript の typeof 演算子
習慣沉默
習慣沉默 2017-06-12 09:31:29
0
5
665

最近、js からの質問に遭遇しました。質問は次のようなものです。
var str = 'abc' ;
typeof (str );
最初、返される値は String 型の値だと思いました。しかし、結果は Number になり、混乱してしまいます。
私が理解している考え方は、最初に str を分割する、つまり str = str 1; これは単なる文字列の結合ではないでしょうか?返されるのは str です。
しかし、str を出力すると、NaN 型になります。 typeof(NaN) は Number 型です。

つまり、
console.log(str)
console.log(str = str 1)
は等価ではありません。

だからですか? ?

習慣沉默
習慣沉默

全員に返信(5)
某草草

高度な JavaScript プログラミングで書かれています++--是递增递减的一元操作符,只能操作一个数据,和加性操作符+是不一样的,
他首先会把操作数转换为Number类型,然后进行加一或减一操作。所以str = str+1 不等于 str++

いいねを押す +0
学习ing

str++を使用すると、jsは暗黙的にstrの文字列型を数値型に変換しているためです

いいねを押す +0
过去多啦不再A梦

console.log(str++) ++ は str を数値に変換しようとしますが、自動変換が失敗すると NaN になります

console.log(str = str+1) +このとき文字列を繋ぎ合わせてみるとabc1になります

いいねを押す +0
黄舟

js には、a++ と a=a+1 が同等であることを保証するものは何もありません。

++只有<number>重载,+<string, string><number, number>リロードします。たとえ動作が考慮されていないとしても、型はもはや同等ではありません。

他の言語も存在する可能性がありますので、JS と混同しないでください。

いいねを押す +0
曾经蜡笔没有小新

まず第一に、あなたの理解は間違っています。str++ は str+=1 と完全に同等ではありません。ここでは自己インクリメントとして理解する必要がありますが、自己インクリメントは数値にのみ適用されるため、str++ は最初に暗黙的な型変換を実行します。 str の値は 'abc' であり、変換後の typeof NaN の戻り値は Number

になります。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート