怎么理解`JavaScript 变量均为对象`这句话?

在看JavaScript文章的时候:http://www.cnblogs.com/cmhunt...

有一句:

JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。

这句话我不是很明白。

我们做测试:

var obj
console.log(typeof(obj))  // undefined

var obj = null
console.log(typeof(obj))  // null

为何就说JavaScript变量均为对象呢?

阅读 3.9k
5 个回答

别人随便 YY 一句,你就还纠结着当真了……
这么说吧,这句话需要这些准备:

  1. 先定义,在 js 中,“对象”是什么。
  2. 再定义,“是对象”的标准是什么。
  3. 有了上面两个定义,这句话才有意义。

如果把对象的标准定为 Object 的话,那么显然 var s = "xxx" 就不是对象, 这时 s 就是一个确定的值,与 var s = new String('xxx') 是不同的。

这篇文章中说的js中一切变量都是对象,应该是编程思想中万物皆对象的对象,而不是js中的对象类型

null是空对象,undefined是未定义的东西

用Number类型来解释一下

var n = 1;
var n1 = new Number(1);
console.log(n === n1); // false
console.log(n === n1.valueOf()); // true

在执行var n = 1时,javascript会实例化Number对象,并调用实例化对象的valueOf()方法进行赋值。

我现在理解了,在JavaScript中,一切皆是对象。

比如:null,字符串,Number等都是对象。数组是特殊的对象。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题