null与undefined到底有啥区别?
话不多说,直接先上结论: null
和 undefined
基本相同,只有细微差别
null
是表示缺少的标识,指示变量未指向任何对象,转为数值为0
undefined
表示 “缺少值”,即该处应该有值,但还没有定义,转为数值为NaN
//(1)null转为数值为0
console.log(Number(null));//0
console.log(null+3);//3
console.log(null == null);//true
console.log(null === null); //true
console.log(isNaN(null));false //(2)undefined转为数值为NaN
console.log(Number(undefined));//NaN(not a number)
console.log(3+undefined);//NaN
console.log(isNaN(undefined));//true //(3)null和undefined比较
console.log(null == undefined); //true,存在隐式类型转换
console.log(null === undefined);//false
/* "==="表示全等,二者类型不同,所以为false */
console.log(typeof null);//object数据类型
console.log(typeof undefined);//undefined数据类型
null 应用场景:
(1)作为函数的参数,表示该函数的参数不是对象
(2)作为对象原型链的终点
console.log(Object.getPrototypeOf(Object.prototype));//null
undefined 应用场景:
(1)一个没有被赋值的变量的类型是undefined
(2)调用函数时,应该提供的参数没有提供,该参数为undefined
(3)对象没有赋值的属性,该属性的值为undefined
(4)一个函数如果没有使用return语句指定返回值,就会返回undefined
//(1)变量未赋值
let a
console.log(a);//undefined //(2)函数参数未赋值
(function fn(x) {
console.log(x); //undefined
})() //(3)对象属性未赋值
let obj = {
name:'张三'
}
console.log(obj.name);
console.log(obj.age);//undefined //(4)函数没有返回值
function fn(){}
var x = fn();
console.log(x);//undefined
null与undefined到底有啥区别?的更多相关文章
- asp.net(c#)中String.Empty、NULL、"" 三者到底有啥区别和联系?
开门见山,首先看下面代码,你认为结果分别是什么? string str = string.Empty; string str1 = ""; string str2 = null; ...
- jsvascript null,undefined,undeclared的区别
1.undefined表示"缺少值",就是此处应该有一个值,但是还没有定义,转为数值时为NaN.典型用法是: (1)变量被声明了,但没有赋值时,就等于undefined. (2) ...
- null、undefined和NaN的区别
未定义的值和定义未赋值的值是undefined: null是一种特殊的Object,可以给变量赋一个值null,来清除变量的值: NaN是一种特殊的number:
- null,undefined,undeclared的区别
1.null表示"没有对象",即该处不应该有值,转为数值时为0.典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象. (2) 作为对象原型链的终点. 2.undefin ...
- 【阿里李战】解剖JavaScript中的 null 和 undefined
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...
- js null和undefined
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理. 总所周知:null == un ...
- 解剖JavaScript中的null和undefined【转】
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...
- 字符串怎么换行 || 字符串中使用单引号时应该怎么写 || 保留两位小数 || 数字0在if中的意思是false || 什么情况下会会报undefined || null和undefined的区别 ||
换行的字符串 "This string\nhas two lines" 字符串中使用单引号时应该怎么写 'You\'re right, it can\'t be a quote' ...
- tips null和undefined的区别
tips null和undefined的区别 1.undefined类型 undefined类型只有一个值,即特殊的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是und ...
随机推荐
- etcd学习(7)-etcd中的线性一致性实现
线性一致性 CAP 什么是CAP CAP的权衡 AP wihtout C CA without P CP without A 线性一致性 etcd中如何实现线性一致性 线性一致性写 线性一致性读 1. ...
- 求方程 p+q+r+s+t=pqrst 的全体自然数解(约定p<=q<=r<=s<=t)
解:方程左右的表达式分别记为u和v. 由题设有5t>=u. 0本来是不算入自然数的,现在的趋势是把0也算作自然数. 若p=0,则v=0,为使得u=0成立,q.r.s.t都必需为0. 这样就得到方 ...
- MySQL中的seconds_behind_master的理解
通过show slave status查看到的Seconds_Behind_Master,从字面上来看,他是slave落后master的秒数,一般情况下,也确实这样,我们可以通过Seconds_Beh ...
- Kickstart部署多系统
原文转自:https://www.cnblogs.com/itzgr/p/10029587.html作者:木二 目录 一 准备 1.1 完整架构:Kickstart+DHCP+HTTP+TFTP+PX ...
- React Native startReactApplication 方法简析
在 React Native 启动流程简析 这篇文章里,我们梳理了 RN 的启动流程,最后的 startReactApplication 由于相对复杂且涉及到最终执行前端 js 的流程,我们单独将其提 ...
- NOIP模拟「random·string·queen」
T1:random 我又来白剽博客了: 详细证明请看土哥 土哥写的不是很详细,我在这里详细写一下: 首先,对于f[n]的式子: 加一是那一个对的贡献,大C是选其余的几个数,\(2^ ...
- MongoDB(11)- 查询数组
插入测试数据 db.inventory.insertMany([ { item: "journal", qty: 25, tags: ["blank", &qu ...
- Spring MVC拦截器浅析
Spring MVC拦截器 重点:Spring MVC的拦截器只会拦截控制器的请求,如果是jsp.js.image.html则会放行. 什么是拦截器 运行在服务器的程序,先于Servlet或JSP之前 ...
- openswan中的in_struct和out_struct函数
openswan中的in_struct和out_struct函数 文章目录 openswan中的in_struct和out_struct函数 1. 花絮 2. in_struct代码实现分析 3. 它 ...
- Spring全自动AOP和项目加入jar包
一.jar可以引进项目中,复制到路下后,要add as library,加载到工作空间中才能引入: 也jar包放在硬盘的项目目录外面,可以多个项目引入共用: 二.xml配置 1.aop全自动配置 2. ...