相关疑难解决方法(0)

为什么逻辑OR不能与JavaScript中的错误一起使用?

这是一种非常常见且有用的做法:

// 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)

或者是否有任何理论障碍,为什么这不是,也永远不可能?

javascript

50
推荐指数
3
解决办法
3935
查看次数

具有return语句JavaScript的三元运算符

如果选中下拉列表中的选项,我需要返回true或false.

这是我的代码:

var active = sort.attr('selected') ? return true : return false;
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,第一个return是意外的.

为什么?

javascript jquery ternary

46
推荐指数
4
解决办法
5万
查看次数

为什么我们不能在三元运算符中返回?

说我很简单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)

javascript jquery

25
推荐指数
4
解决办法
3万
查看次数

标签 统计

javascript ×3

jquery ×2

ternary ×1