2010-01-27 36 views
6

tôi đang cố gắng nâng cấp kỹ năng lập trình javascript của tôi (hoặc cho phép nói rằng thời gian kỹ năng lập trình của tôi:))ngữ nghĩa javascript

vì vậy tôi đang cố gắng để hiểu một số ngữ nghĩa:

trong dòng đầu tiên những gì hiện biểu tượng "? " nghĩa cũng như dấu trừ trong "-distance"

trong dòng thứ hai gì '+ =' hoặc '-? =" có nghĩa là

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

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

cảm ơn bạn

+1

Bạn muốn cải thiện kỹ năng lập trình của bạn? Sau khi bạn undestand những gì nó làm, viết lại nó trong một ** ** có thể đọc được cách mà sẽ không nhầm lẫn giữa coder tiếp theo. (btw, nó trông giống như vô nghĩa vô nghĩa - nó đang chơi với +/- của một số, và sau đó trừ hoặc thêm nó, dường như vô nghĩa) – Kobi

+0

vâng, như thế này, 'el.css (ref, -1 * ('pos' === chuyển động) * khoảng cách) ',: P (chỉ là một trò đùa) –

+0

@Dan: bạn muốn' (1 - ('pos' === chuyển động) * 2) * khoảng cách'. – kennytm

Trả lời

5

a ? b : c có nghĩa là "b nếu a là đúng, c nếu không ".

-a có nghĩa là a, đã phủ nhận.

a -= ba += b có nghĩa là a = a - ba = a + b tương ứng. Tuy nhiên, trong ví dụ của bạn, các toán tử này không thực sự hiện diện trong mã, chúng chỉ là các chuỗi văn bản mà mã đang thao tác.

+0

Trong ví dụ của mình, '- =' và '+ =' thực sự là chuỗi. –

+0

@Brian: vâng, chỉ cần phát hiện rằng :) – moonshadow

+1

hmm ... '- =' và '+ =' là chuỗi ... Tôi ngửi thấy một 'eval' ở đâu đó;) –

1

là ternary? điều hành

nó bằng

if(motion == 'pos') { return -distance; } else { return distance; } // - is just negating the distance value 
1
  1. (a ? b : c) có nghĩa là "trở b nếu a là đúng, và trở c nếu a là sai."
  2. Dấu trừ có nghĩa là phủ định.
  3. Các '+=''-=' là các chuỗi đơn giản.
0

Điều bạn gọi là ngữ nghĩa ngữ pháp thực sự là cú pháp ngôn ngữ lập trình. Đó là kiến ​​thức rất cơ bản có thể được mua lại dễ dàng bằng cách googling một chút hoặc nhìn vào Wikipedia.

Đây là bài viết JavaScript trên Wikipedia và đây là câu trả lời cho các câu hỏi first (conditional operator section), second (Arithmetic)third (Assignment) của bạn trong cùng một bài viết. RTFM xin vui lòng.

0

Đây là liên kết sẽ trả lời? câu hỏi (? là một hoạt động đánh giá nhanh). http://www.w3schools.com/JS/js_comparisons.asp

+ = sẽ được sử dụng để tăng giá trị (cũng viết tắt) ví dụ:

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

cùng áp dụng cho - =

+0

về mặt kỹ thuật tôi đoán điều này là đúng, nhưng '' - = ''không giống như đơn giản' - = '(nó là một chuỗi được gửi đến hàm css của jQuery, nhưng đang làm điều này đằng sau hậu trường, vì vậy tôi đã không bỏ phiếu bạn xuống) –