我正在学习 JavaScript。我无法理解一个空物体的概念。据我了解,有些情况下我需要检查一个变量是否包含一个对象并有一个值。
到目前为止,我知道一个变量可以是undefined。
var car; // the value is undefined, as well as the type (which is it? number, array, etc.)
Run Code Online (Sandbox Code Playgroud)
我也知道,所有有价值的东西都是真实的:
var car = "Opel";
Boolean(car); // true
Run Code Online (Sandbox Code Playgroud)
任何没有价值的东西都是假的:
var car = ""; // typeof string, but it is empty, so
Boolean(car); // false
Boolean(null); // false
Run Code Online (Sandbox Code Playgroud)
那么为什么它与数组和对象的工作方式不同呢?为什么这一切都是真的?空数组和对象不应该返回false吗?
var car = {make: "Opel", year: 2015};
Boolean(car); // true
car = {};
Boolean(car); // true
car = ["BMW", "Opel"];
Boolean(car); // true …Run Code Online (Sandbox Code Playgroud)