tips null和undefined的区别

1、undefined类型

  undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:
        var demo;
        alert(demo == undefined);//true
    这个例子只声明了变量,但未进行初始化。它的结果和下面的例子是等价的。
        var demo = undefined;    
        alert(demo == undefined);//true
        注意:字面值undefined主要用于比较
    但是,包含undefined和尚未定义的变量还是不一样的。比如:
        alert(age);    //产生错误age is not defined
    下面我们用typeof操作符来进行下面的操作:
        var test;
        console.log(typeof test);//undefined
        console.log(typeof age);//undefined
    结果表明,对未初始化和未声明的变量执行typeof操作都会返回undefined值。那么可以推导出,当typeof操作符返回undefined时,那么说明被检测的变量还没被声明。
    
    扩展:undefined的类型转换
            console.log(Boolean(undefined));    //false
            console.log(Number(undefined));        //NaN
            console.log(String(undefined));        //undefined
        
        undefined的类型鉴别
            console.log(typeof undefined);        //undefined
            console.log(typeof 'undefined');     //string
    
    注意:undefined不是关键字

2、null类型
    null类型是第二个只有一个值的数据类型。从逻辑角度看,null值表示一个空的指针对象(这个的具体了解见对象的原型),而这也正式使用typeof操作符检测null时,会返回object的原因。
        var a= null;
        console.log(typeof a);//object
        到这里,我们该注意:null是空的对象指针,而[]是空数组,{}是空对象,三者不同。
    扩展:null的类型转换
          console.log(Boolean(null));    //false
          console.log(Number(null));    //0
          console.log(String(null));    //null
      null的类型鉴别
          console.log(typeof null);    //object
          console.log(typeof 'null');    //string
          由于null是null是空的对象指针,我们仅仅用typeof操作符还不行
              console.log(null === null);//true,判断一个值是否为null的最好方法是和null进行恒等比较
              console.log(undefined === null);//false
              console.log('null' === null);//false
              console.log(undefined === undefined);//true
              console.log('undefined' === undefined);//false

  注意:null是关键字

3、理解

  null是一个表示“无”的对象,转为数值时为0;undefined表示“无”的原始值,转化为数值时为NaN。

tips null和undefined的区别的更多相关文章

  1. 字符串怎么换行 || 字符串中使用单引号时应该怎么写 || 保留两位小数 || 数字0在if中的意思是false || 什么情况下会会报undefined || null和undefined的区别 ||

    换行的字符串 "This string\nhas two lines" 字符串中使用单引号时应该怎么写 'You\'re right, it can\'t be a quote' ...

  2. JS中null与undefined的区别

    1.typeof操作符 用来检测变量的数据类型 例:typeof 3.14 //返回number typeof [1,2,3]  //返回object 2.null 只有一个值的特殊类型,表示一个空对 ...

  3. js操作css样式,null和undefined的区别?

    1.js操作css的样式 div.style.width="100px"在div标签内我们添加了一个style属性,并设定了width值.这种写法会给标签带来大量的style属性, ...

  4. 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

    浅谈JS中的!=.== .!==.===的用法和区别   var num = 1;     var str = '1';     var test = 1;     test == num  //tr ...

  5. json,js中typeof用法详细介绍及NaN、 null 及 undefined 的区别

    JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 在js使用中的一个函 ...

  6. null和undefined的区别、数组和伪数组的区别

    null和undefined的区别 undefined: 字面意思是未定义的值,语义是希望表示一个变量最原始的状态,而非人为操作的结果.这种原始状态会在以下四个场景中出现: 声明了一个变量但没有赋值 ...

  7. 浅谈js中null和undefined的区别

    在JS中,null和undefined是经常让人摸不着头脑的东西,尤其是在数据初始化以及处理的过程中,经常稍微不注意,就会让页面在渲染时出现报错,下面来细说下,这两者之间的区别: null 表示一个对 ...

  8. JavaScript null和undefined的区别

    前言 1995年javascript诞生时,最初像Java一样,只设置了null作为表示"无"的值.根据C语言的传统,null被设计成可以自动转为0 但是,javascript的设 ...

  9. JavaScript中Null和Undefined的区别

    Null: null是js中的关键字,表示空值,null可以看作是object的一个特殊的值,如果一个object值为空,表示这个对象不是有效对象. Undefined: undefined不是js中 ...

随机推荐

  1. C/C++在Java项目、Android和Objective-C三大平台下实现混合编程

    Android和iOS开发都支持C++开发,可以一套代码多平台使用.同时C++难以反编译的特性也可以为Android开发带来代码的保密,另一native特性也可以提高代码的运行效率. 一.为什么使用C ...

  2. 最近面试遇到的Windows相关的题目

    上周准备在公司内部转岗,面了3个部门windows客户端相关的工作,最终拿到3个Offer,主要涉及C++和Windows两大块内容,C++的题目基本都答上了,Windows一直都是我的弱项,在这里记 ...

  3. iphone/ipad/ipod设置VPN(pptp连接方式)

    一.点击桌面上的-设置-图标进入设置(如图) 二.点击-通用-进入通用设置 三.点击-VPN-进入VPN设置(如图) 四.点击添加VPN设置进行设置 五.选择并连接

  4. 【LeetCode】268. Missing Number

    Missing Number Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one ...

  5. Lumia 830 win10m 启用触摸按键

    用了一年半的830疑似翘屏… 按键基本失灵 每次按的时候基本都是 appbar 那里有反映… 实在懒于换手机(主要是不想花钱…) 研究下怎么启用虚拟按键,还能再战几年… 启用虚拟按键 其实简单说法就是 ...

  6. Go 若干技巧

    此文来自 http://denvergophers.com/2013-09/tips-and-tricks.slide ###本文主要涉及到: 1. formatting 技巧 2. 异常处理技巧 3 ...

  7. appToken 来源

    .appToken的来源ActivityRecord, 用于在ActivityManagerService中记录Activity相关的信息(ActivityThread端 用的是ActivityCli ...

  8. DB2中OLAP函数使用示例

      下面的需求是将不仅获取查询的结果集,还要将结果集的SIZE返回.结果集的SIZE是无法通过CURSOR获取的.   通常聚合函数在二种情况下,使用默认分组即没有分组.可以直接使用,比如 selec ...

  9. vmware 无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件

    点击“开始→运行”,在运行框中输入 CMD 回车打开命令提示符,然后依次执行以下命令. net start vmci net start vmx86 net start VMnetuserif sc ...

  10. datagridview设置currentrow为指定的某一行[转]

    最近由于程序需要,需要实现指定的行为datagridview的currentrow ,当我设置 dataGridView1.Rows[i].Selected = true时,刷新后,界面显示是当前行被 ...