2014-11-28 1 views
2

코드에서 경고의 "예"라는 변수 값이 필요합니다.어떤 값이 자바 스크립트의 NaN과 정확히 같지 않습니다.

var a; 

// set the value of a here ... 
a=? 

// don't edit the code below: 
if (a === a) { 
    alert('No!'); 
} else { 
    if (isNaN(a)) { 
     alert('Not again!'); 
    } 
    else { 
     alert('Yes'); 
    } 
} 

무엇입니까?

+1

퀴즈 문제입니까? – anishsane

+1

여기에 어떤 문제가 있습니까? 'if (a === a)'가 틀리면 어떻게 될까? 나는 이해하지 못한다. – Aditya

+3

나는 이국적인 사례가 존재하지 않는다는 말을하지 않는 NaN 이외의 어떤 사례도 알지 못합니다. 왜 중요합니까? 취업 면접 질문 인 경우, 관련없는 퀴즈 질문을하는 회사에 신청서를 철회해야합니다. –

답변

2

는 다음 사항을 고려하십시오

n = 0; 
Object.defineProperty(window, 'a', { get: function() { return n++; } }); 

> a === a 
< false 
+2

화려한 솔루션! – Hrishi

+1

일부 전역 변수에 부작용이있는 함수에 대한 유사한 행을 생각했습니다. 그러나 변수를 읽는 동안 함수를 호출 할 수있는 방법을 생각할 수 없습니다. '재산'을 사용하는 팁 주셔서 감사합니다 ... – anishsane

+0

Huzzah! 좋은 답변 –

0

첫째, 하라구요의 @의 skbhardwaj.india을 질문을하고 질문에 대답하기위한 @torazaburo 감사합니다.

@ torazaburo 님의 답에 영감을 얻은 결과, 외부/전역 변수에 종속되지 않으므로 클로저를 사용하고 싶습니다.

Object.defineProperty(window, 'a' , { get: (function(p){ return function(){ return p++; }})(0) });

관련 문제