- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道这两者有何不同?
var hello = foo?foo:bar;
对比
var hello = foo || bar;
你能解释一下吗?和一些案例?还是两者相同?
PS : foo/bar 应该都像 string/int/obj/boolean...
最佳答案
? :
被称为 条件运算符 它需要三个参数(这就是它有时被称为“三元”运算符的原因):要测试的东西,如果测试为真则返回的东西,以及一些东西如果测试错误则返回。*
第二个是 JavaScript 的 curiously-powerful logical OR operator .它接受两个参数。它评估第一个操作数,如果为真,则返回它;如果第一个是假的,它计算并返回第二个操作数。
所以这两者之间的区别在于:使用条件运算符,foo
可能会被计算两次(如果它为真)。使用 ||
,foo
只计算一次。 foo
和 bar
是否只是简单的变量引用并不重要,但请考虑:
var hello = foo() ? foo() : bar();
// vs
var hello = foo() || bar();
您可以看到 foo()
被评估多少次是多么重要,如果它做了任何重要的工作或有任何 side effects .
(* 那么什么是“truthy”和“falsey”值?“falsey”值是0
、""
、NaN
、undefined
、null
,当然还有 false
。其他一切都是“真实的”。)
关于javascript - 简写 if/else 语句 : foo? foo:bar vs foo ||酒吧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19535079/
我一直使用这个习语在 Python 2 中以 utf-8 标准输出一堆内容: sys.stdout = codecs.getwriter('utf-8')(sys.stdout) 但老实说,我不知道
我正在使用 rails 3.2.12 和一个名为 private pub 的伟大 gem 开发一个聊天应用程序。 ,您可以找到一个截屏视频here .它建立在 faye 之上并使您能够通过推送消息轻松
我试图让我的 Collection View 单元格覆盖屏幕的高度而不进入导航栏下方。我得到了导航栏的高度,并用它来制作单元格的高度。问题是单元格仍然比它应该的高,如果我向下滚动它会在导航栏下方。我需
我有一个这样的预处理器指令, //#define SPEC_CONTROL // Is not defined, but can be if need be #define SPEC_A_CONTR
我刚刚在使用 barplot 时发现了一些奇怪的东西在 R. 让 y 是向量 > y [1] 24924006 15310556 11638412 9542834 8696133 使用 barpl
尝试实现一个基于私有(private)酒吧(类似于主宰)的简单通知系统。瑞安·贝茨 (Ryan Bates) 见:http://railscasts.com/episodes/316-private-
我想知道这两者有何不同? var hello = foo?foo:bar; 对比 var hello = foo || bar; 你能解释一下吗?和一些案例?还是两者相同? PS : foo/bar
我是一名优秀的程序员,十分优秀!