javascript 'or' statement
javascript 'or' statement
var NavAxis='yx';
var url1 = 'file:///C:/Users/Luke/Desktop/Senior%20Project/index.html#/page4'
var url2 = 'file:///C:/Users/Luke/Desktop/Senior%20Project/index.html#/page5'
if(location.href == (url1 || url2)){
NavAxis='xy';
}else{
NavAxis='yx';
}
为什么这不起作用?我希望它是这样,如果 URL 是所述导航轴中的任何一个,则更改为"xy"
你真正想要的是:
if ( location.href === url1 || location.href === url2 )
您写的内容将首先评估内括号:(url1 || url2)
.只要url1
是真实的(它在你的代码中),这将评估为url1
。
因此,只有当location.href
等于url1
而不是url2
时,您的条件才会为真。
JavaScript OR的工作原理:
true || true // true;
true || false // true;
false || false // false;
0 || true // 0 will translate to boolean because other side is boolean and it returns true
1 || 3 // no translation, returns 1
undefined || 2 // undefined will translated to boolean false. returns 2
null || "wow" // "wow"
这是你应该这样做的方式:
if(location.href == url1 || location.href == url2){
NavAxis='xy';
}else{
NavAxis='yx';
}
这适用于两到三次检查,但是如果您有 10 个 url 怎么办?
使用适用于多个项目检查Array.indexOf()
方法是更好的方法:
if([url1, url2, url3].indexOf(location.href) != -1 ){
NavAxis='xy';
}else{
NavAxis='yx';
}
url1 || url2
的计算结果将file:///...#/page4
(即 url1
)。所以从本质上讲,你一直在location.href
与url1
进行比较。要与其中之一进行比较,请尝试:
if (location.href == url1 || location.href == url2)
相关文章:
- Angular 2.0 with JavaScript or TypeScript?
- SharePoint 2010 Jquery/JSON Rest Multiple OR语句-如何
- GWT (or javascript) library for couchDB
- 在 Jquery/Javascript 中使用多个 OR (||) 运算符时如何设置变量
- JavaScript中的逻辑OR(||)
- ||(OR)运算符如何在赋值中工作
- 在Javascript中为if/else语句添加OR
- 如何用Javascript编写OR
- 如何利用“;OR”;用于表单字段验证的运算符
- jquery onclick or onchange on different elements
- 消除JavaScript中的多个OR条件
- 如果查询使用AND失败,但使用OR有效
- Jquery else if statement
- 模棱两可的multi_select过滤器 - AND 和 OR 条件 - javascript
- 如何在RegExp中生成OR条件
- javascript "or" statement
- Angular JS Filter or statement
- javascript 'or' statement
- ember if or statement
- JavaScript: Declaring VAR with 'or' statement