zoukankan      html  css  js  c++  java
  • 浅谈undefined和null

    浅谈Null和Undefind

    zhanglei

    风流倜傥小小张

    git:zhnaglei.github.io

    在javascript中,null是字面量同时也是语言中的关键字,用来表示无法识别的对象,换句话说,就是用来表示“无值(no value)”,虽然undefined实际上也表示不存在的值。
    其都是完全不可变得,没有属性没有方法,也不能给其属性复制的,事实上,如果访问一个或定义一个属相将会引发一个类型的错误,正如他们的命子一样,他们完全是无效的值。

    null==0; //false
    undefined=="" //false
    null==false //false
    undefined==false //false
    null==undefined  //true
    

    尽管如此,但是null和undefined并不是等价的,每个作为独特的类型的唯一成员,undefined是undefined类型和null是null类型,使用等价操作符其比较两个值:

    undefined===null; //false
    

    其实你可以理解为undefined代表一个意想不到的得没有值而null作为预期没有值得代表。

    产生undefined的值

    1.访问一个不存在的值

    var foo //undefined
    

    2.访问一个不存在的对象属性或数组时,返回的值为undefined

    var array = [1, 2, 3];
    var foo = array.foo; // foo 属性不存在, 返回 undefined
    var item = array[5]; // 数组中没有索引为5的项,返回 undefined
    

    3.函数没有返回值的时候,返回值为undefined

    var value = (function(){})(); // 返回 undefined
    

    4.函数调用时未提供参数

    (function(undefined){
    
    	// 参数是 undefined
    })();
    

    5.void操作符也是可以返回一个undefined值

    function isUndefined(obj){
    	return obj === void 0;
    }
    

    总结:undefined是一个预定的全局变量(不像null关键字)初始化为undefined

    undefined is window  //true
    

    产生null的值

    null通常作为一个空应,常用做一个空对象的预热,就像一个占位符。
    1.获取不到元素

    var notExist= document.getElementById('notExist');//null
    

    2.原型链的终点,也是返回null

    Object.getPrototypeOf(Object.prototype)//null
    张磊,技术菜鸟一枚,在web开发中一直苦苦挣扎,追求上岸! 联系QQ:1908002007 有技术问题可以随时联系,闲聊也是可以的!欢迎打扰!
  • 相关阅读:
    一个强大的在线开发IDE: CodeRun Studio
    PyQuery: 一个类似jQuery的Python库
    jQuery的图片剪切插件
    SVN导出两个版本之间的差异文件
    javascript中的focus()光标定位
    零分,裸奔真危险
    Django 截取中英文混合字符串
    360与金山网盾
    20100301:IE6的葬礼
    两个与jQuery相关的资源:导航条与提示
  • 原文地址:https://www.cnblogs.com/zhnaglei/p/6564010.html
Copyright © 2011-2022 走看看