我总是在JavaScript中处理可选参数,如下所示:
function myFunc(requiredArg, optionalArg){
optionalArg = optionalArg || 'defaultValue';
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
是否有任何使用||这种情况会失败的情况?
JavaScript中的值是什么'falsey',这意味着它们在表达式中评估为false if(value),value ?并且!value?
关于Stack Overflow上的falsey值的目的已有一些讨论,但没有详尽的完整答案列出所有的falsey值.
我在MDN JavaScript Reference上找不到任何完整列表,我很惊讶地发现在JavaScript中查找完整,权威的虚假值列表时的最佳结果是博客文章,其中一些有明显的遗漏(例如,NaN),并且没有一个像Stack Overflow这样的格式,可以添加评论或替代答案来指出怪癖,惊喜,遗漏,错误或警告.因此,制作一个似乎是有意义的.
我知道我可以测试一个javascript变量然后定义它,如果它是未定义的,但是没有一些方法可以说
var setVariable = localStorage.getItem('value') || 0;
似乎是一种更清晰的方式,我很确定我已经在其他语言中看到过这种情况.
这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.
Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.
主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.
此外,这是PHP符号引用的公然副本.我们需要一个JS.
请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接
相关的是有一个“空合并”运营商在JavaScript中?- JavaScript 现在有一个??运算符,我发现它使用得更频繁。以前大多数 JavaScript 代码使用||.
let userAge = null
// These values will be the same.
let age1 = userAge || 21
let age2 = userAge ?? 21
Run Code Online (Sandbox Code Playgroud)
在什么情况下会??和||行为不同?
如何检查范围变量是否未定义?
这不起作用:
<p ng-show="foo == undefined">Show this if $scope.foo == undefined</p>
Run Code Online (Sandbox Code Playgroud) 前几天我好奇地想到了一段代码,但我不确定它到底是做什么的;
options = options || {};
Run Code Online (Sandbox Code Playgroud)
到目前为止我的想法; 如果存在则将变量设置options为值options,否则设置为空对象.
是/否?
我在Javascript中看到过类似的内容:
function name (secret) {
secret = secret || {};
Run Code Online (Sandbox Code Playgroud)
我无法找到任何意味着什么秘密=秘密|| {};
这是否意味着创建具有传递参数或对象值的全局变量?
你什么时候使用它?什么时候没有参数传递?
我在一个Javascript示例中看到了这一点
my_var = my_var || 69
Run Code Online (Sandbox Code Playgroud)
我认为这意味着检查my_var是否存在,如果没有将my_var设置为69.这是这种情况吗?有没有关于此的文档,很难表示为google/SO搜索,是否有人指向我的文档方向或重复QA?
(这个例子没有使用69,那只是我的粗鲁)
javascript ×9
angularjs ×1
arguments ×1
function ×1
logical-or ×1
notation ×1
syntax ×1
undefined ×1