【问题标题】:Argument of Different Data-Types不同数据类型的参数
【发布时间】:2016-11-27 13:33:10
【问题描述】:

执行以下操作是否是个好主意/做法:

export const checkAndUpdateCredit = ( total, addback = false ) => {
 // here, addback can be an obj or boolean
 let value = total - addback.value
};

根据评论,如果addback的参数没有被传递,它默认为false,否则需要传递一个对象。这里单个参数可以是objectboolean。这是一个好的做法/可以接受吗?

【问题讨论】:

  • 数字和布尔值相减有什么意义?
  • addback.value 呢?如果addbackfalse?你没有处理这个
  • 这就是重点,数字 - 布尔 = 数字。
  • @Kayote number - (-1) 例如? O_o
  • @MatíasFidemraizer const a=false; a==0 输出真... a===0 输出假... a==-1 输出假... 显然我不应该做我上面所做的事情,但是,它确实有效:)

标签: javascript types boolean type-conversion default-parameters


【解决方案1】:

您可以在 addback 中使用默认值

export const checkAndUpdateCredit = (total, addback = { value: 0 }) => {
//                                                    ^^^^^^^^^^^^

【讨论】:

  • 绝对是这样,我认为这比我的更明智,更不容易混淆。
【解决方案2】:

您还可以检查第二个argument 是否存在。

注意:第二个参数必须是带有键value的对象

const checkAndUpdateCredit = ( total, addback ) => {
 // here, addback can be an obj or boolean
 let value = addback? total - addback.value : total;
  console.log(value);
};

checkAndUpdateCredit(10);

checkAndUpdateCredit(10, {value: 2});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多