JavaScript中的null和undefined用法解析


Posted in Javascript onSeptember 30, 2019

1.概述

null和undefined属于js中两种不同的基本数据类型,都可以表示“没有”,含义非常相似。将一个变量赋值为undefined或null,老实说,语法效果几乎没区别。并且在if语句的判断条件中,它们都会自动转为false,相等运算符(==)甚至直接报告两者相等

var a = null;
var b = undefined;
if (!a) {
 console.log('a is false');
}//a is false
if (!b) {
 console.log('b is false');
}//b is false
if (null == undefined) {
 console.log('null == undefined is true')
}//null == undefined is true

null是一个表示“空”的对象,转为数值时为0;undefined是一个表示"此处无定义"的原始值,转为数值时为NaN。

Number(null); // 0
null + 9; // 9
Number(undefined); // NaN
undefined + 9; // NaN

2.用法和含义

对于null和undefined,大致可以像下面这样理解。null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。比如,某个函数接受引擎抛出的错误作为参数,如果运行过程中未出错,那么这个参数就会传入null,表示未发生错误。undefined表示“未定义”,下面是返回undefined的典型场景。

// 变量声明了,但没有赋值
var i;
i // undefined

// 调用函数时,应该提供的参数没有提供,该参数等于 undefined
function f(x) {
 return x;
}
f() // undefined

// 对象没有赋值的属性
var o = new Object();
o.p // undefined

// 函数没有返回值时,默认返回 undefined
function f() {}
f() // undefined

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 继承实现例子
Aug 12 Javascript
基于jquery跨浏览器显示的file上传控件
Oct 24 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
Jun 08 Javascript
JavaScript使用RegExp进行正则匹配的方法
Jul 11 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
js实现分割上传大文件
Mar 09 Javascript
js自调用匿名函数的三种写法(推荐)
Aug 19 Javascript
概述BootStrap中role="form"及role作用角色
Dec 08 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
Dec 18 Javascript
JavaScript canvas实现跟随鼠标事件
Feb 10 Javascript
vue 使用post/get 下载导出文件操作
Aug 07 Javascript
JavaScript函数柯里化
Nov 07 Javascript
vue resource发送请求的几种方式
Sep 30 #Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 #Javascript
bootstrap table实现iview固定列的效果实例代码详解
Sep 30 #Javascript
JavaScript实现图片上传并预览并提交ajax
Sep 30 #Javascript
浅探express路由和中间件的实现
Sep 30 #Javascript
JavaScript实现单图片上传并预览功能
Sep 30 #Javascript
解决vue cli使用typescript后打包巨慢的问题
Sep 30 #Javascript
You might like
php基础知识:控制结构
2006/12/13 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
python备份文件的脚本
2008/08/11 Python
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
品恩科技软件测试面试题
2014/10/26 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
大学生毕业鉴定
2014/01/31 职场文书
cf收人广告词大全
2014/03/14 职场文书
美化环境标语
2014/06/20 职场文书
毕业典礼主持词
2015/06/29 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技