我需要能够在运行时合并两个(非常简单的)JavaScript对象.例如,我想:
var obj1 = { food: 'pizza', car: 'ford' }
var obj2 = { animal: 'dog' }
obj1.merge(obj2);
//obj1 now has three properties: food, car, and animal
Run Code Online (Sandbox Code Playgroud)
有没有人有这个脚本或知道内置的方法来做到这一点?我不需要递归,我不需要合并函数,只需要平面对象上的方法.
我希望JavaScript函数具有可选参数,我将其设置为默认值,如果未定义该值,则使用该参数.在Ruby中你可以这样做:
def read_file(file, delete_after = false)
# code
end
Run Code Online (Sandbox Code Playgroud)
这是否适用于JavaScript?
function read_file(file, delete_after = false) {
// Code
}
Run Code Online (Sandbox Code Playgroud) 注意:当C#尚未支持可选参数时(即在C#4之前),就会询问此问题.
我们正在构建一个通过C#类以编程方式生成的Web API.该类有方法GetFooBar(int a, int b),API有一个GetFooBar接受查询参数的方法&a=foo &b=bar.
这些类需要支持可选参数,C#语言不支持这些参数.什么是最好的方法?
我可以声明默认参数吗?
function myFunc( a, b=0)
{
// b is my optional parameter
}
Run Code Online (Sandbox Code Playgroud)
在javascript中.
我正在调试一些JavaScript,并不能解释这||是做什么的?
function (title, msg) {
var title = title || 'Error';
var msg = msg || 'Error on Request';
}
Run Code Online (Sandbox Code Playgroud)
有人可以给我一个提示,为什么这个人正在使用var title = title || 'ERROR'?我有时也会在没有var声明的情况下看到它.
可能重复:
如何为javascript函数创建参数的默认值
在PHP中:
function func($a = 10, $b = 20){
// if func() is called with no arguments $a will be 10 and $ b will be 20
}
Run Code Online (Sandbox Code Playgroud)
你怎么能用JavaScript做到这一点?
如果我尝试在函数参数中赋值,则会出错
缺少)正式参数后
Google Apps脚本支持触发器,可将事件传递给触发器功能.不幸的是,开发环境将允许您在没有参数传递的情况下测试函数,因此您无法以这种方式模拟事件.如果你尝试,你会收到如下错误:
ReferenceError:未定义'e'.
可以将事件视为可选参数,并使用" 在JavaScript中有更好的方法来执行可选函数参数吗? "中的任何技术将默认值插入到触发器函数中.但是这会带来一种风险,即一个懒惰的程序员(如果那就是你那么举手!)会留下那些代码,带来意想不到的副作用.
当然还有更好的方法吗?
我有一段JavaScript代码,预计会为变量设置一个整数值.
有些东西坏了,所以当我尝试做的时候alert(A);,它会回来NaN.isNaN(A);返回true.但是,如果我alert(typeof(A));,它说number.
那么变量怎么可以是一个数字而不是一个数字呢?也许我误解了NaN究竟是什么?
编辑:感谢答案,我看到我错了,因为:
NaN是Number,NaN是指"不是数字",这与"不是类型Number"不同,0/0是一个很好的例子NaN:它仍然是一个数字,但JavaScript(没有其他人)可以说零的实际值除以零.1/0另一方面,返回Infinity,这不是NaN.为可选参数分配默认值的好方法是什么?
我正在玩JavaScript中的可选参数,以及如果未指定参数则分配默认值的想法.我的方法接受两个参数,后者我认为是可选的,如果未指定则默认为false.我的方法看起来像这样......
// selects the item, appropriately updating any siblings
// item to select [, toggle on / off]
this.selectItem = function(item, toggle)
{
toggle = toggle && typeof toggle === 'boolean';
if (toggle)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在此jsFiddle上运行一些测试后,使用以下主体进行默认值分配:
function checkParamIsBoolean(param)
{
param = param && typeof param === 'boolean';
}
checkParamIsBoolean('me'); // boolean
checkParamIsBoolean([]); // boolean
checkParamIsBoolean(true); // boolean
checkParamIsBoolean(false); // boolean
checkParamIsBoolean(1 == 1); // boolean
checkParamIsBoolean(1); // …Run Code Online (Sandbox Code Playgroud) 所以我一直这样做,只要我记得,但我很好奇这是不是我应该做的.你编写一个带参数的函数,所以你预计它有一个值,但如果没有,你有充分的理由将它默认为零.我目前所做的是编写辅助函数:
function foo() { return foo(0); };
function foo(bar) { ... };
Run Code Online (Sandbox Code Playgroud)
我刚刚跑过一个我做过这个的实例,在理解我背后的逻辑之前,我奇怪地看了几秒钟.我来自php,它很简单:
function foo(bar=0) { ... }
Run Code Online (Sandbox Code Playgroud)
有没有我不知道的javascript替代品?