问题描述:
function Go() {
console.log("Go");
}
function GoSteps(n) {
……
}
现在请你自己写一个GoSteps函数,然后跑通下面的测试用例。
GoSteps(10); // Go 10次
GoSteps(1); // Go 1次
GoSteps(); // Go 1次,认为缺少参数时,默认参数为1
GoSteps(0); // 0次
GoSteps(-1); // 0次
GoSteps(1.4); // Go 1次
GoSteps(1.6); // Go 1次
GoSteps(-1); // 0次
GoSteps(true); // Go 1次
GoSteps(false); // 0次
GoSteps("Test"); // 0次
GoSteps(NaN); // 0次
GoSteps(null); // 0次
将要求提取出来
可以先分成两大类,等于0
和不等于0
,再从等于0
中间分出来两类,固定为1
和直接赋值
答案:
function Go(){
console.log("Go!");
}
function GoSteps(n=1){//如果没传值,默认给一个1
if(String(n).indexOf('.')>-1||n===true) {
n = 1;
}else if(n%1===0&&n>0){
//什么都不做,该多少就多少
}else{
n=0;
console.log("我并没有输出GO()");
}
while (n--){
Go();
}
}