2012-12-24 4 views
2

내가 그것을 읽고 몇 가지 obfusicated 코드를 해결하려고 노력하고 있어요에 의미, 나는 꽤 잘하고 있었다 아직도 꽤 자바 스크립트에 익숙하지 않은 그리고 이러한 단축 된 드문 자바 스크립트 코드는 여전히 내게 매우 외국이다, 이것은 내가 그들과 마주 쳤을 때 처음이다.는 자바 스크립트

누구에게 이것이 무엇을하는지 알고 있습니까? 내가 자바 스크립트 코드 테스터 광고에서 방금 시도 했으므로 * 알았습니다.

또한 이러한 공통적 인 코드 줄이 무엇인지 알아낼 수있는 사람이 누구인지 알면 매우 유용합니다. 그들은 모든 이것과

a=a||b 

같은 것들의 종류 단축되고있다

을 (그 사람이 무엇을 알고)하지만 자바 스크립트의이 종류 또는 내가 볼 수있는 참조 이름의 일종이있는 경우 그게 도움이 될거야, 나는 몇 시간 동안 구글을 수색 해왔다.

감사

+0

의 중복 [ "옵션 = 옵션을 무엇 || {} "Javascript에서 의미가 있습니까?] (http://stackoverflow.com/questions/2851404/what-does-options-options-mean-in-javascript) 및 [JavaScript. 이 표현식의 의미는 무엇입니까? "var a = b === c && d;"] (http://stackoverflow.com/questions/10896453/javascript-what-does-this-expression-mean-var-a-b-c-d). 이것은 단락 회로 평가 (short-circuit evaluation)라고 불리우며 자세한 내용은 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Logical_Operators#Short-Circuit_Evaluation –

+0

에 도움이됩니다. 많은 도움을 주셔서 감사합니다 – arch

+0

다음과 같이 작성되었을 수 있습니다 : i)'(a) {a = "*";}'(ii)'if (! a) {a = b;}' –

답변

2

a이 truthy 경우, 그것은 a-"*"를 할당합니다.

a이 허위이면 그대로 유지됩니다.


&& 단락 의미를 갖는다 : 화합물 식 나가기 — 어느

  • e1 평가 (e1) && (e2)e1e2는 — 임의 식 e1가 — e2은 부울 컨텍스트에서 거짓으로 평가되면 평가
  • e2e1 경우는 불리언 문맥에서 true로 평가

하지e1 또는 e2 전체 표현 (e1) && (e2)이 true 또는 false로 평가해야 할 것을 의미한다!불리언 문맥에서

다음 값 false as per the spec로 평가 :

  • 정의
  • & plusmn;
  • 거짓 0
  • NaN이
  • 빈 문자열

모두 다른 값은 true으로 간주됩니다.

위의 값은 간략하게 "거짓"이라고하며 나머지는 "진실"입니다.

가 예에 적용 : &&위한 단락 평가 전술 한 규칙에 따라 a = a && "*"

표현식은 a이라면 차례로 a에 할당되는 falsy이다 a 평가 즉 진술 문은 a = a으로 단순화됩니다. a이면

truthy 그러나 우측 발현 차례로 a에 할당되는 * 평가. 두 번째 질문에 관해서는


:

전체 식을 평가 : (e1) || (e2) 비슷한 의미를 가지고 e1이 truthy입니다

  • e1 경우
  • e2e1 경우가 falsy입니다

1Exception

+2

"지금은 여전히 ​​Javascript에 아주 익숙합니다." 초보 자바 스크립트 프로그래머 인 OP는 개념을 이해하기 위해 더 나은 설명이 필요할 수 있습니다. –

+0

@RobW 네가 맞아. 나는 설명을 추가했다. – phant0m