js中,0的判断

在js中,判断,往往是这样写的

let a;
let b;
a?b=a:b=-1;
console.log(b);

这样写,a为null或者undefined时,没有问题。

可,a为0时(数字零),想打印出来b为0,可打印出来的是b=-1,为什么呢?

因为,在js中,if(0) 判断出来是false.

这时,就应该这样写了

let a=0;
let b;
(a===0 || a)?b=a:b=-1;
console.log(b);

原文地址:https://www.cnblogs.com/ztgzlu/p/11139154.html

时间: 2024-08-30 06:35:57

js中,0的判断的相关文章

图解js中常用的判断浏览器窗体、用户屏幕可视区域大小位置的方法

有时我们需要获得浏览器窗口或屏幕的大小.窗口下拉框下拉的距离等数据,对应这些需求,js中提供了不少解决方法,只是数量稍多容易混淆它们各自的意义,下面咱们用图例来解释下12个常见对象属性的作用. 其中有6个常用的浏览器窗体属性(由于offsetWidth/Height在不同浏览器下表现有出入,故不在本章讨论): document.documentElement.clientWidth document.documentElement.clientHeight document.documentEl

js中小数的判断和运算

判断小数的方法: if(String(newNum).indexOf(".")>-1){ alert('小数!') }else{ alert("非小数"); } 小数和整数的相加,最简便的方法: function getAmount(){ var proltotal=0; jQuery('.littletotal').each(function(){ // 乘1能转为数字,直接相加会自动调整精度,否则是字符串的连接 var rowtotle2=jQuery(t

为什么JS中0.1+0.2 != 0.3

原文:为什么JS中0.1+0.2 != 0.3 为什么JS中0.1+0.2 != 0.3 在我曾经的一篇< javascript入门教程 (2) >中,讲到JS中数字运算时,我们提到过一个叫做 数字运算中的精度缺失的问题,当时我们只是简单说了下,并未对其原因做了解.这篇文章,我就带着大家了解下 JS运算中精度的缺失问题. 首先我们先来看一个例子 console.log(0.1 + 0.2) // 结果是0.30000000000000004,而不是3 这里0.1 + 0.2 != 0.3 这个

js中浏览器类型判断

在JS中判断浏览器的类型,估计是每个编辑过页面的开发人员都遇到过的问题.在众多的浏览器产品中,IE.Firefox.Opera.Safari........众多品牌却标准不一,因此时常需要根据不同的浏览器,甚至相同浏览器不同版本做不同的操作,因此,知晓浏览器的判断方法,还是很重要的.下面列举一下常用的判断方法:1.判断浏览器是否为IE        document.all ? 'IE' : 'others':在IE下document.all值为1,而其他浏览器下的值为0:        nav

关于js中undefined的判断

在开发中遇到一个情景,当添加用户的时候不需要传入用户id,如果是修改那么需要传入id,因为用的是angular框架,参数是早就定义好了的,那么在新增用户的时候就会出现undefined的情况,之前我一直认为undefined是在js中未定义变量时才会提示的错误,其实undefined 是js中的一特殊的变量 if('undefined' != $stateParams.deptId){ alert(1); } 当进行这样的判断,发现无论是否有值都会进入alert方法,说明undefined也是一

js中的if判断语句和switch条件分支语句

语句是js中最重要的成分 本文想介绍的是if判断语句和switch条件分支语句 ---------------------------------------------------------------- if条件判断语句 形式: if(条件判断){ 表达式 } 意思就是,当满足条件判断的句子,执行花括号内的表达式 直接看看有坑的地方 需求:当score为60分以下,控制台打印不及格,当score为60分以上,控制台打印及格,当score为85分以以上,控制台打印优秀 var score =

js 中 0 和 null 、&quot;&quot; 的逻辑关系

在做字符串非空判断时,无意发现一个问题,记录下以便以后回顾. 问题描述:非空判断,只是校验传值的内容是否为"".null .undefined.当变量 赋值的字符串内容为 0,此时做非空校验竟然返回true,说当前变量值为空. 代码如下: 1 //模拟赋值 0 2 var str = "0"; 3 4 /** 5 * 判断字符是否为空的方法 6 * 为空 返回 true 7 * 不为空返回 false 8 * @param {Object} obj 9 */ 10

js -03课 -03 js中的真假判断

真假的问题:数据类型-数字(NaN).字符串.布尔.函数.对象(elem.[].{}.null).未定义 真:非0的数字.非空字符串.true.函数.能找到的元素.[].{} 假:0.NaN.空字符串''.false.不能找到的元素.null.未定义

JS中,如何判断一个被转换的数是否是NaN

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script type="text/javascript"> var x="abc"; //isNaN()函数判断是否是NaN if (isNa

JS中,如何判断一个数是不是小数?如果是小数,如何判断它是几位小数??

<script type="text/javascript">     var x = 4.23323;//测试的数字     var y = String(x).indexOf(".") + 1;//获取小数点的位置     var count = String(x).length - y;//获取小数点后的个数     if(y > 0) {         alert("这个数字是小数,有" + count + "