让学习“上瘾”,成为更好的自己!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>statements</title>
</head>
<script>
/*
if 语句
do-while 语句
while语句
for语句
for-in语句
label语句
with语句
switch语句
【因为语句跟其他编程语言没有太多区别,所以这里省略了!!】
*/
// 由于ECMAScript不存在块级作用域,因此在循坏内部定义的变量在外部也可以访问到
// for语句中的“初始化表达式”、“控制表达式”和“循环后表达式”是可选的
// for (var i = 0;i<10;i++){
// console.log(i);
// }
// alert(i);
// for-in语句:一种精准的迭代语句,可以用来枚举对象的属性
// // for (property in expression) statement;
// for (var propName in window){
// document.write(propName+' \n');
// }
// 1, ECMAScript对象的属性是没有顺序的
// 2, 为了保证最大限度的兼容性,使用for-in循环前,先检测确定该对象的值是不是null or undefined
// -------------------------------------------------
// label语句:可以在代码中添加标签,以便将来使用
// label:statement
// 加标签的语句一般都要与for 语句等循环语句配合使用
// 使用label语句,一定要使用描述性的标签,同时不要嵌套过多的循环
// start: for(var i=0;i<5;i++){ // start标签将来可以由continue or break 语句引用
// alert(i);
// }
// break and continue
// break and continue 语句可以和label语句联合使用,从而返回到代码中特定的位置。这种联合多发生在循环嵌套中
var num = 0;
// outermost:
// for(var i=0;i<10;i++){
// for(var j=0;j<10;j++){
// if(i == 5 && j == 5){
// break outermost; // 程序跳出两个循环
// } // 只有break,则最终结果是95
// num ++;
// }
// }
// alert(num); // 55
// outermost:
// for(var i=0;i<10;i++){
// for(var j=0;j<10;j++){
// if(i == 5 && j == 5){
// continue outermost; // 跳出当前循环,并跳转到outermost(标签)下的for循环继续执行
// }
// num ++;
// }
// }
// alert(num); // 95
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
if(i == 5 && j == 5){
continue; // 少执行了一次
}
num ++;
}
}
alert(num); // 99
// -----------------------------------------
// with 语句: 将代码的作用域设置到一个特定的对象中 (大型应用程序中,不建议使用!!!)
// 语法: with (expression) statement;
// 目的:简化多次编写同一个对象的工作
// 注意:严格模式下不允许使用with 语句
var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;
// ==========等价书写===============
with (location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}
// switch 语句:特色使用
// 1, switch 语句可以使用任何数据类型,包括字符串、布尔值和对象
// 2, case的值可以是常量,变量,表达式
var num = 23;
switch (true){
case num < 0: // 表达式
alert('num is less than 0!');
break;
case num > 0:
alert('num is more than 0!');
break;
default:
alert('num is 0!');
}
switch('hello world'){
case 'hello' + ' world':
alert('greeting was found!');
break;
case 'goodbye':
alert('closing was found!');
break;
default:
alert('unexpected message was found!');
}
</script>
<body>
</body>
</html>