关于JS中&&和||用法技巧

在javascript中经常遇到&&和||运算符的使用,下面我们看看它们的用法技巧:

&&和||在JQuery源代码内尤为使用广泛,由于本人没有系统的学习js,所以只能粗略的自我理解出来,希望大家指点下。

粗略理解如下:

a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行;

a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值;

&& 优先级高于 ||

如下:

代码

alert((1 && 3 || 0) && 4); //结果4 ①
alert(1 && 3 || 0 && 4); //结果3 ②
alert(0 && 3 || 1 && 4); //结果4 ③

分析:

语句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4

语句②:先执行1&&3 返回3,在执行0&&4返回0,最后执行结果比较 3||0 返回 3

语句③:先执行0&&3 返回0,在执行1&&4返回4,最后执行结果比较 0||4 返回 4

注:非0的整数都为true,undefined、null和空字符串”" 为false。

技巧一:设置默认值:var str=strone||‘默认值‘

...

参考文章

http://www.codes51.com/article/detail_97738.html

时间: 2024-10-13 01:41:11

关于JS中&&和||用法技巧的相关文章

JS中&&和||用法技巧

&&和||在JQuery源代码内尤为使用广泛,由于本人没有系统的学习js,所以只能粗略的自我理解出来,希望大家指点下. 粗略理解如下: a() && b() :如果执行a()后返回true,则执行b()并返回b的值:如果执行a()后返回false,则整个表达式返回a()的值,b()不执行: a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行:如果执行a()后返回false,则执行b()并返回b()的值: && 优先

js中prototype用法(转)

JavaScript能够实现的面向对象的特征有:·公有属性(public field)·公有方法(public Method)·私有属性(private field)·私有方法(private field)·方法重载(method overload)·构造函数(constructor)·事件(event)·单一继承(single inherit)·子类重写父类的属性或方法(override)·静态属性或方法(static member) 例子一(JavaScript中允许添加行为的类型):可以在

js中replace用法

js中replace的用法 replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串..为了帮助大家更好的理解,下面举个简单例子说明一下 Js代码 1.    <script language="javascript"> 2.    var stringObj=

js中typeOf用法

JS中的变量是松散类型(即弱类型)的,可以用来保存任何类型的数据. typeof 可以用来检测给定变量的数据类型,可能的返回值:1. 'undefined' --- 这个值未定义: 2. 'boolean'    --- 这个值是布尔值: 3. 'string'        --- 这个值是字符串: 4. 'number'     --- 这个值是数值: 5. 'object'       --- 这个值是对象或null: 6. 'function'    --- 这个值是函数. Js代码  

Js中this用法及注意点详解

      我们在写js时,特别是用到回调函数时,经常会发现this指代的对象总是可能脱离自己的思路而发生改变.面向对象语言的特性告诉我们this始终指代它的调用者,而在js中回调函数中内部的this默认指向全局环境即最终上下文,所以很多时候我们不作this对象的声明绑定,就会发生指向错误,找不到我们想要的值.看下面这段代码: var a1={ name:"ZhuXingyu" } function outFunc(){ //函数a console.log(this.a1.name);

vue项目config/index.js中proxyTable用法

目的:在配置文件config/index.js中配置统一请求接口 在配置文件config/index.js找到 module.exports={ dev:{ proxyTable:{} } } 更改为: proxyTable:{ "/api": { target: "http://218.78.187.216/api/v1", //设置调用的接口域名和端口 changeOrigin: true, pathRewrite: { "^/api": &

js中typeof用法详细介绍

本文章来介绍在js使用中的一个函数typeof用法, typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型. typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."我们可以使用typeof来获取一个变量是否存在,如

JS中setTimeout()用法总结

在制作网页动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事.在JavaScript中主要通过定时器实现此类需求,本文将对定时器做一个概括,正对setTimeout()做一个详细用法总结. 一.setInterval与setTimeout的区别 setInterval setInterval()方法可按照指定的周期来调用函数或者计算表达式(以毫秒为单位) 语法: setInterval(函数表达式,毫秒数): setInterval

Angular JS中 Promise用法

一.Promise形象讲解A promise不是angular首创的,作为一种编程模式,它出现在1976年,比js还要古老得多.promise全称是 Futures and promises. 而在javascript世界中,一个广泛流行的库叫做Q 地址是https://github.com/kriskowal/q 而angular中的$q就是从它引入的.promise解决的是异步编程的问题,对于生活在同步编程世界中的程序员来说,它可能比较难于理解,这也构成了angular入门门槛之一,以下将用