1.js有六种数据类型,分别是:undefined、null、string、boolean、number、object

首先来说下undefined这个数据类型,可以分为四步进行详解。

第一:是什么

undefined是其中一种数据类型,它只有一个值,怎么说呢,使用console.log(undefined);在浏览器输出只有一个值,就是undefined.

第二:什么情况会出现,如何判断呢?

平时项目中出现不少undefined,一般出现的情况是

1、声明了一个变量,但是未初始化该变量,因为未初始化的值默认就会是undefined。

2、一个function函数中,没有显式return返回值,就默认的返回值是undefined

3、js中函数的形参,当function被调用的时候传入的参数小于函数申明的形式参数,那么多余的形参是默认是undefined(其实就是该形参还未被赋值)。

数据类型一般的判断就是typeof()操作符来检测其数据类型,var aa;typeof(aa);输出是字符串的“undefined”

需要注意的是:对于尚未声明过的变量和未初始化的变量,使用typeof()检测时,都是返回“undefined”

第三:它与null的区别,在代码中如何避免这种出现undefined这种情况

1、null代表声明了是一个空对象,它也只是一个值,只能执行的操作是==或者!=一些操作符,对于有意保存对象的变量来说,但是还没有真正保存对象,就应该明确地让该变量保存为null值,这样一来,就可以通过直接检查null的值就可以知道相对应的变量是否已经保存了一个对象的引用,而不再是一个空对象了。

if(car!=null){

//对car对象执行某些操作

}

注意:console.log(undefined==null) 输出是true

尽管null和undefined是不同的,但它们都表示"值的空缺",null表示"空值",undefined表示"未定义"。两者往往可以互换。判断相等运算符==认为两者是相等的。

2、类型转换的区别

undefined:

null: 

typeof(undefined) 输出是undefined,null输出是object,可以使用该方法区别undefined和null。

第四:如何判断空值undefined和null

正确判断undefined的方法:

var exp = undefined;
if (typeof(exp) == "undefined")
{alert("undefined");
}

正确判断null的方法

var exp = null;
if (!exp && typeof(exp)!=”undefined” && exp!=0)
{
alert(“is null”);
} 

注意:尽管如此,我们在 DOM 应用中,一般只需要用 (!exp) 来判断就可以了,因为 DOM 应用中,可能返回 null,可能返回 undefined,如果具体判断 null 还是 undefined 会使程序过于复杂

详细的判断null和undefined的文章是:https://www.cnblogs.com/thiaoqueen/p/6904398.html

变量undefined详解相关推荐

  1. C++条件变量使用详解

    1. condition_variable介绍 在C++11中,我们可以使用条件变量(condition_variable)实现多个线程间的同步操作:当条件不满足时,相关线程被一直阻塞,直到某种条件出 ...

  2. python变量类型-Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  3. Nginx内置变量以及日志格式变量参数详解

    Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有 ...

  4. python的常量和变量_python中的常量和变量代码详解

    局部和全局变量: # name='lhf' # def change_name(): # # global name # name='帅了一比' # print('change_name',name) ...

  5. ThinkPHP模版引擎之变量输出详解

    ThinkPHP模版引擎之变量输出详解 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下,做出一些总结,分享给大家供大家参考.具体分析如下: 我们已经知道了 ...

  6. windows上安装python3教程以及环境变量配置详解

    这篇文章主要介绍了windows上安装python3教程以及环境变量配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.在浏览器搜索pyth ...

  7. python指定变量类型_Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  8. c语言结构体成员变量私有化,C语言中结构体变量私有化详解

    C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...

  9. Windows系统环境变量path详解

    Windows系统环境变量path详解 大家平时有没有编辑好path变量,可是运行结果却不尽人意的情况,那么希望看完我这篇关于path变量的文章对大家有所帮助,在文章的结尾有参考文档和笔者之前踩过的坑 ...

  10. [SV]SystemVerilog枚举型变量语法详解及应用举例

    SystemVerilog枚举型变量语法详解及应用举例 This section provides the examples to declare SystemVerilog enum of logi ...

最新文章

  1. CF703D Mishka and Interesting sum(求区间出现次数偶数次数的异或和)
  2. 【问题】定时任务整理笔记附问题求大佬解答!!!!
  3. jQuery.extend与jQuery.fn.extend的区别
  4. PHP项目部署在tomcat,在Tomcat中部署Web项目的操作方法(必看篇)
  5. json.stringify()与json.parse()的区别,json.stringify()的妙用
  6. PHP开发学习-Apache+PHP+MySQL环境搭建
  7. 【题解】Atcoder ARC#90 F-Number of Digits
  8. cache 的设计与实现
  9. unity的代码优化
  10. 参数曲面matlab,MATLAB空间曲面的实现方法
  11. MacBooster CleanMyMac CCleaner三款Mac清理工具该如何选择
  12. 抖音短视频在线下载无水印,
  13. win gvim erlang 环境配置
  14. 太原理工大学信息与计算机学院桑胜波,Direction leader: Sang Shengbo
  15. ios手机编辑html转pdf文件,苹果手机居然能一键转换PDF文件?iPhone老司机才知道...
  16. xmanager 5 linux 6.5,工欲善其事必先利其器 —— Xmanager Enterprise 5 和 RealVNC 5/6 介绍...
  17. linux shell编写脚本,执行命令同时操作多台主机
  18. var fd = new FormData();传不了数据解决方案
  19. 小米小爱同学PC版下载地址
  20. 我的友谊之舟也曾颠簸

热门文章

  1. 【案例4-8】模拟物流快递系统
  2. python输入某年某月某日歌词_python求输入某年某月某日,判断这一天是这一年的第几天...
  3. Debian10.6 Xfce 系统安装教程
  4. 浙江工大学计算机学院保研,浙江工业大学计算机学院保研初试名单
  5. 古风系统仙侠文推荐_5本古典仙侠全本精品小说,文笔精湛,仙味十足,值得细品一二...
  6. 返利系统功能详细介绍
  7. SVN提交时出现remains in conflict错误
  8. 计算机win7不断重启,win7系统无故自动重启的解决办法
  9. 基于matlab算法的可靠度分析,参考基于matlab算法的可靠度分析
  10. 论文阅读—《Fuzzy Reinforcement Learning Algorithm for the Pursuit-Evasion Differential Games 》