TC_DHL 发表于 2022-3-11 02:31:07

问一下JavaScript函数形参的问题

function myFunction(a,b,c,d,e) {
nums = c + 100;
}

console.log(nums);

函数myFunction 中有五个形参, 我如果只想给 "参数c"传递值, 其他四个放那不动, 这个JavaScript办不到的嘛?
大佬轻点喷...真的懵逼...我寻思这Python随便传, JavaScript给我整懵逼了都...{:10_266:}

大西瓜吃吃 发表于 2022-3-11 02:31:08

本帖最后由 大西瓜吃吃 于 2022-3-12 15:30 编辑

function myFunction({a,b,c,d,e}) {
let nums = c + 100;
return nums;
}

myFunction({c: 200}) // 300

{:10_254:}{:10_254:}{:10_254:}

参考资料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
记忆方式1:记得python中类似:func(**my_dict) 的形式吗,与此用法极其相似。
记忆方式2:若无此特性,你是可以写成如下形式的,是等价的,同时你也会更加理解了。
function myfun( props ) {
    let nums = props.c + 100;
    return nums;
}

TC_DHL 发表于 2022-3-11 04:53:51

好像也只能这样...有木有大佬有更优的代码....{:10_248:}

function myFunction(a,b,c,d,e) {
var a1;
var b1;
var c1;
var d1;
var e1;

if (a != undefined){
    a1 = {
      "sum": a
    };
    console.log(a);
}
if (b != undefined){
    b1 = {
      "sum": b
    }
    console.log(b);
}
if (c != undefined){
    c1 = {
      "sum": c
    }
    console.log(c);
}
if (d != undefined){
    d1 = {
      "sum": d
    }
    console.log(d);
}
if (e != undefined){
    e1 = {
      "sum": e
    }
    console.log(e);
}

return ;
}

function doIt(dododo) {
if (dododo === 0) {
    set_str = "我在a1";
    return myFunction(set_str, undefined, undefined, undefined, undefined);
}

if (dododo === 4) {
    set_str = "我在e1";
    return myFunction(undefined, undefined, undefined, undefined, set_str);
}
}

// 传一次参
doIt(0);// 打印: 我在a1
// 传一次参
doIt(4);// 打印: 我在e1

// 传两次参
doIt(0);// 打印: 我在a1
doIt(4);// 打印: 我在e1

kogawananari 发表于 2022-3-11 10:36:25

myFunction(...[,,100,,])

zxabczl 发表于 2022-3-11 17:41:39

function myFunction(a,b,c,d,e) {
nums = c + 100;
return nums
}
console.log(nums);

TC_DHL 发表于 2022-3-11 18:51:45

zxabczl 发表于 2022-3-11 17:41
function myFunction(a,b,c,d,e) {
nums = c + 100;
return nums


{:10_283:}

TC_DHL 发表于 2022-3-11 18:52:21

kogawananari 发表于 2022-3-11 10:36
myFunction(...[,,100,,])

不是这种, 应该是叫js的不定数参数

TC_DHL 发表于 2022-3-12 06:45:31

大西瓜吃吃 发表于 2022-3-12 00:15


请问这个写法的名称叫啥

大西瓜吃吃 发表于 2022-3-12 15:22:47

TC_DHL 发表于 2022-3-12 06:45
请问这个写法的名称叫啥

{:10_254:}你好同学,用法见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
考虑到你对python熟悉,为方便理解和记忆,你可以将此特性类比为我们在python中所说的解包。我个人觉得还是挺好的特性。
页: [1]
查看完整版本: 问一下JavaScript函数形参的问题