2017-01-04 2 views
0

에 정의되지 않은이 수행 자바 스크립트 (ES2015)의 간결한 동작이 있습니까 : 나는 x을 증가 할 경우에 계속 실행캐스트가 0

x => x === undefined ? 0 : x 

,하지만 코드가되도록 그것은 처음에 정의되지 않은 :

foo.bar = (foo.bar === undefined ? 0 : foo.bar) + 1; 

또는

foo.bar = (foo.bar ? foo.bar : 0) + 1; 

는 일을 덜 반복적 인 방법이 이 캐스팅?

+2

'(foo.bar || 0)'을 (를) 사용해 보셨습니까? – Tushar

답변

3
foo.bar = (foo.bar || 0) + 1; 

.

+0

오, 좋아, 고마워! –

1

undefined + 1이 위선 인 NaN이고 undefined이 위선자이므로 몇 가지 옵션이 있습니다.

당신의 수를 가정하면 (특히, -1)

foo.bar = foo.bar + 1 || 1 

음수가 될 수 없습니다 또는 다윗의 대답은 아마 더 좋은 생각하지만 이것은 foo.bar의 값에 대해 작동 않습니다.

foo.bar ? foo.bar++ : foo.bar = 1