js运算符“||”和“&&”的总结

逻辑运算符&&和||。

代码:

 代码如下 复制代码
var attr = true && 4 && “aaa”;

那么运行的结果attr就不是简单的true或这false,而是”aaa”
再来看看||:
代码:var attr = attr || “”;这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,这在给函数的参数定义一个默认值的时候比较有用。因为js不像php可以直接在型参数上定义func($attr=5)。再次提醒你记住上面的原则:如果实参需要是0、""、null、false、undefined、NaN的时候也会当false来处理。

普通的方法:

 代码如下 复制代码

var a, b;
if ( !a ) {
    a = b;
}

if(a >=5){

    alert("你好");
}

可以写成:

a >= 5 && alert("你好");

这样只需一行代码就搞定。但是需要注意的一点就是:js中||和&&的特性帮我们精简了代码的同时,也带来了代码可读性的降低。这就需要我们自己来权衡了。

1.逻辑或运算符||:

当运算符||的两个运算数都是布尔值,它对这两个运算数执行布尔OR操作。

它先计算第一个运算数,如果这个表达式的值可以被转换成true,那么它就返回左边这个表达式的值。否则计算第二个运算数

即使||运算符的运算数不是布尔值,任然可以将它看作布尔OR运算,因为无论它返回的值是什么类型,都可以被转换为布尔值。

而且另一方面,对非布尔型的运算数使用了||,这是利用了它对非布尔型的值会将其返回的特性。该运算符的这一用法通常是选取一组备选值中的第一个定义了的并且非空的值(也就是说第一个不会转换为false的值)

例:

 代码如下 复制代码

var max=max_width || preferences.max_width || 500

用或的方法:

var a, b;
a = a || b;

如图:

假设对成长速度显示规定如下:

成长速度为5显示1个箭头;

成长速度为10显示2个箭头;

成长速度为12显示3个箭头;

成长速度为15显示4个箭头;

其他都显示都显示0各箭头。

用代码怎么实现?

让我们来看看js强大的表现力吧:

 代码如下 复制代码

Js代码 
 
var add_level = (add_step==5 && 1) || (add_step==10 && 2) || (add_step==12 && 3) || (add_step==15 && 4) || 0;

更强大的,也更优的:

 代码如下 复制代码
 
var add_level={'5':1,'10':2,'12':3,'15':4}[add_step] || 0; 

第二个需求:

 代码如下 复制代码

var add_level = (add_step>12 && 4) || (add_step>10 && 3) || (add_step>5 && 2) || (add_step>0 && 1) || 0; 

时间: 2024-11-03 13:45:44

js运算符“||”和“&&”的总结的相关文章

js运算符单竖杠“|”的用法和作用是什么?

 js运算符单竖杠""的作用   很多朋友都对双竖杠"",了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js整数的操作运用了单竖杠,问我单竖杠是啥意思?   我看了一下之前的那篇文章,只写了用法,但是并没有解释.好吧,我现在就给大家简单的介绍一下:   之前文章,在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(),负数的时候相

浅谈JS运算符&&和|| 及其优先级_javascript技巧

今天看了一段YUI compressor压缩的js代码: userNum && (ind += index,ind >= userNum && (ind -= userNum),ind < 0 && (ind === -2 && (ind = -1),ind += userNum),selLi.removeClass("on"),$(selLi[ind]).addClass("on"));

js || 运算符 config = config || {};

今天看到源码里有"config = config || {};",就开始琢磨|| {}是什么运算符,现在终于搞明白了.   问题: js || 运算符 config = config || {};是什么意思. 答案:如果config未定义则初始化,如果已定义则不变 ||是或运算符  

JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符_基础知识

在ECMAScript中,有非常丰富的运算符和操作符,在这篇文章中将按通常的分类来稍微整理一下,不过在整理之前,先说明一下: 1.虽然标题是运算符和操作符,然而在我看来并没有多少严格区分的必要,在英文中,貌似也是用一个Operator来表示,所以在下文中我可能会混用.甚至,一些不属于运算符和操作符范畴的,我也整理在这里,只要我觉得必要. 2.对于运算符的优先级,你无需一一牢记--我相信你知道最简单的"先乘除,后加减",至于其它的,如果你不确定,加上括号好了.在ECMAScript中,优

详解js运算符单竖杠“|”与“||”的用法和作用介绍_基础知识

在js开发应用中我们通常会碰到"|"与"||"了,那么在运算中"|"与"||"是什么意思呢? 在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(),负数的时候相当于Math.ceil() 注: 1. Math.ceil()用作向上取整. 2. Math.floor()用作向下取整. 3. Math.round() 我们数学中常用到的四舍五入取整. console.log(0.6|

js运算符单竖杠“|”与“||”的用法和作用介绍

很多朋友都对双竖杠"||",了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js整数的操作运用了单竖杠,问我单竖杠是啥意思? 我看了一下之前的那篇文章,只写了用法,但是并没有解释.好吧,我现在就给大家简单的介绍一下: 之前文章,在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(),负数的时候相当于Math.ceil() 注: 1. Math.ceil

前端开发js运算符单竖杠“|”的用法和作用及js数据处理

很多朋友都对双竖杠"||",了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js整数的操作运用了单竖杠,问我单竖杠是啥意思? 我看了一下之前的那篇文章,只写了用法,但是并没有解释.好吧,我现在就给大家简单的介绍一下: 之前文章,在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(),负数的时候相当于Math.ceil() 注: 1. Math.ceil

js运算符复习

运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=) 算术运算符(+,-,*,/,++,--,%) 比较运算符(>,<,<=,>=,==,===,!=,!==) 逻辑运算符(||,&&,!) 条件运算(?:) 位移运算符(|,&,<<,>>,~,^) 字符串运算符( + ) 算术运算符 基本运算符 "+":对数字进行代

JS基础知识概述

web页面的组成部分 HTML:定义了网页的内容 CSS:描述了网页的布局 JavaScript:网页的行为 完整的JavaScript 完整的JavaScript实现包含三个部分:ECMAScript,DOM(文档对象模型)和BOM(浏览器对象模型) DOM (Document Object Model)(文档对象模型)是用于访问 HTML 元素的正式 W3C 标准 JavaScript 是脚本语言 1.JavaScript 是一种轻量级但功能强大的可插入 HTML 页面的编程语言,语法规则定