Nếu tôi có một lời tuyên bố như sau:Khi khai báo một biến trong javascript, là giá trị mặc định null?
var j;
không j==null
cho đến khi tôi thiết lập nó bằng cái gì?
Nếu tôi có một lời tuyên bố như sau:Khi khai báo một biến trong javascript, là giá trị mặc định null?
var j;
không j==null
cho đến khi tôi thiết lập nó bằng cái gì?
Không, nó có giá trị mặc định của undefined
Nhưng nếu muốn sử dụng điều kiện !j
, nó sẽ làm việc với cả các giá trị (ví dụ không xác định hoặc rỗng)
Lưu ý rằng (j==null)
là true
, nhưng (j===null)
là false
... Javascript có giá trị "falsy" và các quy tắc đôi khi bất ngờ để chuyển đổi các giá trị, cộng với fancy ===
điều hành để so sánh giá trị và loại cùng một lúc.
Trên thực tế, j == null sẽ đánh giá là true, j === null sẽ là false. (Nhưng có, giá trị mặc định là không xác định là j === undefined sẽ là true). – SoWeLie
như vậy sẽ viết k === null đánh giá là true, vì biến k không tồn tại? tôi cũng giả sử tôi có thể sử dụng ngược lại, và nói "nếu (j)", và điều đó sẽ đánh giá sai, đúng không? – thisissami
@thisissami không, nó sẽ ném một ReferenceError. Điều phức tạp để có được là * undefined * thực sự là một giá trị hợp lệ. Có cả 'null' và' undefined', chúng giống nhau nhưng khác nhau. –
'j == null' sẽ là' true', nhưng không phải vì 'j' là' null'. Thay vào đó là vì 'j' là' undefined', nhưng toán tử '==' thực hiện kiểu ép buộc. '==' xem xét 'null' và' undefined' là bằng nhau. Toán tử '===' là nghiêm ngặt và không thực hiện bất kỳ sự ép buộc nào. –