如何实现带JavaScript默认参数的introductionWithLanguageOptional函数
实现目标
编写JavaScript函数introductionWithLanguageOptional(name, language),满足以下测试用例要求:
describe('introductionWithLanguageOptional(name, language)', function() { it('takes in two arguments, a name and a language, and language defaults to JavaScript', function() { expect(introductionWithLanguageOptional("Susie")).toEqual("Hi, my name is Susie and I am learning to program in JavaScript."); }) })
核心规则:
- 函数接收两个入参:姓名
name、编程语言language language参数默认值为JavaScript- 仅传入
name值为"Susie"时,需返回指定格式的编程学习介绍语句
正确实现方式
推荐写法(ES6+ 标准默认参数语法)
直接在形参位置定义默认值,写法简洁可读性强,是目前主流开发环境的通用写法:
function introductionWithLanguageOptional(name, language = "JavaScript") { return `Hi, my name is ${name} and I am learning to program in ${language}.`; }
兼容旧环境写法
如果需要兼容不支持ES6默认参数的老旧运行环境,可以在函数内部手动判断参数是否传入,再赋值默认值:
function introductionWithLanguageOptional(name, language) { if (typeof language === 'undefined') { language = "JavaScript"; } return "Hi, my name is " + name + " and I am learning to program in " + language + "."; }
效果验证
调用introductionWithLanguageOptional("Susie")时,因为没有传入第二个参数,language会自动取默认值JavaScript,最终返回值和测试用例要求的字符串完全一致,可以通过测试。
如果传入第二个参数,比如introductionWithLanguageOptional("Bob", "Python"),则会返回Hi, my name is Bob and I am learning to program in Python.,符合参数设计预期。
内容的提问来源于stack exchange,提问作者jayC
相关产品推荐
相关产品推荐

