javascript null vs undefined
这个是很古老的问题了.
一直存在争议,有些人认为,很多语言没用 undefined 也活的好好,为啥要 undefined 呢.
那有了 undefined 是否还需要 null 呢 ?
typesciprt 的 guilde 就说了, 只用 undefined 不要用 null, tslist 也可以设置规则不使用 null
听上去好像可以哦,但是开发时很快发现,这个规则并没用带来多大好处,因为你不用还有别人会用,而这个别人也会是你代码的一部分
比如 dom api, document.getElementById('dd') 就返回 null
比如框架 angular 也有一堆的 null
所以强制 2 选 1 基本上是不可行的.
那么我们到底应该什么时候用 undefined 和 null 呢?
我自己写 c# 多,所以我会比较能适应 null, 所以大部分情况下我会使用 null, 而遇到 js 原生的 undefined 就判断一下就好了。
js 有几个常见的地方会 undefined
1. 定义了变量但是暂时还没有复制.
2. 参数没用放
3. 函数没用返回
4. 一些原生 api, 比如 array.find
我的一个基本原则是,绝对不要赋值 undefined.
函数要嘛是 void 要嘛是 return
有 return 就不能是 undefined 了。
javascript null vs undefined的更多相关文章
- Javascript null和undefined
Javascript的数据类型包括数字.字符串.布尔值.null.undefined和对象.其中null和undefined是两种特殊的原始类型,很容易混淆.今天就来剖析一下null和undefine ...
- JavaScript null 和 undefined
null null 表示一个变量被声明了,并被赋值为空 var lzh = null; console.log(lzh); // null console.log(typeof lzh); // ob ...
- JavaScript null和undefined的区别
前言 1995年javascript诞生时,最初像Java一样,只设置了null作为表示"无"的值.根据C语言的传统,null被设计成可以自动转为0 但是,javascript的设 ...
- JavaScript null and undefined
http://stackoverflow.com/questions/6429225/javascript-null-or-undefined var x; x == null // true x = ...
- 【阿里李战】解剖JavaScript中的 null 和 undefined
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...
- 细说Javascript之null、undefined和NaN
首先简单介绍一下Javascript中的数据类型,Javascript中的数据类型有undefined,boolen,number,string和object等5种,前4种是原始类型,第5种是引用类型 ...
- 【温故而知新-Javascript】比较 undefined 和 null 值
JavaScript 中有两个特数值: undefined和null,在比较它们的时候需要留心.在读取未赋值的变量或试图读取对象没有的属性时得到的就是 undefined 值. <!DOCTYP ...
- Javascript 中的false、0、null、undefined和空字符串对象
在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象——false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...
- 区别Javascript中的Null与Undefined
在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undef ...
随机推荐
- matlab 代码分析
在command window中输入 >> profile on>> profile clear>> profile viewer 就会出现如下窗口 在将头所指向的 ...
- leetcode-第14周双周赛-1274-矩形内船只的数目
题目描述: 自己的提交: # """ # This is Sea's API interface. # You should not implement it, or s ...
- vue-cli创建的项目中引入第三方库报错'caller', 'calle', and 'arguments' properties may not be...
本文链接:https://blog.csdn.net/Sophie_U/article/details/76223978 问题: 在vue的main.js中引入mui.min.js时,报错. 如上,单 ...
- js学习笔记-日期对象
<body> <script> var d = new Date() console.log(d) var arr = ['星期日', '星期一', '星期二', '星期三', ...
- SSD接口详解,再也不会买错固态硬盘了
http://stor.51cto.com/art/201808/582349.htm 硬盘知识科普中,我们提到了SSD的发展史虽短,但是种类和协议比HDD不知道多到哪里去了.因此,本期小编就通过接口 ...
- 阿里云 Centos 7 PHP7环境配置 LNMP
首先更新系统软件 $ yum update 安装nginx 1.安装nginx源 $ yum localinstall http://nginx.org/packages/centos/7/noarc ...
- AcWing 228. 异或 (dfs+线性基)打卡
题目:https://www.acwing.com/problem/content/230/ 题意:有一个图,每条边有一个权值,现在求1-n的一条路径的最大异或和,一条边能经过多次,相应的也要计算那么 ...
- ssm项目配置多个数据源
在项目中到一些问题,一些查询模块需要链接另一个数据库,这时,就可以配置两个数据源进行操作. 1.创建jdbc.properties jdbc.url = jdbc:mysql://localhost: ...
- php对接极光推送
首先要明白php对接极光推送要做些什么,极光推送的大致流程是:你的服务器----->极光服务器------>app端.而php要做的就只有我们的服务器到极光服务器这个过程.极光服务器到ap ...
- HTML5: HTML5 Audio(音频)
ylbtech-HTML5: HTML5 Audio(音频) 1.返回顶部 1. HTML5 Audio(音频) HTML5 提供了播放音频文件的标准. 互联网上的音频 直到现在,仍然不存在一项旨在网 ...