【问题标题】:If parameters or arguments is null如果参数或参数为空
【发布时间】:2020-08-15 21:42:41
【问题描述】:

JAVASCRIPT

您好,专业人士,如果我的类中的某些参数/参数为空,我唯一的想法就是“if 语句”。有没有什么有效的方法或者方法可以代替if语句。

因为如果我没有在此处放置“if 语句”,它会显示“未定义”。如果我的某些参数/参数为空/未定义,我只想显示“未定义”字样

class People {
constructor ({fname, mname, 
lname, favs}) {
this.fn = fname;
this.mn = mname;
this.ln = lname;
this.favs = [favs]
this.init();
} 

// 这里,我只使用 if 语句。

init(){

if (this.favs === null){

console.log(${this.­fn} ${this.mn} ${this.ln}) } 别的 { 控制台.log(${this.­fn} ${this.mn} ${this.ln} ${this.favs} ${this.num} ${this.color} ${this.hobby}) }

}
}

const $test = new People (
{
fname: 'Some',
mname: 'Random', 
lname: 'String',
favs: []
}
)

【问题讨论】:

    标签: javascript class parameter-passing


    【解决方案1】:

    使用默认参数怎么样?这样你就可以确定可选参数被初始化为默认值(然后,你永远不会得到未定义的)。像这样。

    class Person {
       constructor (fname, lname, favs) {
          this.fname = fname;
          this.lname = lname;
          this.favs = favs || [];   
    
          this.init();
       }
    
       init () {
          console.log(`Hi, I'm ${this.fname} ${this.lname}. My hobbies are: ${this.favs.join(',')}`);
       }
    }
    
    const joe = new Person('Joe', 'Doe');
    

    【讨论】:

    • 所以她会忽略收藏如果我没有在那里设置价值先生?
    • 它只是在没有提供的情况下分配一个默认值,这样favs将永远不会被定义。
    • 我现在明白了。感谢您的帮助先生!
    • 乐于助人。请记住将问题标记为已回答。
    • 还有一件事,如果删除了收藏夹中的 OR (||),它会显示未定义。我担心的是,为什么会这样,先生的 OR 是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多