https://blog.csdn.net/weixin_39518371/article/details/122910537
练习题解答
-
输入的count应当是让老和尚讲故事的数量,请据此修改函数boring_story
let boring_story = (count) => { // count: 打印次数+1,就会多出一行故事,所以把>变成>=即可 if (count >= 0) { print_boring_story(); boring_story(count - 1); } else {} }
-
实现函数
-
not_less(a, b):比较数值,a不小于b时为真;
let not_less = (a, b) => a >= b
-
compare(a, b): 比较数值,a > b则返回1,a=b则返回0,a < b 则返回-1
- 提示:要处理多种情况,要用多层if else
let compare = (a, b) => a>b ? 1 : (a==b ? 0 : -1) //上面这行是我皮一下~ let compare = (a, b) => { if(a > b) { return 1; }else if(a == b) { return 0; }else { //a<b return -1; } }
-
输入为x, n,返回n个x相乘的值(指数)
- 提示:x为0或n为0时,都应该返回1。
let pow = (x, n) => { //个人觉得x==0时应该返回0,但这里还是按照题目写了。 if(x*n == 0) return 1; return x*pow(x, n-1); }
-
-
js
还有null
这一数据类型,请分别写出它作为函数输入、输出的实例;//以null输入的实例 let input_null = () => { console.log("即使没有输入,依然可以输出。"); } //以null输出的实例 let output_null = () => {return null}
-
下列表达式在控制台的输出是什么?请思考后用控制台验证。看得懂这些代码就行,请避免写出这样的代码。
-
if (null) { 1 + 1 } else { 3 } //我猜null可以被类型转换为false,所以if后面的语句将永远不会执行,而永远执行else里的语句,然后控制台处理语句"3",输出3
-
if (undefined) { 1 + 1 } else { 3 } //与上边的情况类似
-
((x, y) => { if (x = y) return 2; else return 3; })(3, 4) /*x=y是赋值表达式,每一个表达式都有自己的功能,并且都有一个返回值。 x = y这个表达式的功能是把y的值赋值给x,返回值是等号右边的值也就是y的值。 这里y=4是非零的整数,被转换成了true。 所以只要y非0,那么就返回3,当然如果传给y一个0的话就会返回2。有兴趣的可以试一下:)*/
-
-
let result = boring_story(1)
,它的输出是什么?一行boring_story()。因为赋值语句的返回值。
上文中我提到了“表达式”的说法,咳咳,纯粹是受C++语言的影响,我们一起期待下文gantrol哥哥怎样解释吧 😃