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 += "\n";
}
console.log(result);
}
</script>
Eloquent JavaScript #02# program_structure的更多相关文章
- Eloquent JavaScript #13# HTTP and Forms
索引 Notes fetch form focus Disabled fields form’s elements property 阻止提交 快速插入单词 实时统计字数 监听checkbox和rad ...
- 前端面试准备笔记之JavaScript(02)
01. this的典型应用场景 this在各个场景中取什么值,是在函数执行的时候确认的,不是在定义的时候确认的. 普通函数执行 返回window function fn1() { console.lo ...
- Eloquent JavaScript #11# The Document Object Model
索引 Notes js与html DOM 在DOM树中移动 在DOM中寻找元素 改变Document 创建节点 html元素属性 布局 style CSS选择器 动画 Exercises Build ...
- Eloquent JavaScript #10# Modules
索引 Notes 背景问题 模块Modules 软件包Packages 简易模块 Evaluating data as code CommonJS modules ECMAScript modules ...
- Eloquent JavaScript #04# Objects and Arrays
要点索引: JSON More ... 练习 1.补:js字符串的表达方式有三种: "" 和 '' 没什么区别,唯一区别在于 "" 中写 "要转义字符 ...
- Eloquent JavaScript #03# functions
索引: let VS. var 定义函数的几种方式 more... 1.作者反复用的side effect side effect就是对世界造成的改变,例如说打印某些东西到屏幕,或者以某种方式改变机器 ...
- Eloquent JavaScript #01# values
When action grows unprofitable, gather information; when information grows unprofitable, sleep. ...
- 前端之JavaScript 02
一.函数 // 最基础的函数定义 function f1() { console.log('hello world!'); } f1(); // hello world! // 带参数的函数 func ...
- JAVA企业级开发-JavaScript(02)
一.JavaScript介绍 Javascript语言诞生主要是完成页面的数据验证.因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码. 特点: 交互性(它可以做的就是信息的动态交互 ...
随机推荐
- axios的使用
一.首先要安装axios npm install axios 使用: -先在main中配置: import axios from 'axios' //要把axios放进一个全局变量中 //把axios ...
- sap gui 定义类并实现接口
1: 直接在类属性的interfaces 框输入 接口名称即可.
- [py][mx]django处理登录逻辑
浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...
- GIt 修改上一次的提交(保持Change-Id不变即可)
背景: 代码提交到gerrit以后,发现提交不对或者缺少了某个文件的改动. 解决: 比如发现test.txt 文件忘记修改了 step1. vim test.txt 修改 step2. git add ...
- Python random模块random/uniform/randint/choice/getrandbits/shuffle/choice/sample随机函数
1.random.random() 返回0<=n<1之间的随机实数n 2. random.uniform() 弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限. 3. ...
- 一个简单的sel server 函数的自定义
创建自定义函数:use 数据库名gocreate function 函数名(@pno int)returns intasbegin declare @a int if not exists(se ...
- obv15 案例4,待日后分析
obv
- React项目中使用Mobx状态管理(一)
1.安装 $ yarn add mobx mobx-react 2.新建store/index.js,存放数据(以下思路仅限于父子组件的简单应用) 注意:这里暂时没使用装饰器@observable,装 ...
- 如何使用github来查找自己需要的(关心的)项目
1.登录github官网 输入用户名密码后会显示下面的界面 2.点击explore git hub 然后你会看到下面的页面 3.下面的或许有你想要的项目 点击Treding 可以查看最近火的项目仓库 ...
- java中JDBC连接Oracle数据库
package com.xxxx.lunwen.test;import java.sql.*;public class DBUtil { static { try { // 加载Oracle驱动程序 ...