javascript高程笔记:逻辑与和逻辑或
2024-08-25 08:02:30
逻辑与和或
逻辑与
当 && 前后两个操作数都是布尔值,无可厚非,同时为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;
}
最新文章
- ListFragment的使用
- Jenkins创建Maven项目及SSH部署
- [No000050]练习一万小时便能成为天才
- qbxt十一系列一
- GCD创建一个单例
- 谷歌chrome浏览器桌面提醒 webkitNotifications
- JavaScript开发之路01(初识Sencha Touch框架)
- oracle数据类型和对应的java类型
- 【转】S3C2440与SDRAM NorFlash NandFlash连线分析
- python3之模块collections
- Chapter 4 Invitations——15
- POC iis短文件名
- iOS 数组问题
- CentOS7+Apache+MySQL+PHP环境
- Scrapy安装错误:Microsoft Visual C++ 14.0 is required
- oracle之 11.2.0.4 bbed安装
- keil C 51 strlen库函数使用
- 第三方插件Vue-Lazyload
- Code Chef IMPO(计算几何+扫描线+积分)
- qtcreator 中文乱码
热门文章
- stout代码分析之二:None类
- 常见一个新的maven web工程
- 10.nginx+ffmpeg上搭建HLS切片
- UVA 11040 Add bricks in the wall
- 【设计模式】 模式PK:抽象工厂模式VS建造者模式
- mysql 创建视图
- Tomcat报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JFreeChartTest]]
- 【BZOJ】1726 [Usaco2006 Nov]Roadblocks第二短路
- 【HNOI】 lct tree-dp
- 【bug】vue-cli 3.0报错的解决办法