• Eloquent JavaScript #02# program_structure


    第一章中作者介绍了各种值,但是这些独立的值是没有意义的,只有当值放在更大的框架的时候才会彰显它们的价值。所以第二章开始介绍程序结构。

    1、var VS. let 以及 const

    作者推荐用 let ,因为var 有一些稀奇古怪的行为?暂时没有详细解释。

    const 用于绑定常量值

    2、关于 JavaScript 的运行环境

    在运行 JavaScript 程序的环境中,并不仅仅只有你定义的绑定,还有其它各式各样初始化就有的“环境绑定”。

    例如说 prompt , 这是一个持有函数类型的绑定,不过在现代浏览器里几乎不用了,理由是它没法装饰。。不过在玩具式程序里倒是用得很多。

    typeof prompt
    "function"
    typeof NaN "number"

    3、关于自增号。

    在 JavaScript 里 ++ -- += -= *= 都是可以用的,但是在 Python 里不行,它有 += 却没有 ++ -- 

    4、javascript 命名规范

    遵循驼峰命名法(可以发现 JavaScript 标准函数就是那样命名的, 但为什么像 Number 那样的函数第一个字母是大写呢?因为是它是构造器)

    Number("xxxx")
    NaN
    
    Number("222")
    222

    5、打印下面这个图形:

    #
    ##
    ###
    ####
    #####
    ######
    #######
                let result = "#";
                for (let i = 0; i != 7; ++i) {
                    console.log(result);
                    result += "#";
                }

    6、关于控制流的小练习

    Write a program that uses console.log to print all the numbers from 1 to 100, with two exceptions. For numbers divisible by 3, print "Fizz" instead of the number, and for numbers divisible by 5 (and not 3), print "Buzz" instead.

    When you have that working, modify your program to print "FizzBuzz" for numbers that are divisible by both 3 and 5 (and still print "Fizz" or "Buzz" for numbers divisible by only one of those).

            <script type="text/javascript">
                for (let i = 1; i <= 100; ++i) {
                    if (i % 3 === 0 && i % 5 === 0) {    
                        console.log("FizzBuzz");
                    } else if (i % 5 === 0) {
                        console.log("Buzz");
                    } else if (i % 3 === 0) {
                        console.log("Fizz");
                    } else {
                        console.log(i);
                    }
                }
            </script>

    PS. 优先级 + - 等远大于 == != 远大于 &&和||(其中 && 大于||) 赋值号优先级是最小的,另外,上面的 === 属于多此一举,当可以确定两边值类型相同的时候用 == 就可以了。

    7、练习三:

    Passing this string to console.log should show something like this:

     # # # #
    # # # # 
     # # # #
    # # # # 
     # # # #
    # # # # 
     # # # #
    # # # #

    When you have a program that generates this pattern, define a binding size = 8 and change the program so that it works for any size, outputting a grid of the given width and height.

           <script type="text/javascript">
                let size = Number(prompt("Enter the size of chessboard"));
                if (!Number.isNaN(size)) {
                    // NaN 虽然含义是 "Not a Number",不过 typeof 输出类型仍然是 Number
                    // 另外,意外发现 IE 环境居然不支持 isNaN 属性
                    let result = "";
                    for (let i = 0; i != size; ++i) {
                        for (let j = 0; j != size; ++j) {
                            if ((i + j) % 2 == 0) {
                                result += " ";
                            } else {
                                result += "#";
                            }
                        }
                        result += "
    ";
                    }
                    console.log(result);
                }
            </script>
  • 相关阅读:
    系统编程-进程-fork深度理解、vfork简介
    九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像
    jiffies相关时间比较函数time_after、time_before详解
    Java基础第六章(循环结构二)
    Java基础第五章(循环结构一)
    Java基础第四章(选择结构二)
    Java基础第三章(选择结构一)
    Java基础第二章(变量、数据类型和运算符)
    Java基础第一章
    HTML iframe的使用
  • 原文地址:https://www.cnblogs.com/xkxf/p/9108560.html
Copyright © 2020-2023  润新知