这是一种非常常见且有用的做法:
// default via value
var un = undefined
var v1 = un || 1
// default via a function call
var myval = () => 1
var v2 = un || myval()
Run Code Online (Sandbox Code Playgroud)
但是在抛出错误时它不起作用(SyntaxError):
var v3 = un || throw new Error('un is not set!')
Run Code Online (Sandbox Code Playgroud)
有没有办法以同样优雅的方式达到同样的效果?这是恕我直言的很多样板代码:
if (!un) {
throw new Error('un is not set!')
}
var v3 = un
Run Code Online (Sandbox Code Playgroud)
或者是否有任何理论障碍,为什么这不是,也永远不可能?
如果选中下拉列表中的选项,我需要返回true或false.
这是我的代码:
var active = sort.attr('selected') ? return true : return false;
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,第一个return是意外的.
为什么?
说我很简单form,我想检查是否form有变化.如果它改变submit它,否则阻止表单提交,所以我使用return而不是使用if-else我尝试使用的语句,ternary operation但不幸的是我遇到了错误,Uncaught SyntaxError: Unexpected token return但我不明白为什么这个错误?三元运算仅用于分配吗?在这方面不确定.以下只是我尝试做的一个示例.
var form_original_data = $("#frmProfile").serialize();
$("#frmProfile").on('submit', function(e) {
e.preventDefault();
$("#frmProfile").serialize() != form_original_data ? $("body").append('changed') : return;
})Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="frmProfile">
<input type="text" value="name" />
<input type="submit" value="Go" />
</form>Run Code Online (Sandbox Code Playgroud)