zoukankan      html  css  js  c++  java
  • 【转】JavaScript中undefined与null的区别

    通常情况下, 当我们试图访问某个不存在的或者没有赋值的变量时,就会得到一个undefined值。Javascript会自动将声明是没有进行初始化的变量设为undifined。

    如果一个变量根本不存在会发生什么事:

    >>> foo
    ReferenceError: foo is not defined

    我们得到了一个错误信息。我们在该变量上用typeof操作符看看它是什么类型:

    >>> typeof foo
    "undefined"

    我们得到的结果为字符串“undefined”。

    如果我们声明一个变量时没有对其进行赋值,调用该变量时并不会出错,但typeof操作符依然会返回字符串“undefined”。

    >>> var somevar;
    >>> somevar;
    undefined
    >>> typeof somevar;
    "undefined"

    而null值就完全是另外一回事啦。 他不能通过javascript来自动赋值,也就是说必须要我们自己手动来给某个变量赋值为null:

    >>> var somevar = null;
    >>> somevar;
    null

    而且,typeof操作符返回的是一个对象!

    >>> typeof somevar;
    "object"

    虽然说,undefine与null之间的差别不是很大,但是他们在一些算数运算中表现得非常不一样:

    >>> var i = 1 + undefined;  i;
    NaN
    >>> var i = 1 + null;  i;
    1

    这是因为undefined和null在被转换为其他基本类型时,方法存在一定的区别,下面我们给出一些可能的转换类型。

    转换为数字(把undefined看做字符串,null看做0):

    >>> 1 * undefined;
    NaN
    >>> 1 * null;
    0

    转换为布尔值:

    >>> !!undefined;
    false
    >>> !!null;
    false
        转换为字符串(都相应的转换为字符串):
    >>> ''+undefined;
    "undefined"
    >>> ''+null;
    "null"

    以上就是undefined与null的区别,以及在运算是要注意的地方。

  • 相关阅读:
    [saiku] 系统登录成功后查询Cubes
    216. Combination Sum III
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    211. Add and Search Word
    210. Course Schedule II
    分硬币问题
    开始学习Python
  • 原文地址:https://www.cnblogs.com/Griffin/p/3398592.html
Copyright © 2011-2022 走看看