JavaScript中只声明但没有初始化的变量和未声明的变量以及null/undefined的区别

只声明但没有初始化的变量和未声明的变量以及null/undefined的区别

1. 声明但没有初始化的变量

var aa;
alert(aa);

浏览器会弹出窗口显示 undefined.

因为对于使用了 var 声明但没有进行初始化定义的变量, 其值默认为 undefined.

2. 未声明的变量(1)

alert(aa);

浏览器不会弹出任何东西. 因为 aa 是没有声明的变量.
打开 chrome 浏览器的控制台会看到报错如下:
clipboard.png

3. 未声明的变量(2)

alert(typeof aa);

浏览器会弹出窗口显示 undefined.

对于没有声明的变量, 只能执行一种操作(alert(aa) 就是错误的) . 就是使用 typeof 操作符检验它的类型. 它的类型和声明但没有进行初始化的变量的类型一样, 都是 undefined.

总结: 已声明但是没有初始化的变量的值为undefined. 而未声明的变量虽然用 typeof 操作符结果为 undefined, 但是并没有值.

4. null 和 undefined 的区别

null 是一个空的对象引用.
undefined 是声明但没有被赋值的变量.
利用这两个就可以区分空对象指针和未经初始化的变量.

但是: 注意
alert(undefined == null); // 返回 true

undefined 值是派生自 null 值的. 所以对于它们的相等性测试, 返回 true

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值