变量undefined详解
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详解相关推荐
- C++条件变量使用详解
1. condition_variable介绍 在C++11中,我们可以使用条件变量(condition_variable)实现多个线程间的同步操作:当条件不满足时,相关线程被一直阻塞,直到某种条件出 ...
- python变量类型-Python 变量类型详解
变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...
- Nginx内置变量以及日志格式变量参数详解
Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有 ...
- python的常量和变量_python中的常量和变量代码详解
局部和全局变量: # name='lhf' # def change_name(): # # global name # name='帅了一比' # print('change_name',name) ...
- ThinkPHP模版引擎之变量输出详解
ThinkPHP模版引擎之变量输出详解 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下,做出一些总结,分享给大家供大家参考.具体分析如下: 我们已经知道了 ...
- windows上安装python3教程以及环境变量配置详解
这篇文章主要介绍了windows上安装python3教程以及环境变量配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.在浏览器搜索pyth ...
- python指定变量类型_Python 变量类型详解
变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...
- c语言结构体成员变量私有化,C语言中结构体变量私有化详解
C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...
- Windows系统环境变量path详解
Windows系统环境变量path详解 大家平时有没有编辑好path变量,可是运行结果却不尽人意的情况,那么希望看完我这篇关于path变量的文章对大家有所帮助,在文章的结尾有参考文档和笔者之前踩过的坑 ...
- [SV]SystemVerilog枚举型变量语法详解及应用举例
SystemVerilog枚举型变量语法详解及应用举例 This section provides the examples to declare SystemVerilog enum of logi ...
最新文章
- CF703D Mishka and Interesting sum(求区间出现次数偶数次数的异或和)
- 【问题】定时任务整理笔记附问题求大佬解答!!!!
- jQuery.extend与jQuery.fn.extend的区别
- PHP项目部署在tomcat,在Tomcat中部署Web项目的操作方法(必看篇)
- json.stringify()与json.parse()的区别,json.stringify()的妙用
- PHP开发学习-Apache+PHP+MySQL环境搭建
- 【题解】Atcoder ARC#90 F-Number of Digits
- cache 的设计与实现
- unity的代码优化
- 参数曲面matlab,MATLAB空间曲面的实现方法
- MacBooster CleanMyMac CCleaner三款Mac清理工具该如何选择
- 抖音短视频在线下载无水印,
- win gvim erlang 环境配置
- 太原理工大学信息与计算机学院桑胜波,Direction leader: Sang Shengbo
- ios手机编辑html转pdf文件,苹果手机居然能一键转换PDF文件?iPhone老司机才知道...
- xmanager 5 linux 6.5,工欲善其事必先利其器 —— Xmanager Enterprise 5 和 RealVNC 5/6 介绍...
- linux shell编写脚本,执行命令同时操作多台主机
- var fd = new FormData();传不了数据解决方案
- 小米小爱同学PC版下载地址
- 我的友谊之舟也曾颠簸
热门文章
- 【案例4-8】模拟物流快递系统
- python输入某年某月某日歌词_python求输入某年某月某日,判断这一天是这一年的第几天...
- Debian10.6 Xfce 系统安装教程
- 浙江工大学计算机学院保研,浙江工业大学计算机学院保研初试名单
- 古风系统仙侠文推荐_5本古典仙侠全本精品小说,文笔精湛,仙味十足,值得细品一二...
- 返利系统功能详细介绍
- SVN提交时出现remains in conflict错误
- 计算机win7不断重启,win7系统无故自动重启的解决办法
- 基于matlab算法的可靠度分析,参考基于matlab算法的可靠度分析
- 论文阅读—《Fuzzy Reinforcement Learning Algorithm for the Pursuit-Evasion Differential Games 》