• 习题
    • LoopingaTriangle
    • FizzBuzz
    • 棋盘

    习题

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

    每个练习都以问题描述开始。 阅读并尝试解决这个练习。 如果遇到问题,请考虑阅读练习后的提示。 本书不包含练习的完整解决方案,但您可以在 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确定)的棋盘,并输出给定宽度和高度的网格。