-
普通语句
重点放在循环语句 声明型语句- 表达式语句 ( 看JS语法_3.txt )
由运算符连接变量 或者 直接量构成
** 直接量
语句块
{
var x, y;
x = 10;
y = 20;
}空语句 ( 仅仅是从语言设计完备性的角度考虑,允许插入多个分号而不抛出错误 )
;if语句
switch语句
在js中其实没什么必要用 用if去代替循环语句
for循环for(i = 0; i < 100; i++) console.log(i); for(var i = 0; i < 100; i++) console.log(i); for(let i = 0; i < 100; i++) console.log(i); var j = 0; for(const i = 0; j < 100; j++) console.log(i); const 没法改变 但不报错 for in 循环 对象是对象推荐使用 for of 循环 只要对象拥有iterator 就可以用于 for of 语句 对象是数组推荐使用 for await of 循环 while 循环 let a = 100 while(a--) { console.log("*"); } do while循环 let a = 101; do { console.log(a); } while(a < 100)return 语句
给函数提供返回值break语句
用于调出循环 switch语句continue语句
结束本次循环并继续循环with语句
let o = {a:1, b:2} with(o){ console.log(a, b); } with 语句把对象的属性在它内部的作用域内变成变量throw语句
try语句
debugger语句 - 表达式语句 ( 看JS语法_3.txt )
-
声明型语句
var语句
把它当做一种“保障变量是局部”的逻辑
遵循以下三条规则:
a. 声明同时必定初始化;
b. 尽可能在离使用的位置近处声明;
c. 不要在意重复声明。
let语句
const语句class声明
跟const 和 let类似 都是作用域块级作用域 预处理阶段则会屏蔽外部变量
内部可以使用constructor关键字来定义构造函数 还能定义 getter/setter函数声明
普通函数
function foo(){}
async函数
async function foo(){
await sleep(3000);
}
generator函数
function* foo(){
yield 1;
yield 2;
yield 3;
}async generator函数 async function* foo(){ await sleep(3000); yield 1; } -
Symbol.iterator 的原生对象 for of 遍历行为
0: “Array”
1: “String”
2: “Uint8Array”
3: “Int8Array”
4: “Uint16Array”
5: “Int16Array”
6: “Uint32Array”
7: “Int32Array”
8: “Float32Array”
9: “Float64Array”
10: “Uint8ClampedArray”
11: “BigUint64Array”
12: “BigInt64Array”
13: “Map”
14: “Set”

被折叠的 条评论
为什么被折叠?



