JS中使用逻辑 AND/OR 做条件判断及函数默认值

if变形语句!

var foo = 10;
foo == 10 && doSomething(); // 等价于 if (foo == 10) doSomething();
foo == 5 || doSomething(); // 等价于 if (foo != 5) doSomething();

逻辑 AND 还可以被使用来为函数参数设置默认值

function doSomething(arg1){
    Arg1 = arg1 || 10; // 如果arg1没有被设置的话,Arg1将被默认设成10
}

原文地址:https://www.cnblogs.com/agen-su/p/11635704.html

时间: 2024-12-10 19:22:52

JS中使用逻辑 AND/OR 做条件判断及函数默认值的相关文章

js中的逻辑或和逻辑与

a=''||'abc';                              //返回什么?  'abc' a=1||2;                                  //返回什么?   1 var a=0; var b=++a||++a ;        //a=1;b=1; b=''&&'abc'                             //返回什么?  ’‘ b=1&&2                          

讲讲js中的逻辑与(&&)以及逻辑或(||)

前几天看到一个函数,百思不得其解,今天早上醒来看了本js的书,正好讲到操作符的用法,给大家分享下js中的&&,||,和我们用的其他的编程语言还是有点区别的. 直接上那个函数的代码: function whatDoesItDo(mood){ return mood && "I like this" || "I don't like this"; } 当我们给mood赋值true其显示"I like this"(A来代

js中的逻辑与(&&)和逻辑或(||)

之前有一个同事去面试,面试过程中碰到这样一个问题: 在js中写出如下的答案 : var a = 2; var b = 3; var andflag = a && b ; var orflag = a || b; 问andflag 和orflag 分别是什么? 起初我认为: andflag 和orflag 的值都为 true; 毕竟 && 和 || 都是求Boolean ,后来发现,我错了. 答案应该是  andflag  = 3,orflag = 2; 原因是这样的: 在运

js中的逻辑或(||)操作

在js中用到逻辑或:|| 的时候比较多,下面总结一下它的用法: 1.对于布尔值,只要有一个true,就返回true 2.对于不是布尔值的情况则: A.如果第一个操作数是对象,则返第一个操作数: B.如果第一个操作数的求值结果为false,则返回第二个操作数: C.如果两个操作数都是对象,则返回第一个操作数: D.如果两个操作数是null,则返回null: E.如果两个操作数是NaN,则返回NaN: F.如果两个操作数是undefined,则返回undefined

js中 var functionName = function() {} 和 function functionName() {} 两种函数声明的区别

js中有两种声明函数的方法,分别为: var functionOne = function() { // Some code }; function functionTwo() { // Some code } 为什么会有两种不同的方法?每个方法的优点和缺点分别是什么?有什么情况是一种方法能完成而另外一种方法不能完成的吗? 答: by @Greg 不同点在于functionOne只会在到达赋值的那一行才会被真正定义,而functionTwo会在 包含它的函数或script脚本 执行的时候马上被定

js中三种作用域详解(全局,函数,块级)

1.全局变量:声明在函数外部的变量(所有没有var直接赋值的变量都属于全局变量) 2.局部变量:声明在函数内部的变量(所有没有var直接赋值的变量都属于全局变量) JS中变量申明分显式申明和隐式申明. vari=100;//显式申明 i=100;//隐式申明 在函数中使用var关键字进行显式申明的变量是做为局部变量,而没有用var关键字,使用直接赋值方式声明的是全局变量. 当我们使用访问一个没有声明的变量时,JS会报错.而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申

makefile中条件判断与函数

1. 条件判断 1.1 语法 条件表达式的语法为: <conditional-directive> <text-if-true> endif 以及: <conditional-directive> <text-if-true> else <text-if-false> endif 其中<conditional-directive>表示条件关键字,如"ifeq".这个关键字有四个. (1)第一个是我们前面所见过的&q

JS中setInterval、setTimeout不能传递带参数的函数的解决方案

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,接下来为大家介绍具体的解决方法 在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数, 这就需要想方法解决. 一.采用字符串形式:——(缺陷)参数不能被周期性改变 setInterval("foo(id)",1000); 二.匿名函数包装 (推荐) window.setInterval(

JS 中对变量类型的五种判断方法

5种基本数据类型:undefined.null.boolean.unmber.string 复杂数据类型:object. object:array.function.date等 方法一:使用typeof检测 当需要变量是否是number,string,boolean ,function,undefined,json类型时,可以使用typeof进行判断:其他变量是判断不出类型的,包括null. typeof是区分不出array和json类型的,因为使用typeof这个变量时,array和json类