js:请问未声明的变量的数据类型是不是Null?

js:请问未声明的变量的数据类型是不是Null?
试了一下alert报错,是不是说明这个没值?还是说它的值为null?
根本不存在的变量是不是就是空对象?
求大神解答。

阅读 5.8k
7 个回答

为undefined
如果为null是可以打印出来的
空对象指的是{}

ECMAScript的变量是松散类型的,可以用来保存任何数据。
定义变量时如果不使用var也是可以的,
例: message = 100;

alert(message);//100 有效但不推荐这样做

而未经初始化的变量会保存为undefined

你都没声明,作用域里面就没这个标识符,连值都没有,就更别说null了。
空对象和没声明的变量是两个概念。

typeof a; // 结果"undefined"
新手上路,请多包涵

m=10;
alert(typeof(m));//结果:number

1.请问未声明的变量的数据类型是不是Null?
2.试了一下alert报错,是不是说明这个没值?还是说它的值为null?
3.根本不存在的变量是不是就是空对象?
答:
1.typeof null的结果是object也就是说,null存在的前提是这个变量必须声明。所以当我想知道一个未声明的变量应该是什么类型是我可以使用如下代码进行验证

typeof someting // "undefined"

2.ReferenceError:xxx is not defined是这个报错,翻译过来就是“引用错误:xxx未定义”,但是当你提前声明时

var something;
alert(something); // undefined

这就是设计了undefined类型的设计用意

  • 该变量未声明

  • 该变量未定义

alert一个未声明的变量时会报错,如果变量声明但未初始化(定义),则弹出undefined
3.空对象的声明方式就是var empty = {},它与var obj = new Object()是一致的,但是后者使用的是构造器,所以建议使用前者,更高效,简明。

要是我的reputation 上了125 我绝对给你 vote down , 这种问题在高级程序设计就能找到答案!

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