Đã có câu trả lời được chấp nhận, nhưng tôi muốn đề cập đến, OR-Nhà điều hành cũng được gọi là Nhà điều hành mặc định, bởi vì nó không trả về một boolean, mà thay vào đó là đối số bàn tay trái hoặc phải.
Tương tự với toán tử AND-Operator, còn được gọi là guard-Operator.
Check-out crockford's Survey of the JavaScript Programming Language để biết thêm chi tiết:
Nhà điều hành & & thường được gọi là logic và. Nó cũng có thể được gọi là bảo vệ. Nếu toán hạng đầu tiên là false, null, undefined, "" (chuỗi rỗng), hoặc số 0 thì nó trả về toán hạng đầu tiên. Nếu không, nó sẽ trả về toán hạng thứ hai. Điều này cung cấp một cách thuận tiện để viết kiểm tra không hợp lệ:
var value = p & & p.name;/* Giá trị tên sẽ chỉ được truy xuất từ p nếu p có giá trị, tránh lỗi. */
|| toán tử thường được gọi là logic hoặc. Nó cũng có thể được gọi là mặc định. Nếu toán hạng đầu tiên là false, null, undefined, "" (chuỗi rỗng), hoặc số 0, thì nó trả về toán hạng thứ hai. Nếu không, nó trả về toán hạng đầu tiên. Điều này cung cấp một cách thuận tiện để chỉ định các giá trị mặc định:
giá trị = v || 10;/* Sử dụng giá trị của v, nhưng nếu v không có giá trị, hãy sử dụng 10 giá trị thay thế. */
Nguồn
2009-09-04 11:24:59
Tôi đoán nó sẽ là nếu Date.now vì một lý do nào đó trả về 0, sau đó bạn sẽ đặt $ time thành giá trị trả về của hàm ...? – peirix
@peirix: Bạn đã đoán sai. $ time sẽ là một hàm trả về ngày hiện tại. Nó được thiết lập là một bí danh của Date.now nếu nó được định nghĩa (không sai) hoặc hàm được cung cấp khác. –
Ah, đó là lý do tại sao tôi không đặt nó làm câu trả lời.Không có cách nào để đưa ra một bình luận: p Vậy ta sẽ phải biết thêm về biến 'Date.now' để biết đầy đủ về cách thức này sẽ hoạt động như thế nào? – peirix