JavaScript学习笔记1_null和undefined

undefined

当我们试图访问某个未定义或未初始化的变量时,会得到一个undefined,JavaScript会自动将声明时没有进行初始化的变量设为undefined.

  1. 当试图使用一个不存在(未声明)的变量时,就会得到以下错误信息:
foo
image.png

这时,在变量上使用typeof操作符,就会得到字符串"undefined"

typeof foo
image.png
  1. 如果我们声明一个变量时没有对其进行初始化(赋值),调用变量时并不会出错,但typeof操作符仍然会返回"undefined".
var i;
i;
typeof i
image.png

null

null不能通过JavaScript来自动赋值,只能通过写代码来完成,使用typeof操作符会得到"object"如:

var k = null
k
typeof k
image.png

其他异同

  1. 执行某种算术运算符(+-*/%等)时,结果不同
var i = 1 + undefined; i
var i = 1 + null; i;
image.png

这是因为null和undefined在被转换为其他基本类型(numer, boolean, string)时存在一定的区别.

转换为数字:

1 * undefined
1 * null
image.png

转换为布尔:

!!undefined
!!null
image.png

转换为字符串:

'' + undefined
'' + null
image.png

参考文献:JavaScript面向对象编程指南

你可能感兴趣的:(JavaScript学习笔记1_null和undefined)