知识内容:css
1.条件语句(分支语句)html
2.循环语句python
3.with语句算法
4.异常处理express
5.本节练习数组
参考资料:《JavaScript高级程序设计》服务器
1.条件语句app
JavaScript中的条件语句相似C、C++:测试
(1)if语句网站
1 if(条件){
2
3 }else if(条件){ 4 5 }else{ 6 7 }
注:
(2)switch语句
1 switch (experssion){
2 case value: statement 3 break; 4 case value: statement 5 break; 6 case value: statement 7 break; 8 case value: statement 9 break; 10 default: statement 11 }
例如:
1 switch (value) {
2 case 1: 3 alert('第一'); 4 break; 5 case 2: 6 alert('第二'); 7 break; 8 case 3: 9 alert('第三'); 10 break; 11 default: 12 alert(666); 13 break; 14 }
2.循环语句
(1)do-while语句
1 do {
2 statement 3 } while (experssion);
例如:
1 var i = 0;
2 do { 3 i += 2; 4 } while (i < 10); 5 6 alert(i); // 10
注:do-while循环是后测试循环语句最经常使用于循环体中的代码至少要被执行一次的状况
(2)while语句
1 while(expression)
2 { 3 statement 4 }
例如:
1 var i = 0;
2 while(i < 10) 3 { 4 i += 2; 5 } 6 7 alert(i); // 10
(3)for语句
for语句有两种格式,一种相似C语言的写法,一种相似python的写法
相似python的格式:循环时,循环的元素是索引
1 # 循环遍历数组
2 a = [11,22,33,44] 3 for(var item in a){ 4 console.log(item); // 0 1 2 3 5 } 6 7 # 循环遍历列表 8 a = {'k1':'v1','k2':'v2'} 9 for(var item in a){ 10 console.log(item); // k1 k2 11 }
相似C语言的写法:
1 # 遍历输出数组的值
2 a = [11,22,33,44] 3 for(var i=0;i<a.length;i=i+1){ 4 console.log(a[i]); // 11 22 33 44 5 }
注:这种方法不支持字典的循环
(4)label和break和continue
label语句:在代码中添加标签,使用方法是label:statement
break:当即退出循环
continue:当即退出循环可是退出循环后会从循环的开始部分继续执行
实例:
1 var num = 0;
2 for (var i=1; i<10; i++) 3 { 4 if (i%5 == 0){ 5 break; 6 } 7 num++; 8 } 9 10 alert(num); // 4
1 var num = 0;
2 for (var i=1; i<10; i++) 3 { 4 if (i%5 == 0){ 5 continue; 6 } 7 num++; 8 } 9 10 alert(num); // 8
break、continue和label语句结合使用返回代码中指定的位置:
1 var num = 0;
2
3 outermost: 4 for (var i=0; i<10; i++){ 5 for(var j=0; j<10; j++){ 6 if (i == 5 && j == 5){ 7 break outermost; 8 } 9 num++; 10 } 11 } 12 13 alert(num); // 55
1 var num = 0;
2
3 outermost: 4 for (var i=0; i<10; i++){ 5 for(var j=0; j<10; j++){ 6 if (i == 5 && j == 5){ 7 continue outermost; 8 } 9 num++; 10 } 11 } 12 13 alert(num); // 95
3.with语句
with语句的做用是将代码的做用域设置到一个特定的对象中,with语句语法:with (expression) statement;
定义with语句的目的主要是为了简化屡次编写同一个对象的工做,以下所示:
1 var qs = location.search.substring(1);
2 var hostName = location.hostname; 3 var url = location.href;
上述代码使用with语句以后能够这样写:
1 with(location){
2 var qs = search.substring(1); 3 var hostName = hostname; 4 var url = href; 5 }
4.异常处理
关于JavaScript异常处理详细信息:https://blog.csdn.net/u012468376/article/details/57411822?utm_source=itdadao&utm_medium=referral
1 try {
2 //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
3 } 4 catch (e) { 5 // 若是try代码块中抛出了异常,catch代码块中的代码就会被执行。 6 //e是一个局部变量,用来指向Error对象或者其余抛出的对象 7 } 8 finally { 9 //不管try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。 10 }
js代码:
1 // 封装console.log 封装输出 2 log = function() { 3 console.log.apply(console, arguments) 4 }; 5 6 // 分支结构(if和switch): 7 /* 8 if-else: 9 if(条件){ 10 11 }else if(条件){ 12 13 }else{ 14 15 } 16 */ 17 // ———选择控制——— 18 // 19 // if 能够根据状况选择性执行某些语句 20 // 例如 21 // 22 // 定义一个变量 grade 表明年级 23 24 grade = 3; 25 // 若是 grade 小于 7 26 if(grade < 7) { 27 // 这句 log 只在 grade 小于 7 这个条件知足的状况下会被执行 28 log('小学生') 29 } 30 31 // 选择控制有多种不一样的用法 32 // 只有if 33 if(1 > 2) { 34 log('条件成立') // 语句不执行 35 } 36 37 // if 带 else 38 // if else 一定会执行一个语句 39 if(1 > 2) { 40 log('条件成立') 41 } else { 42 log('条件不成立') // 执行这条语句 43 } 44 45 // 多个 if else 46 grade = 8; 47 if(grade < 7) { 48 log('小学生') 49 } else if(grade < 10) { 50 log('初中生') 51 } else { 52 log("高中生") 53 } 54 // 输出: 初中生 55 56 // 例子 57 // 求绝对值 58 n = -1; 59 if(n < 0) { 60 n = -n; 61 } 62 log(n); 63 64 // 判断奇偶 65 n = 1; 66 if(n % 2 === 0) { 67 log('偶数'); 68 } else { 69 log('奇数'); 70 } 71 72 73 // ——比较运算和逻辑操做—— 74 // 75 // if 判断的条件实际上是一个值, 这种值叫 布尔值 (bool, Boolean) 76 // 这种值只有两种结果, 一个是 真, 一个是 假 77 // 在 JavaScript 中, 这两种值分别是 true 和 false 78 // 79 // 1 > 2 其实是一个值, false 80 // if 是根据这个值来决定执行的语句的 81 // 82 // 一共有 7 种比较运算 83 // 下面分别是 84 // 严格相等, 严格不相等, 相等、不等、小于、大于、小于等于、大于等于 85 // === 86 // !== 87 // == 88 // != 89 // < 90 // > 91 // <= 92 // >= 93 94 // 例子 95 // 1 === '1' 96 // 1 == 1 97 // 1 == 2 98 // 1 != 1 99 // 1 != 2 100 // 1 < 2 101 // 1 > 2 102 // 1 <= 1 103 // 1 >= 1 104 105 // 除了比较运算, 还有三种逻辑操做 106 // 三种逻辑操做分别是 与、或、非 107 // 在 JavaScript 中 分别以下 108 // && 109 // || 110 // ! 111 // 112 // 用到的地方很广, 好比你登陆网站的时候, 服务器要作以下判断 113 // if(用户名存在 && 密码验证成功) { 114 // 登陆成功 115 // } else { 116 // 登陆失败 117 // } 118 119 // 注意 120 // 比较运算和逻辑操做的结果都是 bool(布尔类型),结果是 true 和 false 121 122 // 例子 123 // 1 == 1 && 2 == 2 // true 124 // 1 == 1 && 1 == 2 // false 125 // 1 == 1 || 1 == 2 // true 126 // ! (1 == 1) 127 128 // 能够加括号来让代码直观一点 129 // ((1 == 1) && (2 == 2)) || (1 == 2) 130 131 132 /* 133 switch: 134 switch (experssion){ 135 case value: statement 136 break; 137 case value: statement 138 break; 139 case value: statement 140 break; 141 case value: statement 142 break; 143 default: statement 144 } 145 */ 146 value = 1; 147 switch (value) { 148 case 1: 149 log('第一'); 150 break; 151 case 2: 152 log('第二'); 153 break; 154 case 3: 155 log('第三'); 156 break; 157 default: 158 log(666); 159 break; 160 } 161 162 163 // 循环结构(do-while、while、for) 164 // do-while: 165 var i = 0; 166 do { 167 i += 2; 168 log(i); 169 }while (i < 10); 170 171 // while: 172 var i = 0; 173 while(i < 10){ 174 i += 2; 175 log(i); 176 } 177 178 // for: 179 // for语句有两种格式,一种相似C语言的写法,一种相似python的写法 180 // 相似python的格式:循环时,循环的元素是索引 181 // 循环遍历数组 182 a = [11,22,33,44]; 183 for(item in a){ 184 log(item); // 0 1 2 3 185 log(a[item]); // 11 22 33 44 186 } 187 188 // 循环遍历字典 189 a = {'k1':'v1','k2':'v2'}; 190 for(s in a){ 191 log(s); // k1 k2 192 log(a[s]); // v1 v2 193 } 194 195 196 // break continue label示例: 197 var num = 0; 198 for (var i=1; i<10; i++) 199 { 200 if (i%5 == 0){ 201 break; 202 } 203 num++; 204 } 205 log(num); // 4 206 207 var num = 0; 208 for (var i=1; i<10; i++) 209 { 210 if (i%5 == 0){ 211 continue; 212 } 213 num++; 214 } 215 log(num); // 8 216 217 // break、continue和label语句结合使用返回代码中指定的位置: 218 var num = 0; 219 outermost: 220 for (var i=0; i<10; i++){ 221 for(var j=0; j<10; j++){ 222 if (i == 5 && j == 5){ 223 break outermost; 224 } 225 num++; 226 } 227 } 228 log(num); // 55 229 230 var num = 0; 231 outermost: 232 for (var i=0; i<10; i++){ 233 for(var j=0; j<10; j++){ 234 if (i == 5 && j == 5){ 235 continue outermost; 236 } 237 num++; 238 } 239 } 240 log(num); // 95 241 242 243 // JavaScript异常处理结构: 244 /* 245 try { 246 //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行 247 } 248 catch (e) { 249 // 若是try代码块中抛出了异常,catch代码块中的代码就会被执行。 250 //e是一个局部变量,用来指向Error对象或者其余抛出的对象 251 } 252 finally { 253 //不管try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。 254 } 255 */
5.本节练习:
1.循环输出1到100,循环输出100到0,循环输出1到100之间的奇数,输出1到100的和(5050)
2.求1到100之间奇数的和,求1到100之间偶数的和
3.循环打印输出九九乘法表
4.循环打印倒序输出九九乘法表
4.解决百钱白鸡问题:
公鸡5元每只,母鸡3元每只,小鸡3只1元,100元能够买多少只鸡?
代码以下:
1 <!-- author: wyb --> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <link rel="stylesheet" href="../source/css/common.css"> 7 <title>JavaScript循环分支语句练习</title> 8 <style> 9 table { 10 border: 1px solid red; 11 background: #ccffff; 12 } 13 </style> 14 </head> 15 <body> 16 17 <div class="container"> 18 <h1>JavaScript循环分支语句练习</h1> 19 20 <h3>题目以下:</h3> 21 <ol> 22 <li> 23 循环输出1到100,循环输出100到0,输出1到100的和(5050) 24 </li> 25 <li> 26 循环输出1到100之间的奇数,并求1到100之间奇数的和,求1到100之间偶数的和 27 </li> 28 <li> 29 循环打印输出九九乘法表 30 </li> 31 <li> 32 循环打印倒序输出九九乘法表 33 </li> 34 <li> 35 解决百钱白鸡问题: 36 37 公鸡5元每只,母鸡3元每只,小鸡3只1元,100元要买100只鸡怎么买? 38 </li> 39 </ol> 40 <h3>详细解题思路请看代码中的js代码</h3> 41 42 43 <h3>第一题:</h3> 44 <h4>循环输出1到100,循环输出100到0,输出1到100的和(5050)</h4> 45 <div id="p1"> 46 47 </div> 48 49 50 <h3>第二题:</h3> 51 <h4>循环输出1到100之间的奇数,并求1到100之间奇数的和,求1到100之间偶数的和</h4> 52 <div id="p2"> 53 54 </div> 55 56 57 <h3>第三题:</h3> 58 <h4>循环打印输出九九乘法表</h4> 59 <div id="p3"> 60 61 </div> 62 63 64 <h3>第四题:</h3> 65 <h4>循环打印倒序输出九九乘法表</h4> 66 <div id="p4"> 67 68 </div> 69 70 71 <h3>第五题:</h3> 72 <h4> 73 百钱白鸡问题: 74 公鸡5元每只,母鸡3元每只,小鸡3只1元,100元要买100只鸡怎么买? 75 </h4> 76 <div id="p5"> 77 78 </div> 79 80 </div> 81 82 83 <script> 84 // JavaScript字符串格式化 85 String.prototype.format = function (args) { 86 var result = this; 87 if (arguments.length > 0) { 88 if (arguments.length == 1 && typeof (args) == "object") { 89 for (var key in args) { 90 if (args[key] != undefined) { 91 var reg = new RegExp("({" + key + "})", "g"); 92 result = result.replace(reg, args[key]); 93 } 94 } 95 } 96 else { 97 for (var i = 0; i < arguments.length; i++) { 98 if (arguments[i] != undefined) { 99 var reg = new RegExp("({)" + i + "(})", "g"); 100 result = result.replace(reg, arguments[i]); 101 } 102 } 103 } 104 } 105 return result; 106 }; 107 108 109 // 第一题: 循环输出1到100,循环输出100到0,输出1到100的和(5050) 110 // 循环输出1到100 111 var item = document.getElementById("p1"); // 得到第一题的div,后面同理,都是得到题目对应的div对象 112 for (var i = 1; i <= 100; i += 1) { 113 item.innerHTML += '<span>{0}</span> '.format(i.toString()); 114 if (i % 40 === 0) { 115 item.innerHTML += '<br>'; 116 } 117 } 118 item.innerHTML += '<hr>'; 119 120 // 循环输出100到0 121 for (var i = 100; i >= 0; i -= 1) { 122 item.innerHTML += '<span>{0}</span> '.format(i.toString()); 123 if (i % 40 === 0) { 124 item.innerHTML += '<br>'; 125 } 126 } 127 item.innerHTML += '<hr>'; 128 129 // 输出1到100的和(5050) 130 var sum = 0; 131 for (var i = 1; i <= 100; i += 1) { 132 sum += i; 133 } 134 item.innerHTML += '<span>{0}</span><br><hr>'.format(sum.toString()); 135 136 137 // 第二题: 循环输出1到100之间的奇数,并求1到100之间奇数的和,求1到100之间偶数的和 138 // 循环输出1到100之间的奇数 139 var item = document.getElementById("p2"); 140 for (var i = 1; i <= 100; i += 1) { 141 if (i % 2 !== 0) { 142 item.innerHTML += '<span>{0}</span> '.format(i.toString()); 143 } 144 if (i % 69 === 0) { 145 item.innerHTML += '<br>'; 146 } 147 } 148 item.innerHTML += '<hr>'; 149 150 // 求1到100之间奇数的和 151 var sum = 0; 152 for (var i = 1; i <= 100; i += 2) { 153 sum += i; 154 } 155 item.innerHTML += '1到100之间奇数的和: <span>{0}</span><br><hr>'.format(sum.toString()); 156 // 求1到100之间偶数的和 157 var sum = 0; 158 for (var i = 0; i <= 100; i += 2) { 159 sum += i; 160 } 161 item.innerHTML += '1到100之间偶数的和: <span>{0}</span><br><hr>'.format(sum.toString()); 162 163 164 // 第三题: 循环打印输出九九乘法表 165 var item = document.getElementById("p3"); 166 item.innerHTML += '<table border="1"></table>'; 167 var item = item.getElementsByTagName('table')[0]; 168 for (var i = 1; i <= 9; i += 1) { 169 item.innerHTML += '<tr></tr>'; 170 var s = item.getElementsByTagName('tr')[i - 1]; 171 for (var j = 1; j <= i; j += 1) { 172 s.innerHTML += '<td>{0}*{1}={2}</td>'.format(i.toString(), j.toString(), (i * j).toString()); 173 } 174 } 175 176 // 第四题: 循环打印倒序输出九九乘法表 177 var item = document.getElementById("p4"); 178 item.innerHTML += '<table border="1"></table>'; 179 var item = item.getElementsByTagName('table')[0]; 180 for (var i = 9; i >= 1; i -= 1) { 181 item.innerHTML += '<tr></tr>'; 182 var s = item.getElementsByTagName('tr')[9 - i]; 183 for (var j = 1; j <= i; j += 1) { 184 s.innerHTML += '<td>{0}*{1}={2}</td>'.format(i.toString(), j.toString(), (i * j).toString()); 185 } 186 } 187 188 // 第五题: 百钱白鸡问题: 公鸡5元每只,母鸡3元每只,小鸡3只1元,100元要买100只鸡怎么买? 189 var item = document.getElementById("p5"); 190 for (var i = 0; i <= 20; i++){ 191 for (var j = 0; j <= 33; j++){ 192 for (var k = 0; k <= 100; k++){ 193 if((i+j+k===100) && (i*5+j*3+k/3===100)){ 194 item.innerHTML += '<span>公鸡{0}只,母鸡{1}只,小鸡{2}只</span><br>'.format(i.toString(), j.toString(), k.toString()); 195 } 196 } 197 } 198 } 199 item.innerHTML += '<hr>'; 200 // 下面这种算法也能够 201 for (var i = 0; i <= 20; i++){ 202 for (var j = 0; j <= 33; j++){ 203 var k = 100 - i - j; 204 if((i+j+k===100) && (i*5+j*3+k/3===100)){ 205 item.innerHTML += '<span>公鸡{0}只,母鸡{1}只,小鸡{2}只</span><br>'.format(i.toString(), j.toString(), k.toString()); 206 } 207 } 208 } 209 210 </script> 211 212 </body> 213 </html>