JavaScript中获取纯正的undefined的方法


Posted in Javascript onMarch 06, 2016

1、为什么要获取undefined?

因为undefined在javascript中不是保留字,可以被用户当做变量来赋值,这样如果我们后期需要用到undefined来检测一个变量的话,那么检测的值就不准确了;

举个栗子:

var undefined=10;
function sum(a,b){
 if(a===undefined||b===undefined){
  console.log("参数不正确");
 }18101130357
 return a+b;
}

sum(10,10)->本来正确的参数,控制台输出的确实"参数错误";

这时候,为了兼容所有的浏览器,我们就需要获取一个纯正的undefinde

2、怎样获取纯正的undefined?

1) void (0):

在ECMAScript 262规范,有如下描述:

The void Operator
The production UnaryExpression : void UnaryExpression is evaluated as follows:
Let expr be the result of evaluating UnaryExpression.
Call GetValue(expr).
Return undefined.

总之,记住无论void后的表达式是什么,void操作符都会返回undefined就好了

2) 传入一个为赋值的形参

[案例]

function(_undefined){
//函数体中不给_undefined赋值,形参_undefined的值就是undefined,在这个函数用就可以使用_undefined了
}

3)未赋值的变量

举个栗子:var num  //道理和2)是一样的

不要厌烦熟悉的事物,每天都进步一点;不要畏惧陌生的事物,每天都学习一点;

PS:js判断undefined类型

if (reValue== undefined){
 alert("undefined");
 }
 发现判断不出来,最后查了下资料要用typeof
方法:
if (typeof(reValue) == "undefined") { 
 alert("undefined"); 
}

typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"

Javascript 相关文章推荐
srcElement表格样式
Sep 03 Javascript
jquery实现手风琴效果实例代码
Nov 15 Javascript
jQuery中val()方法用法实例
Dec 25 Javascript
AngularJS仿苹果滑屏删除控件
Jan 18 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
Jan 19 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
JS简单验证上传文件类型的方法
Apr 17 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
Sep 11 Javascript
解决vue项目中出现Invalid Host header的问题
Nov 17 Javascript
JS面向对象编程详解
Mar 06 #Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 #Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 #Javascript
JavaScript的React框架中的JSX语法学习入门教程
Mar 05 #Javascript
在AngularJS框架中处理数据建模的方式解析
Mar 05 #Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 #Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
Mar 05 #Javascript
You might like
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
python3实现猜数字游戏
2020/12/07 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
学生打架检讨书1000字
2014/01/16 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
Python基础知识之变量的详解
2021/04/14 Python