• JavaScript-undefined与null区别


    JavaScript中的null在其他编程语言中也很常见,但是JavaScript在设计的过程中null自动转换为0,为了更好表示空,这个时候undefined出现了,null通过typeof结果是“object”,undefined通过typeof表示这个值是这个类型的唯一成员。null和undefined中都是表示值的空缺,不过两者当做布尔值时都是false,通过==的时候都是相等的,但是null和undefined分别字符串,数字,布尔值相比都是false。

    Null和Undefined区别

    JavaScript取值为null的情况有两种:

    //获取不到元素
    1.var notExist= document.getElementById('notExist');//null
    
    //原型链的终点,也是返回null的
    2.Object.getPrototypeOf(Object.prototype)//null 

    undefined的情况如下:

    ①变量声明,未赋值;

    var a;//undefined

    ②查询对象的属性或数组元素的值不存在时,返回undefined; 

    var arr=[1,2,3];//博客园-FlyElephant
    console.log(arr[5]);//undefined   

    ③函数没有任何返回值的时候返回undefined;

    function f(){};console.log(f());//undefined

    ④引用没有提供实参的函数形参的值会得到undefined:

    function f(x){console.log(x);}f();//undefined
    

    题外话

    以前有一个很经典的JavaScript问题:

    if (!("a" in window)) {
        var a = 1;
    }
    console.log(a);//博客园-FlyElephant
    

    最后输出的是undefined,其中a是可以访问的,所有的声明都是提前声明的,a最开始的定义值是undefined,"a" in window是真,因此赋值语句没法执行到,最后的执行结果是undefined;

  • 相关阅读:
    [Silverlight] Mac OS 风格按钮 Style 实现的更新版(针对 Silverlight 2 RTW)
    神奇的事情一再发生
    加快打开XAML文件的速度
    判断句子是不是魔法咒语的算法
    Silverlight 的控件生命周期
    斐波纳契数列非递归算法
    Silverlight 调用 WCF 如何处理错误
    Silverlight 2 终于来了!
    几个 ASP.NET 小技巧
    IronPython for ASP.NET 的支持更新了
  • 原文地址:https://www.cnblogs.com/xiaofeixiang/p/5020726.html
Copyright © 2020-2023  润新知