JavaScript之&& ||运算

  在JavaScript中,0、""、null、false、undefined、NaN都为false,其余为true。(看过http://www.jb51.net/article/21339.htm来的)

几乎所有的语言中,&&与||的运算遵循“短路”原理。&&运算如果前面为假,就不再继续运算。而||如果前面为真,也不再计算,直接返回结果。

  但在JavaScript里面返回值比较特殊,不是简单的true或者是false。

  例如:

  var attr = true && 4 && "aaa";

  结果是"aaa"。

  var attr = attr || “”;类似的定义可以用来检查对象是否定义,如果没有定义赋初始值。

  

时间: 2024-10-14 03:35:23

JavaScript之&& ||运算的相关文章

【转】javascript 浮点数运算问题

大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS里似乎特别严重,来看一个例子 alert(45.6*13); 结果居然是592.800000000001,当然加法之类的也会有这个问题 那这是js的错误吗? 当然不是,你的电脑做着正确的二进制浮点运算,但问题是你输入的是十进制的数,电脑以二进制运算,这两者并不是总是转化那么好的,有时候会得到正确的结果,但有时候就不那么幸运了 alert(0.7+0.1);//输出0.7999999999999999 alert(0.6+0.2);//输出0

javascript浮点数运算修正

众所周知,javascript对于浮点数的运算一直都是有问题的,比如0.2+0.1 结果是 0.30000000000000004. 下面是我的解决方案,先贴代码了: var calMath = (function() { var isFloat = function(a) { var reg = /\d.\d+/g return reg.test(a) } var getFloatDigit = function(a) { var digit, len a = a.toString() dig

JavaScript 浮点数运算 精度问题

JavaScript小数在做四则运算时,精度会丢失,这会在项目中引起诸多不便,先请看下面脚本. 1 //加减 2 <script type="text/javascript" language="javascript"> 3 alert(1/3);//弹出: 0.3333333333333333 4 alert(0.09999999 + 0.00000001);//弹出: 0.09999999999999999 5 alert(-0.09999999 -

JavaScript 位运算笔记

之前一直以为,在js的位运算中,双精度浮点数在内部会先被转成32位整数,再执行位运算,然后再转为64位数值,因此效率极低.今天实验发现,对浮点执行位运算只会导致数值不准确,而不会导致效率低下,相比乘法,左移位要快66%(其实就是浮点运算与整数运算的差距). 以下结果在 IE 7 ~ IE 10 上测试得出 技巧1:移位运算比乘除法快(当因数是2的幂数) b = a << 1; //大概快 6.8% 技巧2:奇偶判断 b = a & 1; //0位与1相与,相比于 x % 2,大概快 3

Javascript浮点数运算及比较代码收集整理

以下代码转自:http://segmentfault.com/a/1190000000324193 浮点数加法: /**  ** 加法函数,用来得到精确的加法结果  ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果.  ** 调用:accAdd(arg1,arg2)  ** 返回值:arg1加上arg2的精确结果  **/ function accAdd(arg1, arg2) {         var r1, r2, m, 

jquery实现全选、取消反选、加JavaScript三元运算(三种法法实现反选)

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 9 <input type="button" value="全选" onclick="c

JavaScript&amp;jQuery.运算

运算 比较运算 比较运算通常用于比两个数或两个表达式的大小,比较的结果是布尔类型,要么是true要么是false. 数据类型可以不同,可以是数字.字符.字符串.布尔.数组.对象.null.语句,可以是函数,可以是表达式-- 比较运算符  名称 说明 举例 == 等于 比较两个数值(数字.字符.布尔)是否相同 'hello'=='hello' 返回true因为它们是相同的字符串 'Hello'=='hello' 返回false 因为它们不是相同的字符串 |= 不等于 比较两个数值(数字.字符.布尔

JavaScript 综合运算 (数字运算符+比较运算符+逻辑运算符)

可能看了之前的文章,有人会疑问,为什么有的会返回fale,比如0,这里需要强调一下,什么情况下,会返回false:当该值为非值(当然我不确定是不是这么叫的)的时候,返回的结果就是false 非值有:0 , false, "", null, undefind, NaN(not a number) 综合运算顺序: 贴身的(!,++, --) ==>  数字 ==> 比较 ==> 逻辑 ==> 赋值 题目: var a = 4; var sum = 1 * (2 +

Javascript短路运算||和&amp;&amp;

1.只要“||”前面为false,无论“||”后面是true还是false,结果都返回“||”后面的值. 2.只要“||”前面为true,无论“||”后面是true还是false,结果都返回“||”前面的值. 3.只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值; 4.只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的