내가 루틴을 작성했다고 단위의 유형 인 경우 (1)에 의한 변수의 값 number
변수가 처음이 아닌 경우 변수, 및 양수인 0 null
또는 undefined
.
첫 번째 구현은 v >= 0 ? v += 1 : v = 0
숫자가 아닌 것이 산술 표현식을 거짓으로 만들 것이라고 생각했기 때문에 이루어졌지만 null >= 0
true로 평가 된 이후로 잘못되었습니다 . 그런 다음 null
0과 같은 동작을 배우고 다음 표현식이 모두 true로 평가됩니다.
null >= 0 && null <= 0
!(null < 0 || null > 0)
null + 1 === 1
1 / null === Infinity
Math.pow(42, null) === 1
물론 null
0이 아닙니다 null == 0
. false로 평가됩니다. 이것은 겉보기에 타우 톨 로지 된 표현을 (v >= 0 && v <= 0) === (v == 0)
거짓으로 만듭니다.
null
실제로 0이 아니지만 왜 0과 같습니까?
null
또는 undefined
다음 중 하나에 해당하는 카운터를 늘리는 간결한 방법이 있습니다 .c = -~c // Results in 1 for null/undefined; increments if already a number
undefined
초기화되지 않은 변수에 대한 변수 값입니다. null
반면에는 빈 객체 값이며 숫자와 혼합해서는 안됩니다. null
숫자와 결합되어서는 안되므로 null은 숫자처럼 동작하지 않아도됩니다.