JS中的语句

1. if语句

if(){
	//
}else if(){
	//
}else{
	//
}

2.do-while语句

循环体内的代码至少执行一次

do{
	//
}while()

3.while语句

先检测后循环,所以循环体内代码可能不会执行

while(){
	//
}

4.for语句

先检测后循环,所以循环体内代码可能不会执行

for(let i=0 ; ; ){
	//
}

使用let声明迭代变量,可以将这个变量的作用域限定在循环中

5.for-in语句

用于枚举对象中的非符号键属性

// 使用for-in循环显示了BOM对象window里所有属性。
// 每次执行循环,都会给变量propName赋予一个window对象的属性作为值,直到window的所有属性都被枚举一遍。
// 这里为了确保这个局部变量不被修改,所以使用const
for(const propName in window){
	//
}

如果for-in循环迭代的变量是null或undefined,则不执行循环体

6.for-of语句

用于遍历可迭代对象的元素
for-of循环会按照可迭代对象的next()方法产生值的顺序迭代元素
如果尝试迭代的变量不支持迭代,则for-of语句会抛出错误

for(const el of [2,4,6,8]){
	document.write(el)
}

ES2018中对for-of语句进行了扩展,增加了for-await-of循环,以支持生成期约(promise)的异步可迭代对象

7.标签语句

标签语句用于给语句加标签

// 这个例子中start是一个标签,可以在后面通过break或continue语句引用。
// 标签语句的典型应用场景是嵌套循环
start: for(let i = 0; i < count; i++){
	console.log(i)
}

8.break和continue语句

break语句用于立即退出循环,强制执行循环后的下一条语句。
而continue语句也用于立即退出循环,但会再次从循环顶部开始执行

//标签和break结合
let num = 0;
outermost:
for(let i = 0; i < 10; i++){
	for(let j = 0; j < 10; j++){
		if(i == 5 && j == 5){
			break outermost;
		}
		num++;
	}
}
console.log(num)	//55

outermost标签标识的是第一个for语句。正常情况下,每个循环执行10次,意味着num++语句会执行100次,循环结束时num结果应该是100。但break语句退出的是标签的for。因此此时的结果是55.
若break该为continue,结果为95.

9.with语句

with语句的用途是将代码作用域设置为特定的对象

let qs = location.search.substring(1);
let hostname = location.hostname;
let url = location.href;
//上面代码中的每一行都用到了location对象。如果使用with语句,就可以少些一些
with(location){
	let qs = search.substring(1);
	let hostname = hostname;
	let url = href;
}

这里,with语句用于连接location对象。这意味着在这个语句内部,每个变量首先会被认为是一个局部变量。如果没有找到该局部变量,则会搜索location对象,看它是否有一个同名的属性。如果有,则会被求值为location对象的属性。
严格模式不允许使用with语句,否则会抛出错误。由于with语句影响性能且难于调试其中的代码,通过不推荐使用。

10.switch语句

switch语句是与if语句紧密相关的一种控制流语句
最好每个条件后面都加上break语句

switch(i){
	case 25:
		console.log("25");
		break;
	case 35:
		console.log("35");
		break;
	default:
		console.log("Other");
}

在ES中,switch语句可以用于所有数据类型,因此可以使用字符串甚至对象。其次,条件值不需要是常量,也可以是变量或表达式。

let num = 25;
switch(true){
	case num < 0:
		console.log("Less than 0.");
		break;
	case num >= 0 && num <= 20:
		console.log("Between 0 and 20.")
		break;
	deault:
		console.log("More than 20.")
}

上面的代码在外部定义了num,而传给switch语句的参数之所以是true,是因为每个条件的表达式都会返回布尔值。条件的表达式分别被求值,直到有表达式返回true;否则就会一直跳到default语句。
switch语句在比较每个条件的值时会使用全等操作符。

函数

function sayHi(name, message){
	console.log("Hello"+name+","+message);
}
sayHi("AA","how are you?")

return语句也可以不带值。这个时候,函数会立即停止执行并返回undefined。这种用法最常用于提前终止函数执行,并不是为了返回值。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值