zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    DBHelper
    jsTree使用
    爬虫系列之Scrapy框架
    Mongodb安装
    爬虫系列之mongodb
    爬虫学习目录
    爬虫之selenium模块
    爬虫简介与requests模块
    爬虫数据解析的三方式
    线程相关
  • 原文地址:https://www.cnblogs.com/xiaofeixiang/p/5020726.html
Copyright © 2011-2022 走看看