Eloquent JavaScript 笔记 二:Program Structure

1. expressions and statements
expression: 能产生一个值的代码叫做表达式。例如:
    22
    true
    2 + 3
    a - b
statements: 通常,以分号结尾的一行代码,叫做语句。 例如:
    1;
    !false;
语句可以省略最后的分号,但,不建议这么做,因为,可能和下一行语句连起来产生歧义。

2. variables
var caught = 5 * 5;
var ten = 10 * 10;
console.log(ten*ten);

变量名:
    可以包含字母和数字,但第一个字符不能是数字。
    不能是JavaScript的保留字,如:var
    不能包含标点符号,除了 $ 和 _

变量像章鱼的触角,可以抓住任何值。 它不像箱子,不能容纳值。


尚未赋值的变量:
var a;
console.log(a);
输出: undefined

3. Keywords and Reserved words
keyword: 在JavaScript有特殊意义的词。
reserved words: 在JavaScript 没有特殊用途,但保留做以后用的词。
这两种词都不能用做变量名。

break case catch class const continue debugger default delete do else enum export extends false finally for function if implements import in instanceof interface let new null package private protected public return static super switch this throw true try typeof var void while with yield

这个列表很长啊,记不住也没关系。如果你的编辑器带语法检查功能,它们会显示为特殊的颜色。例如,复制到chrome控制台中,会显示成这样:


4. Environment
在某一时间点上,变量和它们的值的集合,叫做 environment。 当一个program启动时,environment并不是空的,它包含JavaScript语言系统提供的很多变量。例如,在浏览器中运行时,它包含当前网站的相关信息,还包含鼠标和键盘事件等。

5. Functions
默认的environment中包含了很多的function。 function就是一段包含在“值”中的程序。
调用一个function:
    alert("Good morning!");   // 弹出一个对话框,显示 "Good morning!" .

console.log( )

6. Return Values

7. Confirm

confirm("Shall we, then?");



8. Prompt
prompt("Tell me everything you know.", "...");



9. Control Flow
程序的执行顺序,默认是按照代码从上到下的顺序执行,例如下面两行代码:
var theNumber=Number(prompt("Pick a number", ""));
alert("Your number is the square root of "+theNumber*theNumber);

10. Conditional Execution
var theNumber = Number(prompt("Pick a number", ""));
if (!isNaN(theNumber)) {
  alert("Your number is the square root of " + theNumber * theNumber);
}
else {
  alert("Hey. Why didn't you give me a number?");
}
var num = Number(prompt("Pick a number", "0"));
if (num < 10)
  alert("Small");
else if (num < 100)
  alert("Medium");
else
  alert("Large");

11. While and Do Loops
var number = 0;
while (number <= 12) {
  console.log(number);
  number = number + 2;
}

do {
  var yourName = prompt("Who are you?");
} while (!yourName);
console.log(yourName);

12. Indenting Code

13. For Loops
var result = 1;
for (var counter = 0; counter < 10; counter = counter + 1) {
  result = result * 2;
}
console.log(result);

14. Breaking out of a Loop
for (var current = 20; ; current++) {
  if (current % 7 == 0)
    break;
}
console.log(current);

15. Updating Variables Succinctly
counter += 1;
result *= 2
counter -= 1

for (var number = 0; number <= 12; number += 2) {
  console.log(number);
}

counter++
counter--

16. Dispatching On a Value With Switch
switch (prompt("What is the weather like?")) {
  case "rainy":
    console.log("Remember to bring an umbrella.");
    break;
  case "sunny":
    console.log("Dress lightly.");
  case "cloudy":
    console.log("Go outside.");
    break;
  default:
    console.log("Unknown weather type!");
    break;
}
注意其中的 break, 如果输入sunny,则输出两行: 
Dress lightly.
Go outside.

17. Capitalization
变量的命名方式,看下面四种:
fuzzylittleturtle
fuzzy_little_turtle
FuzzyLittleTurtle
fuzzyLittleTurtle

通常使用第二种,或者第四种。

18. Comments

// this is a comment.

/* This is comment.
   The comment can be multiline.
*/

19. 练习一、Looping a Triangle
#
##
###
####
#####
######
#######
var a = "#";
for (var i=0; i<7; i++) {
    console.log(a);
    a += "#";
}

20. 练习二、FizzBuzz
for (var i=1; i<=100; i++) {
    if (i%3 ==0 && i%5==0) {
        console.log("FizzBuzz");
    }
    else if (i%3 == 0) {
        console.log("Fizz");
    }
    else if (i%5 == 0) {
        console.log("Buzz");
    }
    else {
        console.log(i);
    }
}

21. 练习三、Chess Board
var size = 8;
var row = "";
for (var i=0; i<size; i++) {
    for (var j=0; j<size; j++) {
        if (i%2 == 0) {
            if(j%2 == 0) {
                row += " ";    
            }
            else {
                row += "#";
            }
        }
        else {
            if(j%2 == 0) {
                row += "#";    
            }
            else {
                row += " ";
            }
        }
    }
    row += "\n";
}
console.log(row);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值