javascript高程笔记:逻辑与和逻辑或
逻辑与和或
逻辑与
当 && 前后两个操作数都是布尔值,无可厚非,同时为true才为true。与其他强类型语言不同的是,javascript逻辑与前后的操作数可以应用于任何类型。
而且,在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值。
如果第一个操作数是对象,则返回第二个操作数
//返回 字符串:"this is the secondObject"
function LogicAnd1(){ var firstObject ={
valueOf:function(){
return 1;
}
}; var secondObject ="this is the secondObject"; return firstObject && secondObject;
}
如果第二个操作数是对象,则只有在第一个操作数的求值为true的情况下才返回该对象
//firstObject 为true 返回该对象
//firstObject 为false 返回false
function LogicAnd2(){
var secondObject ={
valueOf:function(){
return 1;
}
}; var firstObject =false; return firstObject && secondObject;
}
如果两个都是对象{null 也是object,此处为非null对象},则返回第二个
返回第二个
function LogicAnd3(){
var firstObject ={myName:"first"};
var secondObject ={myName:"second"}; return firstObject && secondObject;
}
任意一个为null,NaN,undefined 结果为null,NaN,undefined
//任意一个为null 结果为null
function LogicAnd4(){
var firstObject =null;
var secondObject ={myName:"second"}; return firstObject && secondObject;
} //任意一个为Nan 结果为Nan
function LogicAnd5(){
var firstObject =NaN;
var secondObject ={myName:"second"}; return firstObject && secondObject;
} //任意一个为undefined 结果为undefined
function LogicAnd6(){
var firstObject =undefined;
var secondObject ={myName:"second"}; return firstObject && secondObject;
}
逻辑或
逻辑或同样可以应用在任意两个类型当中,其中:
第一个为对象,则返回第一个对象
function LogicOr1(){
var firstObject ={
valueOf:function(){
return 1;
}
};
var secondObject ="this is the secondObject";
return firstObject || secondObject;
}
如果第二个操作数是对象,则只有在第一个操作数的求值为false的情况下才返回该对象
//firstObject 求值为false 返回该对象
//firstObject 求值为true 返回firstObject
function LogicOr2(){
var secondObject ={
valueOf:function(){
return 1;
}
}; var firstObject =1000; return firstObject || secondObject; }
如果两个都是对象{null 也是object,此处为非null对象},则返回第一个
function LogicOr3(){
var firstObject ={myName:"first"};
var secondObject ={myName:"second"};
//返回第一个
return firstObject || secondObject;
}
两个都为null,undefined,NaN 则结果都为以上上个值
//两个为null 结果为null
function LogicOr4(){
var firstObject =null;
var secondObject =null; return firstObject || secondObject;
} //两个为Nan 结果为Nan
function LogicOr5(){
var firstObject =NaN;
var secondObject =NaN; return firstObject || secondObject;
} //两个为undefined 结果为undefined
function LogicOr6(){
var firstObject =undefined;
var secondObject =undefined; return firstObject || secondObject;
}
javascript高程笔记:逻辑与和逻辑或的更多相关文章
- JAVASCRIPT高程笔记-------第五章 引用类型
一.Object类型 1.1创建方式 ①new关键字 : var person = new Oject(); ②给定直接量: var person = { name : "zhangsan& ...
- DOM(JavaScript高程笔记)
一.节点层次 1.Node类型 if (someNode.nodeType == 1){ // 适用于所有浏览器 alert("Node is an element."); } N ...
- 函数表达式(JavaScript高程笔记)
函数声明 特点:函数声明提升(执行代码之前解析器会先读取函数声明,并使其在执行任何代码之前可用,意味着可以把函数声明放在调用语句之后) function functionName(arg0,arg1) ...
- javaScript高程笔记--最佳实践
1.可维护性 <1>什么是可维护的代码 (1)可理解性 (2)直观性 (3)可适应性 (4)可扩展性 (5)可调试性 <2>代码约定 (1)可读性---适当的进行注释[函数和方 ...
- JAVASCRIPT高程笔记-------JSON与AJAX
json对象——语法 简单值:与JS相同语法,可以是字符串,数值,布尔值,null:但不支持undefined 对象: 复杂数据类型,表示一组有序的键值对,键值对的值可以是简单数据,也可以是复杂数据 ...
- JAVASCRIPT高程笔记-------第十章 DOM对象
10.1.1 node类型 --除IE外 所有浏览器都可以访问到这个类型 :JS中所有的节点类型都继承自Node类型 nodeName 与nodeValue 如果是一个元素 那么nodeName中保 ...
- javascript高程笔记-------第四章 变量、作用域和内存问题
首先JavaScript中的变量分为基本类型和引用类型. 基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在堆内存中的对象. 1.参数传递 javascript中所有参数的传递都是值传 ...
- BOM(JavaScript高程笔记)
再次编辑于20160115 一.window对象 双重角色 JS访问浏览器窗口的接口 ECAMAscript规定的Global对象 1.全局作用域 所有在全局作用域中声明的变量.函数都会变成windo ...
- JAVASCRIPT高程笔记-------第八章 浏览器BOM对象
8.1 window对象--表示一个浏览器的实例 在全局作用域中声明的任何变量.函数都会变成window对象的属性和方法,与之直接定义window对象的属性的区别是 window.xxx 可以通过 ...
随机推荐
- [codeforces/gym/101350/L]维护“凸包”
题目链接:http://codeforces.com/gym/101350/problems 给定n个墙,每个墙有一个高度,要支持动态修改墙的高度和查询这个“容器”能盛多少水. (队友)观察发现,能盛 ...
- Nginx的启动、停止、平滑重启
转载自:http://www.xj123.info/2572.html 启动Nginx /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/ngi ...
- HDU 4609 FFT模板
http://acm.hdu.edu.cn/showproblem.php?pid=4609 题意:给你n个数,问任意取三边能够,构成三角形的概率为多少. 思路:使用FFT对所有长度的个数进行卷积(\ ...
- 快速搭建rabbitmq单节点并配置使用
安装erlang环境 wget http://erlang.org/download/otp_src_20.3.tar.gz tar xf otp_src_20.3.tar.gz && ...
- Linux和windows下检查jsp后门文件的方法
Linux下: find . -name "*.jsp" | xargs egrep -liw "createNewFile| File\(| File |applica ...
- 【NOIP】提高组2005 过河
[算法]状态压缩型DP [题解] Q=tx+(t-1)y 对于Q≥t(t-1),x,y一定有解. 所以当两石子间距离long>t(t-1)时,令long=t(t-1),重新构造数组即可. [注意 ...
- 生成应用的快捷方式action,权限
action:"com.android.launcher.action.INSTALL_SHORTCUT" 权限:com.android.launcher.permission.I ...
- ms17010利用失败解决一则
没有反弹得到session并且提示如下: [-] 10.0.131.2:445 - Service failed to start, ERROR_CODE: 216 换了一个payload set p ...
- 多表数据转化器MTDC
需求 根据配置文件的映射规则,将一种模型和数据映射成另外一种模型和数据.如图: 其中,a1,b1,c1,d1为表主键,关系:A.a1=B.b1=C.c2=D.d1 解决思路 解析模型配置文件,将每个转 ...
- 【Python学习】程序运行完发送邮件提醒
有时候我们运行一个需要跑很长时间的程序,不管是在云主机还是本地主机上运行,我们都不可能一直守在电脑面前等.所以想到使用邮件来通知提醒. 示例代码如下 # -*- coding: utf-8 -*- # ...