语句
1. if 语句
这里的条件(
condition
)可以是任何表达式,并且求值结果不一定是布尔值。
ECMAScript
会
自动调用 Boolean()函数将这个表达式的值转换为布尔值
。如果条件求值为
true
,则执行语句 statement1;如果条件求值为
false
,则执行语句
statement2
。这里的语句可能是一行代码,也可能是一个代码块(即包含在一对花括号中的多行代码)。
2. do-while 语句
do-while
语句是一种后测试循环语句,即循环体中的代码执行后才会对退出条件进行求值。换句话说,循环体内的
代码至少执行一次。
3.while 语句
while
语句是一种
先测试循环语句
,即
先检测退出条件
,再执行循环体内的代码。因此,
while 循环体内的代码有可能不会执行
。
4.for 语句
for(初始化,表达,后循环表达式)陈述
for语句 先初始化变量 然后去判定表达式 如果是true 则执行 陈述的内容 然后去执行后循环表达式
5. for-in 语句
for-in 语句是一种严格的迭代语句,用于枚举对象中的非符号键属性,
ECMAScript 中对象的属性是无序的,因此 for-in 语句不能保证返回对象属性的顺序。换句话说,所有可枚举的属性都会返回一次,但返回的顺序可能会因浏览器而异。
如果
for-in
循环要迭代的变量是
null
或
undefined
,则不执行循环体。
6. for-of 语句
for-of 语句是一种严格的迭代语句,用于遍历可迭代对象(类似于数组)的元素 。
for-of 循环不仅仅支持数组的遍历。同样适用于很多类似数组的对象
数组也可以用for in去遍历 但是如果数组中有属性的话 for in会把属性也遍历出来。如下所示:
let arr = [22,3,44,55,66]
arr.name = 'arrname'
for(const i in arr){
console.log(i)
console.log(arr[i])
}
// 0 22
// 1 3
// 2 44
// 3 55
// 4 66
// name arrname
for(const i in arr){
console.log(i)
}
// 22 3 44 55 66
7. switch 语句
注意 switch 语句在比较每个条件的值时会使用全等操作符,因此不会强制转换数据类 型(比如,字符串"10"不等于数值 10)。
小结
JavaScript
的核心语言特性在
ECMA-262
中以伪语言
ECMAScript
的形式来定义。
ECMAScript
包含所有基本语法、操作符、数据类型和对象,能完成基本的计算任务,但没有提供获得输入和产生输出的机制。理解 ECMAScript
及其复杂的细节是完全理解浏览器中
JavaScript
的关键。下面总结一下ECMAScript 中的基本元素。
- ECMAScript 中的基本数据类型包括 Undefined、Null、Boolean、Number、String 和 Symbol。
- 与其他语言不同,ECMAScript 不区分整数和浮点值,只有 Number 一种数值数据类型。
- Object 是一种复杂数据类型,它是这门语言中所有对象的基类。
- 严格模式为这门语言中某些容易出错的部分施加了限制。
- ECMAScript 提供了 C 语言和类 C 语言中常见的很多基本操作符,包括数学操作符、布尔操作符、关系操作符、相等操作符和赋值操作符等。
- 这门语言中的流控制语句大多是从其他语言中借鉴而来的,比如 if 语句、for 语句和 switch语句等。
ECMAScript
中的函数与其他语言中的函数不一样。
- 不需要指定函数的返回值,因为任何函数可以在任何时候返回任何值。
- 不指定返回值的函数实际上会返回特殊值 undefined。