2015-01-29 3 views
0

프로젝트 폴리머 https://www.polymer-project.org/을 사용 중이며 Rails 앱에서 일부 웹 컴포넌트를 사전 컴파일하려고합니다.":"Javascript의 연산자 :

나는 파일에 오류가 :

https://polymer-topeka.appspot.com/components/firebase/firebase.js

그래서 나는 그것이 잘못된 것 같다. 내가 http://jsbeautifier.org/ 그것을 압축 해제 후

내가 구문 오류가 될 수 있는지를 확인하는 jstocoffee를 사용하려고 :

http://js2coffee.org/

그리고 이걸 발견 :

"는 무엇
function Ua(a, b) { 
    return a > b ? 1 : a < b ? -1 : 0 
} 
var Va; 
a: { 
    var Wa = aa.navigator; 
    if (Wa) { 
    var Xa = Wa.userAgent; 
    if (Xa) { 
     Va = Xa; 
     break a 
    } 
    } 
    Va = "" 
} 

: "뜻? js2coffee가 바로 오류를 보내기 때문에. 유효한 연산자입니까? 함수

function Ua(a, b) { 
    return a > b ? 1 : a < b ? -1 : 0 
} 

에서

+1

[** Ternary Operator **] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) – adeneo

+7

'a :'는 ** 라벨 **입니다. . 그 다음에 나오는 코드 블록의 'break' 문에서 참조됩니다. 기본적으로이 코드 블록을 따르는 명령문에 "go-to"를 설정합니다. – Pointy

+2

@adeneo OP는 여기서 삼항 연산자 대신'a :'라벨을 참조하는 것 같습니다. –

답변

2

코드의 a:은 레이블입니다. JavaScript 레이블은 breakcontinue 문과 "다소 제한적인"형태로 작동합니다.

따라서이 코드 :이 기록 된 것처럼

a: { 
    var Wa = aa.navigator; 
    if (Wa) { 
    var Xa = Wa.userAgent; 
    if (Xa) { 
     Va = Xa; 
     break a 
    } 
    } 
    Va = "" 
} 

작품 :

var var Wa = aa.navigator; 
if (Wa && (Xa = Wa.userAgent) { 
    Va = Xa; 
} 
else { 
Va = ""; 
} 
그래서

Va은 코드를 찾을 수없는 경우 빈 문자열로 설정 모두 navigatornavigator.userAgent됩니다 값.

-1

말한다 : A는 다음 (1)를 리턴 (B)보다 크다면; 그렇지 않으면 a가 b보다 작 으면 -1을 반환합니다. 또 다른 0

a: { 

전역 변수 인 문을 반환합니다. 그 기능과 관련이 없습니다.

+3

'a :'는 전역 변수가 아닙니다. –

+0

문제는 그것이 http://js2coffee.org/ 여기에 오류로 표시된다는 것입니다. –