検索

ホームページ  >  に質問  >  本文

css - JavaScript の typeof 演算子

最近、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)
は等価ではありません。

だからですか? ?

習慣沉默習慣沉默2767日前674

全員に返信(5)返信します

  • 某草草

    某草草2017-06-12 09:33:29

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

    返事
    0
  • 学习ing

    学习ing2017-06-12 09:33:29

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

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:33:29

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

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

    返事
    0
  • 黄舟

    黄舟2017-06-12 09:33:29

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

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

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

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:33:29

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

    になります。

    返事
    0
  • キャンセル返事