习题

如果你不清楚在哪里可以找到习题的提示,请参考本书的简介部分。

每个练习都以问题描述开始。 阅读并尝试解决这个练习。 如果遇到问题,请考虑阅读练习后的提示。 本书不包含练习的完整解决方案,但您可以在 eloquentjavascript.net/code 上在线查找它们。 如果你想从练习中学到一些东西,我建议仅在你解决了这个练习之后,或者至少在你努力了很长时间而感到头疼之后,再看看这些解决方案。

LoopingaTriangle

编写一个循环,调用 7 次console.log函数,打印出如下的三角形:

  1. #
  2. ##
  3. ##
  4. ###
  5. ###
  6. ####
  7. #####

这里给出一个小技巧,在字符串后加上.length可以获取字符串的长度。

  1. let abc = "abc";
  2. console.log(abc.length);
  3. // → 3

FizzBuzz

编写一个程序,使用console.log打印出从 1 到 100 的所有数字。不过有两种例外情况:当数字能被 3 整除时,不打印数字,而打印"Fizz"。当数字能被 5 整除时(但不能被 3 整除),不打印数字,而打印"Buzz"

当以上程序可以正确运行后,请修改你的程序,让程序在遇到能同时被 3 与 5 整除的数字时,打印出"FizzBuzz"

(这实际上是一个面试问题,据说剔除了很大一部分程序员候选人,所以如果你解决了这个问题,你的劳动力市场价值就会上升。)

棋盘

编写一个程序,创建一个字符串,用于表示8×8的网格,并使用换行符分隔行。网格中的每个位置可以是空格或字符"#"。这些字符组成了一张棋盘。

将字符串传递给console.log将会输出以下结果:

  1. # # # #
  2. # # # #
  3. # # # #
  4. # # # #
  5. # # # #
  6. # # # #
  7. # # # #
  8. # # # #

当程序可以产生这样的输出后,请定义绑定size=8,并修改程序,使程序可以处理任意尺寸(长宽由size确定)的棋盘,并输出给定宽度和高度的网格。