zoukankan      html  css  js  c++  java
  • JS原始类型undefined和null

    前言

    JS中undefined和null均被用来表示无,它们都是原始数据类型,而且只有细微的差别:null用来表示一个“无”的对象,转为数值时结果为0;undefined用来表示一个“无”的原始值,转为数值时结果为NaN。

    Number(null) // 0
    Number(undefined) // NaN
    

    undefined

    Undefined类型只有一个值,就是undefined。

    以下情况均返回undefined:

    1. 变量声明后没有赋值
    2. 获取对象不存在的属性
    3. 没有返回值的函数执行结果
    4. 函数的参数没有传入
    5. void(expression)
    var i;
    console.log(i);//undefined
    
    var o = {};
    console.log(o.name);//undefined
    
    function f(){};
    console.log(f());//undefined
    
    function f(x){return x;}
    console.log(f());//undefined
    
    console.log(void(0));//undefined
    

    可以使用typeof操作符判断一个值是否是undefined类型

    console.log(typeof undefined === 'undefined') // true
    

    null

    Null类型只有一个值,就是null。逻辑上null表示一个空的对象指针。

    console.log(document.getElementById('test'));//null
    

    不可以使用typeof操作符判断一个值是不是null,因为typeof null结果是'object'。最简单的方法是判断它是否等于null。

    console.log(typeof null);//'object'
    console.log(null === null);//true
    console.log(undefined === null);//false
    console.log('null' === null);//false
    

    null和undefined虽然略有不同,但都表示缺省值,null表示空值,undefined表示未定义。它们是相等的。

    console.log(null == undefined);//true
    

    由于null和undefined都不是构造器类型,所以它们没有任何属性和方法,使用.[]来存取这两个值的属性和方法时均产生类型错误。

    var s = null
    s.name // 报错
    
    优秀文章首发于聚享小站,欢迎关注!
  • 相关阅读:
    C语言 strcat
    C语言 strncpy
    C语言 strcpy
    C语言 main
    可显示Android设备选择列表,并进入指定Android设备Console的Shell脚本
    Android系统如何录制屏幕(录制成mp4格式)
    据说有99%的人都会做错的面试题
    一道淘汰85%面试者的百度开发者面试题
    用Android模拟器也可以开发和测试NFC应用
    一道腾讯面试题的思考:到底谁会赢?
  • 原文地址:https://www.cnblogs.com/yesyes/p/15351848.html
Copyright © 2011-2022 走看看