判断数组是否存在某个值:

  1. Array.indexOf(val) > -1 //存在 (缺陷:一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1,表达起来不够直观。二是,它内部使用严格相等运算符(===)进行判断,这会导致对NaN的误判。)
  2. Array.includes(val)

判断对象是否存在某个字段:

  1. obj["key"] != undefined

    (缺陷: 如果这个key定义了,并且就是很2的赋值为undefined)
  2. !("key" in obj)
  3. obj.hasOwnProperty("key")
  4. typeof item.editFlag === "undefined"

判断是否为空

JavaScript本身没有判断一个变量是不是空值的函数,因为变量有可能是string,object,number,boolean等类型,类型不同,判断方法也不同。所以在文章中写了一个函数,用以判断JS变量是否空值,如果是undefinednull''NaNfalse0[]{} ,空白字符串,都返回true,否则返回false

  1. function isEmpty(v) {
  2. switch (typeof v) {
  3. case 'undefined':
  4. return true;
  5. case 'string':
  6. if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;
  7. break;
  8. case 'boolean':
  9. if (!v) return true;
  10. break;
  11. case 'number':
  12. if (0 === v || isNaN(v)) return true;
  13. break;
  14. case 'object':
  15. if (null === v || v.length === 0) return true;
  16. for (var i in v) {
  17. return false;
  18. }
  19. return true;
  20. }
  21. return false;
  22. }

测试

  1. isEmpty() //true
  2. isEmpty([]) //true
  3. isEmpty({}) //true
  4. isEmpty(0) //true
  5. isEmpty(Number("abc")) //true
  6. isEmpty("") //true
  7. isEmpty(" ") //true
  8. isEmpty(false) //true
  9. isEmpty(null) //true
  10. isEmpty(undefined) //true

typeof

  1. typeof undefined === 'undefined'
  2. typeof null === 'object'
  3. //Boolean
  4. typeof true === 'boolean'
  5. //Number
  6. typeof 1 === 'number'
  7. //String
  8. typeof '111' === 'string'
  9. //Array
  10. typeof ['a','b'] === 'object'
  11. //Object
  12. typeof {a:1,b:2} === 'object'

判断数组方法:

  1. instanceof Array
  2. objName.constructor==Array (缺陷:在不同iframe中创建Array并不共享prototype;继承Array也为true,如:b.prototype=new Array)
  3. lengthsplicelength不可枚举(缺陷:object.propertyIsEnumerable('length')
  4. Array.isArray(objName)
  5. obj.prototype.toString.call(objName)==='[object Array]'

js 判断是不是空、值是否存在的更多相关文章

  1. js判断为空Null与字符串为空简写方法

    下面就是有关判断为空的简写方法.   代码如下: if (variable1 !== null || variable1 !== undefined || variable1 !== '') {  v ...

  2. JS判断时特殊值与boolean类型的转换

    扒开JQuery以及其他一些JS框架源码,常常能看到下面这样的判断,写惯了C#高级语言语法的我,一直以来没能系统的理解透这段代码. var test; //do something... if(tes ...

  3. js 判断数组的值是否有重复

    方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace( ...

  4. JS判断数组的值出现的次数,以及去重

    var arr = ["曹阳","曹阳","曹阳","张三","张三","张三" ...

  5. js判断为空

    function isEmpty (va){    if("undefined" == va){        return true;    }    if(null == va ...

  6. JS判断输入框值是否为空

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. Js判断对象是否为空,Js判断字符串是否为空

    Js判断对象是否为空,Js判断字符串是否为空,JS检查字符串是否为空字符串 >>>>>>>>>>>>>>>&g ...

  8. js判断input输入框为空时遇到的问题 弹窗后,光标没有定位到输入框,而是直接执行我的处理页面程序

    无论是会员注册还是提交订单,我们都要使用到form表单,此时我们在处理数据时,就要判断用户填写的信息.一次是直接通过js判断input输入框是否没有填信息,然后在后台处理文件中通过过滤字符串后再次判断 ...

  9. (转)用JS判断ckeditor3.6版本编辑器内容为空的方法

    因为编者我还是一个初学入门者,无论是JS还是PHP,都是懂了点皮毛.今天在研究ckeditor编辑器的时候遇到了一些问题,虽然这只是我的个人问题,但觉得可以分享给其他人,或许也有像我这样的初学者也会遇 ...

随机推荐

  1. Linux下安装使用MySQL

    网上找那些安装教程比较多的版本,版本只要不是太旧就行. 下载mysql 5.6.28 通用版64位二进制版,二进制版相当于windows的安装包,可以直接安装,如果是源码版,还需要编译后再进行安装. ...

  2. UI Framework-1: Aura Client API

    Client API The Aura Client API is an API Aura uses to communicate with the client application using ...

  3. jquery validate验证规则重用

    当多个控件验证规则相同时,如何避免冗余代码并应用相同规则呢? [1st way. addMethod+addClassRules] 场景:维护学生档案时需要维护父母.监护人.紧急联系人的身份证号码,此 ...

  4. 题解 P2330 【[SCOI2005]繁忙的都市】

    又是一道Kruskal题目. AC代码见下. 主要思路就是将所有的边储存起来,然后进行贪心地选择,期间需要判断两个端点是否有关联,这一过程通过并查集实现.Kruskal部分套模板就可以了. #incl ...

  5. 【Codeforces Round #421 (Div. 2) B】Mister B and Angle in Polygon

    [题目链接]:http://codeforces.com/contest/820/problem/B [题意] 给你一个正n边形; 然后让你在这正n边行中选3个点,组成一个角; 找出角的大小和所给的角 ...

  6. ArcGIS api for javascript——查询,然后单击显示信息窗口

    描述 本例展示如何配置查询任务为示例的工作流程: 1.用户单击一个要素来加亮显示. 2.用户再一次单击要素来查看属性信息的 InfoWindow. 本例查询USA州,因此ESRI_StateCityH ...

  7. Linux软防火墙ACL匹配的优化点

    首先.请求不要再诬陷Netfilter.尽管它有一些固有性能损耗,但敬请不要将iptables和Netfilter等同,假设你要抓元凶,请直接说iptables,而不要说成Netfilter!     ...

  8. UVA 11991 Easy Problem from Rujia Liu?【STL】

    题目链接: option=com_onlinejudge&Itemid=8&page=show_problem&problem=3142">https://uv ...

  9. ORA-01555错误总结(二)

    这篇文章紧接着上一篇"ORA-01555错误总结(一)".主要描写叙述延迟块清除导致的ORA-01555错误. 以下是一些简介(上一遍已经介绍过) ORA-01555错误是一种在o ...

  10. 数据格式转换 (三)Office文档转HTML

         HTML Filter 是由北京红樱枫软件有限公司根据HTML Ver 4.01/CSS式样,研制和开发的MS Office系列文档到HTML转换的通用程序库.便于用户实现对多种文档的统一管 ...