我在一个Javascript示例中看到了这一点
my_var = my_var || 69
Run Code Online (Sandbox Code Playgroud)
我认为这意味着检查my_var是否存在,如果没有将my_var设置为69.这是这种情况吗?有没有关于此的文档,很难表示为google/SO搜索,是否有人指向我的文档方向或重复QA?
(这个例子没有使用69,那只是我的粗鲁)
在某些语言中,您可以为函数的参数设置默认值:
function Foo(arg1 = 50, arg2 = 'default') {
//...
}
Run Code Online (Sandbox Code Playgroud)
你是如何用JavaScript做的?
我有一个定义了一个函数与javascript中的参数,我不知道如何初始化它的参数,任何人帮助我.代码是吼叫
<br/>Enter a number:
<input type="text" id="txt1" name="text1">
<p>Click the button to see the result</p>
<button onclick="myFunction(5)">show result</button>
<br/>
<p id="demo"></p>
<script>
function myFunction(param) {
alert(param);
var z = param;
var y = document.getElementById("txt1").value;
var x = +y + +z;
document.getElementById("demo").innerHTML = x;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:如果我发送一个参数给函数,因为<button onclick="myFunction(5)">show result</button>它工作,但如果我不发送任何参数它不工作,结果是NaN.现在我想知道如何初始化参数我定义函数?就像我们在PHP中一样function myFunction(param=0)
RAILS_ENV=production rake assets:precompile --trace
Digest::Digest is deprecated; use Digest
Digest::Digest is deprecated; use Digest
** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Execute assets:precompile
rake aborted!
ExecJS::RuntimeError: SyntaxError: Unexpected token operator «=», expected punc «,» (line: 159, col: 25, pos: 5132)
Error
at new JS_Parse_Error (/tmp/execjs20161124-23752-1wuk17bjs:3623:11948)
at js_error (/tmp/execjs20161124-23752-1wuk17bjs:3623:12167)
at croak (/tmp/execjs20161124-23752-1wuk17bjs:3623:22038)
at token_error (/tmp/execjs20161124-23752-1wuk17bjs:3623:22175)
at expect_token (/tmp/execjs20161124-23752-1wuk17bjs:3623:22411)
at expect (/tmp/execjs20161124-23752-1wuk17bjs:3623:22562)
at ctor.argnames (/tmp/execjs20161124-23752-1wuk17bjs:3623:27486)
at function_ (/tmp/execjs20161124-23752-1wuk17bjs:3623:27550)
at /tmp/execjs20161124-23752-1wuk17bjs:3623:24469 …Run Code Online (Sandbox Code Playgroud) 我希望能够在JavaScript中执行此操作:
function myFunction(one, two = 1) {
// code
}
myFunction("foo", "2");
myFunction("bar");
Run Code Online (Sandbox Code Playgroud)
我试过这个并没有用.我不知道如何调用这种类型的参数,有人能指出我正确的方向吗?
谢谢.
我有几个带有可选回调的函数:
let myFunc = (callback) => {
callback = callback || (() => {});
// do something...
callback();
}
Run Code Online (Sandbox Code Playgroud)
编写回调默认参数的最佳方法是什么?
以下解决方案都无法令我满意:
if (typeof callback === 'function') {
callback();
}
Run Code Online (Sandbox Code Playgroud)
一点都不紧凑!
let safeFunc = (callback) => {
return callback || (() => {});
};
let myFunc = (callback) => {
// do something...
safeFunc(callback)();
}
Run Code Online (Sandbox Code Playgroud)
但问题在于两者之间的关系this已经改变,这对我来说很重要。
calllet myFunc = (callback) => {
// do something...
safeFunc(callback).call(this);
}
Run Code Online (Sandbox Code Playgroud)
不太用户友好。
const ID = () => {}; …Run Code Online (Sandbox Code Playgroud) 我需要一个函数,它的参数是一个对象,如果我将其保留为空,它将加载默认值。
就像是:
function loadMap(args) { //args is an object and its optional
//this is what I want to do, test args and load defauts if necesary
/*
pseudocode:
if args.latitude is not set then
give it a default value
if args.longitude is not set then
give it a default value
end pseudocode */
alert("Latitude is "+args.latitude );
alert("Longitude is "+args.longitude );
}
//outputs the default values
loadMap();
//outputs custom values
loadMap({latitude: "x.xxxx", longitude: "-x.xxxx"});
//and should work too and output …Run Code Online (Sandbox Code Playgroud) 我想使用 javascript 为函数设置一个可选参数。我有一个如下定义的函数,
const function1 = () => {
setValue(!open);
};
Run Code Online (Sandbox Code Playgroud)
我在其他函数中像下面这样称呼它
const main_function = () => {
function1();
}
Run Code Online (Sandbox Code Playgroud)
现在我想将一个可选参数传递给 function1 以接受一个将其设置为 true 或 false 的可选参数,而不是根据先前的值进行切换。
我怎样才能解决这个问题。有人可以帮我解决这个问题吗?
javascript ×8
arguments ×2
parameters ×2
ecmascript-6 ×1
function ×1
object ×1
optional ×1
reactjs ×1