찾다

 >  Q&A  >  본문

CSS - JavaScript typeof 연산자

최근에js的题,题目是这样的。
var str = 'abc' ;
typeof (str++)
最开始我以为返回的是String类型的值!但是结果却是Number,让我很费解!
我理解的思路是,首先拆开 str++ , 也就是str = str+1; 这不就是字符串拼接么。返回的还是str啊。
但是当我打印出来 str++ 之后 却是一个NaN的类型。typeof(NaN)숫자형 사람을 만났어요!

즉,
console.log(str++)console.log(str++)
console.log(str = str+1)console.log(str = str+1)
는 동일하지 않습니다!

실례합니다. 왜 그렇죠? ?

習慣沉默習慣沉默2765일 전669

모든 응답(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'이며 변환 후 NaN입니다. NaN 유형의 반환 값은 Number

    입니다.

    회신하다
    0
  • 취소회신하다