2009-10-27 36 views
5

Câu lệnh Javascript sau làm gì với a?Toán tử >>> = trong Javascript là gì?

a >>>= b; 
+4

Thực sự, bạn không thể sử dụng Google để tìm thông tin đó? –

+3

Bạn đã thử Googling ">>> =" chưa? – Tinister

+19

Một phần của mục tiêu của trang web này là để được tham khảo cuối cùng; Tôi không nghĩ rằng những câu hỏi đơn giản là không phù hợp. Và Google sẽ bỏ qua ">>>" trong một truy vấn; bạn phải biết tìm kiếm "toán tử" hoặc "toán tử bitwise". –

Trả lời

12

Nó làm điều tương tự như thế này:

a = a >>> b; 

Trừ a mà chỉ được đánh giá một lần (trong đó có sự khác biệt quan sát được nếu đánh giá của nó liên quan đến bất kỳ tác dụng phụ).

>>>unsigned (logical) right shift.

+0

Cảm ơn bạn! Đây là một số mã giải mã/giải mã phức tạp điên rồ mà tôi đang xem tại đây. –

+1

'a' chỉ được" đánh giá một lần "cho' a = a >>> b'. Nó không giống như lần thứ hai nó được nhìn lên. Cả hai biểu thức trả về giá trị trả về của biểu thức, không phải 'a' (được đặt thành giá trị). –

+1

@Elijah: giả định là 'a' là trình giữ chỗ cho biểu thức tùy ý, không chỉ là số nhận dạng. –

3

Đó là một toán tử bitwise được gọi là dịch chuyển số không điền. Nó sẽ thay đổi biểu diễn nhị phân của a sang phải bằng b địa điểm và thay thế các mục rỗng bằng số không. Sau đó, kết quả sẽ được gán cho a.

5

Tôi phải dịch giá trị theo số bit được chỉ định bởi giá trị bằng b, mà không cần duy trì dấu.

Giống như toán tử >> = quyền thay đổi giá trị, chỉ người đó không thay đổi dấu hiệu của số.

Ví dụ:

var a = -1; 

// a now contains -1, or 11111111 11111111 11111111 11111111 binary 

var b = 1; 
a >>>= b; 

// a now contains 2147483647, or 01111111 11111111 11111111 11111111 binary. 
+0

Cảm ơn bạn đã cung cấp ví dụ đó! –

+0

Holy crap, đây là một số thứ phức tạp! o_0 – KyleFarris

0

Crockford points out rằng trong khi JavaScript đã Bitwise nhà khai thác như >>>, sử dụng chúng trên đôi chính xác số dấu chấm động có nguồn gốc của nó ngụ ý chuyển đổi qua lại để nguyên trong nội bộ. Chúng sẽ không hiệu quả như các ngôn ngữ khác với các kiểu dữ liệu nguyên gốc.

Các vấn đề liên quan