Tôi muốn sử dụng toán tử tồn tại CoffeeScript để kiểm tra một số thuộc tính đối tượng cho không xác định. Tuy nhiên, tôi gặp phải một vấn đề nhỏ.Làm cách nào để sử dụng toán tử tồn tại CoffeeScript để kiểm tra một số thuộc tính đối tượng cho không xác định?
Mã như thế này:
console.log test if test?
Biên dịch để:
if (typeof test !== "undefined" && test !== null) console.log(test);
nào là hành vi của tôi muốn thấy. Tuy nhiên, khi tôi cố gắng sử dụng nó chống lại các thuộc tính đối tượng, như thế này:
console.log test.test if test.test?
tôi nhận được một cái gì đó như thế:
if (test.test != null) console.log(test.test);
nào desn't trông giống như một tấm séc chống lại không xác định gì cả. Cách duy nhất tôi có thể đạt được cùng một hành vi (1: 1) như sử dụng nó cho các đối tượng là bằng cách sử dụng một kiểm tra lớn hơn:
console.log test.test if typeof test.test != "undefined" and test.test != null
Câu hỏi đặt ra là - tôi có làm điều gì sai? Hoặc là mã được biên dịch là đủ để kiểm tra sự tồn tại của một thuộc tính (một kiểm tra rỗng với kiểu chuyển đổi)?
bản sao chính xác của [coffeescript không phải là hành vi rỗng hoặc không xác định] (http://stackoverflow.com/questions/20010245/coffeescript-not-null-or-undefined-behavior) – Bergi
@Bergi, câu hỏi này được hỏi bốn năm trước , cái kia - hai năm trước. Không phải là một bản sao khác? :) – Przemek
Phải, tôi chỉ cảm thấy người kia có câu trả lời tốt hơn. Tôi đoán họ nên được sáp nhập. – Bergi