JS中if判断 非空即为真 非0即为真
1、字符串参与判断时:非空即为真
判断字符串为空的方法
if(str!=null && str!=undefined && str !='')
可简写为
if(!str){
console.log(str)
}
2、数字参与if判断:非0非NAN即为真
var i = 0;
if(i){
alert('here');
}else{
alert('test is ok!');
} 输出结果为here
var i = 0;
if(i){
alert('here');
}else{
alert('test is ok!');
} 输出结果为test is ok
3、null类型参与判断
var i =null;
if (i){
alert("1")
}else{
alert("2")
}输出结果为2
4、undefined类型参与判断
var i;
if (i){
alert("1")
}else{
alert("2")
}输出结果为2
总结:数字参与判断时非0即为真,字符串参与判断时非空即为真,对象参与判断时非null非undefined即为真({}也为真)
5、在javascript中,哪些值能作为if的条件呢
1、布尔变量true/false
2、数字非0,非NaN/ (0 或NaN)
见下面的例子,莫以为负数就以为if语句为假了。
if(i){
alert('here');
}else{
alert('test is ok!');
}输出结果为here
3、对象非null/(null或undefined)
4、字符串非空串(“”)/空串("")
综上所述,对于字符串,不用写一大堆if(str!=null && str!=undefined && str !=''), 只要用一句
//do something
}
就可以了。
对于数字的非空判断,则要考虑使用isNaN()函数,NaN不和任何类型数据相等,包括它本身,只能用isNaN()判断。对于数字类型,if(a)语句中的a为0时if(a)为假,非0时if(a)为真:
var a = 0;
a = a + b;
if(a){
alert('1');
}else{
alert('2');
}
if(isNaN(a)){
alert('a is NaN');
}
JS中if判断 非空即为真 非0即为真的更多相关文章
- JS 中如何判断 undefined 和 null
JS 中如何判断 undefined JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 null 的判断,下面谈谈 undefined 的判断. 以下是不正确的 ...
- JS中如何判断对象是对象还是数组
JS中如何判断对象是对象还是数组 一.总结 一句话总结:typeof Array.isArray === "function",Array.isArray(value)和Objec ...
- 160304-02、JS 中如何判断null 和undefined
JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 null 的判断,下面谈谈 undefined 的判断. 以下是不正确的用法: var exp = undef ...
- 在JS中如何判断所输入的是一个数、整数、正数、非数值?
1.判断是否为一个数字: Number(num)不为 NaN,说明为数字 2. 判断一个数为正数: var num=prompt("请输入:"); if(Number(num)&g ...
- Js中数据类型判断的几种方法
判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...
- js中如何判断一个字符串包含另外一个字符串?
js中判断一个字符串包含另外一个字符串的方式比较多? 比如indexOf()方法,注意O是大写. var test="this is a test"; if(test.indexO ...
- day5_非空即真非零即真
非空即真(字符串.元组.列表.字典.None),非零即真(指的是int类型或数字这种) # d={}# l=[]# t=()# a = ''# b = None以上都代表空 举例1: name = i ...
- 简述Js中,判断对象为空对象的几种方式
1.空对象.空引用以及undefined三种概念的区别 空对象:是对象,但它的值是指向没有任何属性的对象的引用, {}是指 不含任何属性 的对象,当然对象属性包括 字面值和函数: 空引用:obj=nu ...
- js中关于假值和空数组的总结
先上x==y运算符的算法细节: 如果x不是正常值(比如抛出一个错误),中断执行. 如果y不是正常值,中断执行. 如果Type(x)与Type(y)相同,执行严格相等运算x === y. 如果x是nul ...
随机推荐
- eclipse部分常用快捷键
-------------eclipse常用快捷键------------- 1.alt+?或alt+/:自动补全代码或者提示代码 2.ctrl+o:快速outline视图 3.ctrl+shift+ ...
- java字符串实现正序和倒序输出
##一共4种方式 /* * string倒序输出 * 利用String类的toCharArray(),再倒序输出数组的方法 * 2018-5-18 1 ...
- 壁虎书6 Decision Trees
Decision Trees are versatile Machine Learning algorithms that can perform both classification and re ...
- ASP.NET Core 集成测试中结合 WebApplicationFactory 使用 SQLite 内存数据库
SQLite 内存数据库(in-memory database)的连接字符串是 Data Source=:memory: ,它的特点是数据库连接一关闭,数据库就会被删除.而使用 services. ...
- 【Python基础】lpthw - Exercise 39 字典
1. 字典和列表的区别 对于列表,它是一些项的有序排列,只能通过数值来进行索引:对于字典,则可以通过许多东西进行索引,它采用键-值映射的方式,不存在一个特定的顺序,因此不能用类似列表的数值索引,但它的 ...
- Unicode编码范围
- linux上创建svn服务器(centos7.3)
1.安装svn yum -y install subversion 2.创建svn版本仓库 mkdir /var/svn/svnrepos svnadmin create /var/svn/svnre ...
- 转:彻底搞清楚javascript中的require、import和export
原文地址:彻底搞清楚javascript中的require.import和export 为什么有模块概念 理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. 但是,Ja ...
- 42028: Assignment 1 – Autumn 2019
42028: Assignment 1 – Autumn 2019 Page 1 of 4Faculty of Engineering and Information TechnologySchool ...
- Java安装及基础01
Java特性: (1)java语言是面向对象的语言 (2)编译一次,到处运行(跨平台) (3)高性能 配置环境变量: JAVA命名规则: (1)常量命名规则:每个字母都大写(POEPLE_PRE_NO ...