2010-01-27 48 views
6

我想升级我的JavaScript编程技能(或者可以说,我的编程技巧期间:))JavaScript的语义

,所以我想了解一些语义:

在第一线什么是

“? “意思以及在“距离d”减号

在第二行

是什么“+ =”或“ - ?=”的意思是

el.css(ref, motion == 'pos' ? -distance : distance) 

animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; 

谢谢

+1

想提高你的编程技能?在你不知道它做什么后,用**可读**的方式重写它,不会混淆下一个编码器。 (顺便说一句,它看起来像是完全废话 - 它正在玩+/-的数字,然后减去或添加它,似乎毫无意义) – Kobi 2010-01-27 09:22:38

+0

是的,像这样,'el.css(ref,-1 *('pos' ===运动)* distance)',:P(只是一个玩笑) – 2010-01-27 09:27:32

+0

@Dan:你想要'(1 - ('pos'=== motion)* 2)* distance'。 – kennytm 2010-01-27 09:29:11

回答

5

a ? b : c意味着“b如果a为真,c否则“。

-a意味着a,否定。

a -= ba += b分别表示a = a - ba = a + b。但是,在您的示例中,这些运算符实际上并不存在于代码中,它们只是代码正在操作的文本字符串。

+0

在他的例子中,' - ='和'+ ='实际上是字符串。 – 2010-01-27 09:22:35

+0

@Brian:是的,只是发现:) – moonshadow 2010-01-27 09:24:24

+1

嗯......' - ='和'+ ='作为字符串...我在某个地方闻到一个'eval'; – 2010-01-27 09:53:49

1

是三元?运营商

它等于

if(motion == 'pos') { return -distance; } else { return distance; } // - is just negating the distance value 
1
  1. (a ? b : c)的意思是 “返回b如果a是真实的,并返回c如果a是假的。”
  2. 减号表示否定。
  3. '+=''-='只是字符串。
0

这是一个链接,将回答?问题(?是简写评估操作)。 http://www.w3schools.com/JS/js_comparisons.asp

+ =将用于增加一个值(也简写为) 例如,

i = i + 1; is the same as i += 1; 

同样适用于 - =

+0

技术上我想这是正确的,但'' - =''与简单的' - ='不一样(这是一个发送给jQuery的css函数的字符串,但是在后台执行此操作,所以我没有投票给你) – 2010-01-27 09:30:30