recherche

Maison  >  Questions et réponses  >  le corps du texte

css - opérateur de type javaScript

J'ai récemment rencontré quelqu'unjs的题,题目是这样的。
var str = 'abc' ;
typeof (str++)
最开始我以为返回的是String类型的值!但是结果却是Number,让我很费解!
我理解的思路是,首先拆开 str++ , 也就是str = str+1; 这不就是字符串拼接么。返回的还是str啊。
但是当我打印出来 str++ 之后 却是一个NaN的类型。typeof(NaN)qui est du type Numéro !

En d'autres termes,
console.log(str++)console.log(str++)
console.log(str = str+1)console.log(str = str+1)
ne sont pas équivalents !

Excusez-moi, pourquoi ça ? ?

習慣沉默習慣沉默2767 Il y a quelques jours673

répondre à tous(5)je répondrai

  • 某草草

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

    Écrit en programmation JavaScript avancée,++--是递增递减的一元操作符,只能操作一个数据,和加性操作符+是不一样的,
    他首先会把操作数转换为Number类型,然后进行加一或减一操作。所以str = str+1 不等于 str++

    répondre
    0
  • 学习ing

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

    Parce que lors de l'utilisation de str++, js a implicitement converti le type de chaîne de str en un type numérique

    répondre
    0
  • 过去多啦不再A梦

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

    console.log(str++) ++ essaiera de convertir str en nombre si la conversion automatique échoue, il deviendra NaN

    .

    console.log(str = str+1) +À ce moment, essayez d'épisser la chaîne et elle devient abc1

    répondre
    0
  • 黄舟

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

    Il n'y a rien dans js qui garantit que a++ et a=a+1 sont équivalents.

    ++只有<number>重载,+<string, string><number, number>Recharger. Même si le comportement n’est pas pris en compte, les types ne sont plus équivalents.

    D'autres langages peuvent exister, et ne doivent pas être confondus avec JS.

    répondre
    0
  • 曾经蜡笔没有小新

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

    Tout d'abord, votre compréhension est fausse. str++ n'est pas complètement équivalent à str+=1 Ici, il doit seulement être compris comme un auto-incrémentation, mais l'auto-incrémentation ne s'applique qu'aux nombres, donc str++ effectuera d'abord une conversion de type implicite, et la valeur de str est 'abc' est NaN après conversion. La valeur de retour de typeof NaN est Number

    .

    répondre
    0
  • Annulerrépondre