如果不存在,如何使 Javascript 参数默认为某个值? [复制]

Posted

技术标签:

【中文标题】如果不存在,如何使 Javascript 参数默认为某个值? [复制]【英文标题】:How can I make Javascript parameters default to something if not present? [duplicate] 【发布时间】:2014-09-02 20:11:17 【问题描述】:

我有这个功能:

this.checkButton = function (buttonName, element, expectedPresent, expectedEnabled) 
    var enabledCheck = expectedEnabled ? "enabled" : "disabled";
    it('Find a ' + buttonName + ' button and check it is ' + enabledCheck, function () 
        expect(element.isPresent()).toBe(expectedPresent);
        expect(element.isEnabled()).toBe(expectedEnabled);
    );

有没有办法可以做到这一点,如果在没有最后两个参数的情况下调用函数,那么这些参数都将默认为 true?

【问题讨论】:

【参考方案1】:

如果我明白你想要什么。

试着在函数的开始说。

expectedPresent = (expectedPresent==undefined) ? true : expectedPresent;
expectedEnabled = (expectedEnabled==undefined) ? true : expectedEnabled;

我希望这会有所帮助。

【讨论】:

那行不通。完全没有。 这种方式不可能将expectedPresent 传递为false 使用=== 而不是== @Barmar 不好意思问了,但这有什么帮助? 没关系,我错了。【参考方案2】:

将参数与undefined 进行比较以了解它们是否存在:

    this.checkButton = function (buttonName, element, expectedPresent, expectedEnabled) 

        if(expectedPresent === undefined) 
            expectedPresent = true;
        
        if(expectedEnabled === undefined) 
            expectedEnabled = true;
        
        var enabledCheck = expectedEnabled ? "enabled" : "disabled";
        it('Find a ' + buttonName + ' button and check it is ' + enabledCheck, function () 
            expect(element.isPresent()).toBe(expectedPresent);
            expect(element.isEnabled()).toBe(expectedEnabled);
        );
    

【讨论】:

以上是关于如果不存在,如何使 Javascript 参数默认为某个值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:检查变量是不是为假或根本不存在[重复]

javascript 在'require'之前检查路径是否存在。如果不存在,则回退到默认路径

JavaScript通过preventDefault()使input[type=text]禁止输入但保留光标

Play Framework - 使用默认查询参数的路由(如果不存在)

如何使我自己的 JavaScript 函数具有必需的参数?

如果图片不存在则显示默认图片