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 可以通过 ...
随机推荐
- caffe中的Accuracy+softmaxWithLoss
转:http://blog.csdn.net/tina_ttl/article/details/51556984 今天才偶然发现,caffe在计算Accuravy时,利用的是最后一个全链接层的输出(不 ...
- Ubuntu 14.04 64bit下Caffe + Cuda6.5/Cuda7.0 安装配置教程
http://www.embeddedlinux.org.cn/emb-linux/entry-level/201612/21-6005.html 随着深度学习快速发展的浪潮,许多有兴趣的工作者都转入 ...
- HDU4305:Lightning(生成树计数+判断点是否在线段上)
Lightning Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- Java中的字符串常量池?
参考:http://droidyue.com/blog/2014/12/21/string-literal-pool-in-java/index.html
- [iptables]iptables 添加log到syslog
比如iptables本来有这么一条: -A PREROUTING -d 125.65.27.xxx/32 -p tcp -m tcp --dport 11060 -j DNAT --to-destin ...
- bzoj 3580 冒泡排序 乱搞+思维
冒泡排序 Time Limit: 15 Sec Memory Limit: 256 MBSubmit: 243 Solved: 108[Submit][Status][Discuss] Descr ...
- Linux查看内核和系统版本
1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.d ...
- Java多线程之“同步”
好习惯要坚持,这是我第二篇博文,任务略重,但是要坚持努力!!! 1.竞争条件 首先,我们回顾一下<Java核心技术卷>里讲到的多线程的“竞争条件”.由于各线程访问数据的次序,可能会产生讹误 ...
- [实战篇入门]02-POI简单创建Excel
周日的小讲堂要讲到这里,趁中午时间写点东西,记录昨天晚上完成的东西,在这里只是简单的介绍如何创建对于样式问题,我不过多的说,因为之后的教程会使用模版方式搞定! 在学习这段代码的时候,希望各位访问Apa ...
- 第一篇 关于Android Studio的快捷键
公司最近要培训Android的课程,但是发现现在官方网站上已经不提供了Eclipse ADT的下载了,都变成了Android Studio,可能是悲催了! 对于很多Eclipse转过来的同学,不适应的 ...