Javascript 中的“:”运算符

":" operator in Javascript

我正在使用 project polymer https://www.polymer-project.org/ 并尝试在 Rails 应用程序中预编译一些 Web 组件。

我在文件中发现错误:

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 = ""
}

"a:" 是什么意思?因为 js2coffee 会在那里发送错误。它是一个有效的运算符?

函数中

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

说:如果a大于b则return1;否则如果 a 小于 b return -1;否则 return 0.

另一种说法

a: {

是一个全局变量。跟功能没关系。

你代码中的a:是一个标签。 JavaScript 标签与 breakcontinue 语句一起使用,作为 "go to".

的(有点有限)形式

因此这段代码:

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 = "";
}

因此,如果代码找不到 navigatornavigator.userAgent 值,Va 将设置为空字符串。