教大家如何在js中判断一个值是否是undefined,null,NaN,以及如何单独判断


平常开发过程中大家可能遇到一种问题,就是取页面某个值的时候获取不到这个var就是undefined了,如果是数字类型的就成了NaN,这个时候判断页面这个值是否存在成了一个麻烦事.

那么有没有什么方法可以在我获取了之后判断有效性呢?还真的有,

判断undefined,null,NaN如下:

 var tmp = null; //这个tmp可以是undefined,NaN,下面的判断都会返回true.
if (!tmp) {
3   alert("null or undefined or NaN");
4 }

(*切记:!0也是会返回true的,也就是说0也会被当做无效数据,请根据实际情况自己组合判断)

加一个叹号就行了,有的朋友就会问了,如果我需要在这个数据有效时做某些操作,难道要再加一个叹号?,对,的确是这样的.如下:

 var tmp = 'wuyou';
if (!!tmp) {
alert("数据有效");
}

单独判断null,undefined,NaN的方法:

判断NaN:

 var tmp = 0/0; //0做除数是算法错误,所以结果是NaN
if(isNaN(tmp)){
alert("NaN");
}

判断undefined:

 var tmp = undefined;
if (typeof(tmp) == "undefined"){
alert("undefined");
}

判断null:

 var tmp = null;
if (!tmp && typeof(tmp)!="undefined" && tmp!=0){
alert("null");
}

判断undefined和null:

 var tmp = undefined;
if (tmp== undefined)
{
alert("null or undefined");
}
var tmp = undefined;
if (tmp== null)
{
alert("null or undefined");
}

其实undefined和null是一样的null == undefined.唯一不同就是当tmp是null时

typeof(tmp)!="undefined"为true,undefined为false

谢谢大家看我的博客,喜欢的话发个评论吧

分享一个在js中判断数据是undefined,NaN,null,的技巧的更多相关文章

  1. js中判断对象数据类型的方法

    对js中不同数据的布尔值类型总结:false:空字符串:null:undefined:0:NaN.true:除了上面的false的情况其他都为true: 如下: var o = { 'name':'l ...

  2. 关于JS中判断是数字和小数的正则表达式用法

    关于JS中判断是数字和小数的正则表达式用法 正则表达式 正则表达式是由一个字符序列形成的搜索模式. 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容. 正则表达式可以是一个简单的字符,或一 ...

  3. js中判断数据类型的四种方法总结

    js中判断数据类型的四种方法 前言 在js中,我们经常需要判断数据的类型,那么哪些方法可以用来判断数据的类型呢?哪种方法判断数据类型最准确呢? 我们来一个个分析: 1.typeof typeof是一个 ...

  4. JS中判断鼠标按键的问题

    JS中判断鼠标按键的问题.IE左键是 window.event.button = 1右键是 window.event.button = 2中键是 window.event.button = 4没有按键 ...

  5. jq、js中判断checkbox是否选中

    最近在开发项目时用到checkbox复选框,其中遇到一个问题:在JQ中如何判断checkbox是否被选中呢?之前用JQ获取元素的属性用的都是attr(),但用在checkbox上却没有用,原因何在?? ...

  6. Js中判断变量存不存在的问题

    前面写过jquery对象存在与否的判断.现在谈下Js中判断变量存不存在的问题. 如果这样if(!a),当变量a在js中没有申明时,就会报错,那么接下去的代码将不会被执行.注意,这种判断只要变量申明过, ...

  7. js中判断对象具体类型

    大家可能知道js中判断对象类型可以用typeof来判断.看下面的情况 <script> alert(typeof 1);//number alert(typeof "2" ...

  8. js中json数据简单处理(JSON.parse()和js中嵌套html)

    js中json数据简单处理(JSON.parse()和js中嵌套html) 一.总结 1.html中嵌套js:<script>js代码</script> 2.js中嵌套html ...

  9. JS 中的数据类型转换

    转成字符串 String 1. 使用 toString方法 这种方法可以将 number, boolean, object,array,function 转化为字符串,但是无法转换 null, und ...

随机推荐

  1. html高度塌陷问题解决

    高度塌陷的问题: 当开启元素的BFC以后,元素将会有如下的特性 1 父元素的垂直外边距不会和子元素重叠    开启BFC的元素不会被浮动元素所覆盖    开启BFC的元素可以包含浮动的子元素 如何开启 ...

  2. node定时任务

    var schedule = require('node-schedule') require('shelljs/global'); function scheduleCronstyle(){ sch ...

  3. Java Struts2 (三)

    一.国际化概念(了解) 1.什么是国际化 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 2.什么需要国际 ...

  4. mysql的一些sql用法

    mysql中修改列名: alter table 表名 change abc def 列类型;比如 alter table student change pws psw char(10);

  5. 实例解析Docker数据卷+数据卷容器+flocker数据共享+DockerHub操作

    Docker内部数据管理和Docker之间的数据共享为数据卷和数据卷容器,实例解析1.将本地的文件作为容器的数据卷,2.数据卷flocker插件实现容器集群(或者Docker Swarm)的数据共享3 ...

  6. mac安装brew, bower

    Mac安装Brew 安装命令如下:curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/loc ...

  7. javascript面向对象的写法02

    面向对象特性的初步实现 1.封装 利用作用域封装变量 作用域的概念是一样的,for语句,if语句等这些作用域内定义的变量只能作用域内访问,函数内定义的变量只能函数内访问. function Class ...

  8. 【Leetcode】【Medium】Combination Sum

    Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher ...

  9. Python初学者第五天 列表及简单操作

    5day 数据类型:列表 1.创建列表 user = ['aa','14',1,10,'aa',1,2,3,3,5,9] n = [] list() m = list() 2.查询 a.按索引查询 b ...

  10. sql with 写法

    with h_asign_id as ( select asign_id from assign_h h left join assignment a on a.id = h.asign_id whe ...