文档章节

Js 判断空的常用语句

learn_more
 learn_more
发布于 2014/09/21 11:18
字数 814
阅读 173
收藏 1

Javascript中对空的判断有许多形式,但是判断语句大多都不是很准确,原因是所谓的空具体指什么不是很清楚,诸如有空字符,有空对象,

有null、undefined、false 、0、“”、{}...........

下面就做一个简单的归纳总结,希望以后不要再犯错误

第一点:正确认识一个有意义的变量

    所有需要使用的变量必须声明或赋值过,如果没有声明又没有赋值过就使用,会发生错误 :ReferenceError: obj is not defined

第二点:了解 typeof 的使用

    (typeof obj) 的值是一个字符串,返回值

          1. 'undefined' --- 这个值未定义;

2. 'boolean'    --- 这个值是布尔值;

3. 'string'        --- 这个值是字符串;

4. 'number'     --- 这个值是数值;

5. 'object'       --- 这个值是对象或null;

6. 'function'    --- 这个值是函数。

第三点:if条件的判断

    简单的if条件判断是:对 undefined、 null、 ""、false、0 的结果为false,否则为true 

第四点: 逻辑运算的特殊性

    首先关系运算的结果我们都很明确 true or false;很多语言中逻辑运算的结果也就是 true or false ,比如Java。但是,Js则不同,她在逻辑运算的结果上的返回值并不是单纯的true or false ,而是返回最后一个匹配的结果值。

    比如: var obj = obj || {} ;  如果站在Java的语言角度看的话,obj最后是一个Boolean类型值,然而在Js中是指,如果obj有初值那么obj就是原来的值,否则就是一个空对象,所以其结果不一定是Boolean类型的值;这里强调 || 逻辑或运算 的执行规则:运算顺序从左至右,遵循短路运算,如果遇到 undefined、 null、 ""、false、0 中的任意一个则进行下一个值的判断,直到找到一个不为undefined、 null、 ""、false、0当中的值后退出抑或是最后一个值前的所有值都为undefined、 null、 ""、false、0,那么就直接返回最后一个值。

    比如:var obj = true && obj ;  同样的返回不一定就是true,如果obj之前已经被初始化过,则返回obj的值。逻辑运算与同样遵循短路运算,从左至右如果遇到undefined、 null、 ""、false、0当中的任意一个都会直接返回false,然而如果在最后一个值的前面都不是undefined、 null、 ""、false、0当中之一则把最后一个值返回。

第五点:常用的判断

    // 判断 undefined、 null、 ""、false、0

    if(obj)  // 对 undefined、 null、 ""、false、0 的结果为false,否则为true

    if(!obj) //对 undefined、 null、 ""、false、0 的结果为true , 否则为false

    // 判断 undefined

    if(!obj && (typeof obj) =='undefined')

    // 判断 null

    if(!obj && (typeof obj) == 'object')    

    // 判断 0

    if(!obj && obj==0)

    // 判断false

    if(!obj && (typeof obj) == 'boolean')

    // 判断 “”

    if(!obj && (typeof obj) == 'string')

    // 判断 null undefiend  false 但是要排除 0 和 ""

    if(!obj && obj != 0  && (typeof obj) !='string')

    // 判断 {} , 下面是jQuery中isEmptyObject 的源码,他仅仅对 typeof 'object' 而且 不为{}的对象返回true

    isEmptyObject = function( obj ) {

  var name;

  for ( name in obj ) {

   return false;

}

  return true;

 }

    

    // 判断 null undefined

    if( obj == null)

    // 判断 null  undefined {} 但要排除 false 0 “”

    if( (obj == null)  ||  ($.isEmptyObject(obj))  )

    


© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
前端基础-JavaScript

开发工具与关键技术:DW/浏览器 ;简单使用js。 作者:刘佳明 撰写时间:2019年1月 18 日 前面已经随手写过了关于网页编辑的一些基础布局和标签的认识;这篇文章在这里为大家简单的介绍一下关...

没有,
01/18
0
0
我认为一些必知的JavaScript基础知识

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。 JS作用:表单验证,减轻服务端的压力;添加页面动画效果;动态更改页面内容;Ajax网络请求。 下面简...

peakedness丶
2018/11/02
0
0
JavaScript学习记录day3-if语句、循环

JavaScript学习记录day3-if语句、循环 @(学习)[javascript] [toc] 1. if语句 JavaScript使用if () { ... } else { ... }来进行条件判断。 其中else语句是可选的。如果语句块只包含一条语句,...

ygqygq2
2018/06/29
0
0
JS如何去除 特定 HTML标签????

风水 客厅 这个是tag聚合,程序输出tag后,会产生很多空的tag,想用JS去掉为空的 HTML标签: 思路:1、用JS去除 class tag内 这种为空的HTML 思路:2、JS判断 class tag 下 中 a链接内是否为空...

古柯
2015/05/20
4.5K
4
JS:JavaScript编程语言基础语法总结

版权声明:本博客内容均归Jason Niu版权所有 https://blog.csdn.net/qq_42229253/article/details/83855630 JS:JavaScript编程语言基础语法总结 常用基础语法 一、变量 1、声明变量var 二、...

JasonNiuniu
2018/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部