1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>041-050章总结</title>
  6. </head>
  7. <body>
  8. <pre>
  9. 041. 嵌套的for循环
  10. </pre>
  11. <script type="text/javascript">
  12. console.log("第041");
  13. //这个for循环执行几次,图形的高度就是多少
  14. for (var i=0;i<5;i++) {
  15. // 在循环的内部再创建一个循环,用来控制图形的宽度
  16. for (var j=0;j<5-i;j++) {
  17. document.write("* ")
  18. }
  19. document.write("<br>")
  20. }
  21. </script>
  22.  
  23. <pre>
  24. 042. 练习
  25. </pre>
  26. <script type="text/javascript">
  27. console.log("第042");
  28. /*
  29. * 1.打印99乘法表
  30. * 1*1=1
  31. * 1*2=2 2*2=4
  32. * 1*3=3 2*3=6 3*3=9
  33. * 1*4=4 2*4=8 3*4=12 4*4=16
  34. * ....9*9=81
  35. */
  36. for (var i=1;i<=9;i++) {
  37. for (var j=1;j<=i;j++) {
  38. document.write( j +"*"+ i + "= " + i*j +" ,");
  39. }
  40. document.write("<br>")
  41. }
  42. </script>
  43.  
  44. <pre>
  45. 043. for循环练习
  46. </pre>
  47. <script type="text/javascript">
  48. console.log("第043");
  49. // 打印出1-100之间所有的质数
  50. for (var i=2;i<=100;i++) {
  51. //创建一个布尔值,用来保存结果,默认i是质数
  52. var flag=true;
  53. //判断i是否是质数
  54. //获取到2-i之间的所有的数
  55. for (var j=2;j<i;j++) {
  56. if( i%j==0 ){
  57. flag =false;
  58. break;
  59. }
  60. }
  61. //如果是质数,则打印i的值
  62. if(flag){
  63. console.log(i);
  64. }
  65. }
  66. </script>
  67.  
  68. <pre>
  69. 044. break和continue
  70. </pre>
  71. <script type="text/javascript">
  72. console.log("第044");
  73. /*
  74. * break关键字可以用来退出switch或循环语句。
  75. * 不能在if语句中使用break和continue,循环内的if内可以使用。
  76. * break关键字,会立即终止离他最近的那个循环语句。
  77. */
  78. for(var i=0 ; i<5 ; i++){
  79. if(i == 2){
  80. break;
  81. }
  82. console.log(i); //0 1
  83. }
  84. for(var i=0 ; i<5 ; i++){
  85. console.log("@外层循环"+i)
  86. for(var j=0 ; j<5; j++){
  87. break;
  88. console.log("内层循环:"+j);
  89. }
  90. }
  91. /*
  92. * 可以为循环语句创建一个label,来标识当前的循环
  93. * label:循环语句
  94. * 使用break语句时,可以在break后跟着一个label,
  95. * 这样break将会结束指定的循环,而不是最近的
  96. */
  97. outer1:
  98. for(var i=0 ; i<5 ; i++){
  99. console.log("@外层循环"+i);
  100. inner1:
  101. for(var j=0 ; j<5; j++){
  102. break outer1; // 外层循环终止了,内侧也终止。
  103. console.log("内层循环:"+j);
  104. }
  105. }
  106. /*
  107. * continue关键字可以用来跳过当次循环
  108. * 同样continue也是默认只会对离他最近的循环循环起作用
  109. */
  110. /*for(var i=0 ; i<5 ; i++){
  111. if(i==2){
  112. continue;
  113. }
  114. console.log(i);
  115. }*/
  116. outer2:
  117. for(var i=0 ; i<5 ; i++){
  118. //console.log("@--->"+i);
  119. for(var j=0 ; j<5 ; j++){
  120. if(j==3){
  121. continue outer2;
  122. }
  123. //continue outer2;
  124. console.log("-->"+j);
  125. }
  126. console.log("@--->"+i);
  127. }
  128. </script>
  129.  
  130. <pre>
  131. 045. 质数练习的改进
  132. </pre>
  133. <script type="text/javascript">
  134. console.log("第045");
  135. //测试如下的程序的性能
  136. //在程序执行前,开启计时器
  137. //console.time("计时器的名字")可以用来开启一个计时器
  138. //它需要一个字符串作为参数,这个字符串将会作为计时器的标识
  139. console.time("test");
  140. for ( var i=2; i<=10000; i++ ) {
  141. //console.log(zhi);
  142. var flag = true;
  143. for ( var j=2; j<Math.sqrt(i); j++ ) { // 可以通过Math.sqrt()对一个数进行开方11.4ms
  144. if( i%j==0 ){
  145. // 如果进入判断则证明i不是质数,修改flag值为false
  146. flag = false;
  147. // 一旦进入判断,则证明i不可能是质数了,此时循环再执行已经没有任何意义了,使用break来结束循环
  148. break;// 不加221ms,加上break为24ms
  149. }
  150. }
  151. if(flag){
  152. //console.log(i);
  153. }
  154. }
  155. //终止计时器
  156. //console.timeEnd()用来停止一个计时器,需要一个计时器的名字作为参数
  157. console.timeEnd("test");
  158. </script>
  159.  
  160. <pre>
  161. 046. 对象的简介
  162. 如果使用基本数据类型的数据,我们所创建的变量都是独立,不能成为一个整体。
  163. 对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。
  164. 对象的分类:
  165. 1.内建对象
  166. - 由ES标准中定义的对象,在任何的ES的实现中都可以使用
  167. - 比如:Math String Number Boolean Function Object....
  168. 2.宿主对象
  169. - 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
  170. - 比如 BOM DOM
  171. 3.自定义对象
  172. - 由开发人员自己创建的对象
  173. </pre>
  174. <script type="text/javascript">
  175. console.log("第046");
  176. //创建对象
  177. /*
  178. * 使用new关键字调用的函数,是构造函数constructor
  179. * 构造函数是专门用来创建对象的函数
  180. * 使用typeof检查一个对象时,会返回object
  181. */
  182. var obj1 = new Object();
  183. console.log(obj1)
  184. console.log(Object)
  185. </script>
  186.  
  187. <pre>
  188. 047. 对象的基本操作
  189. </pre>
  190. <script type="text/javascript">
  191. console.log("第047");
  192. //在对象中保存的值称为属性
  193. // 向对象添加属性 语法:对象.属性名 = 属性值;
  194. var obj2 = new Object()
  195. obj2.name = "孙悟空";
  196. obj2.gender = "";
  197. obj2.age = 18;
  198. //读取对象中的属性 语法:对象.属性名
  199. //如果读取对象中没有的属性,不会报错而是会返回undefined
  200. console.log(obj2.gender);
  201. console.log(obj2.hello); //undefined
  202. //修改对象的属性值语法:对象.属性名 = 新值
  203. obj2.name = "tom";
  204. // 删除对象的属性 语法:delete 对象.属性名
  205. delete obj2.name;
  206. console.log(obj2.name);
  207. console.log(obj2.age);
  208. </script>
  209.  
  210. <pre>
  211. 048. 属性名和属性值
  212. </pre>
  213. <script type="text/javascript">
  214. console.log("第048");
  215. var obj3 = new Object();
  216. /*
  217. * 属性名:
  218. * - 对象的属性名不强制要求遵守标识符的规范,什么乱七八糟的名字都可以使用
  219. * - 但是我们使用是还是尽量按照标识符的规范去做
  220. */
  221. obj3.name = "孙悟空";
  222. obj3.var = "var";
  223. console.log(obj3.var)
  224. /*
  225. * 如果要使用特殊的属性名,不能采用.的方式来操作
  226. * 需要使用另一种方式:语法:对象["属性名"] = 属性值
  227. * 读取时也需要采用这种方式
  228. * 使用[]这种形式去操作属性,更加的灵活,
  229. * 在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
  230. */
  231. obj3["123"] = 789;
  232. obj3["nihao"] = "你好";
  233. var n = "nihao";
  234. console.log(obj3[n]);
  235. //属性值 JS对象的属性值,可以是任意的数据类型 甚至也可以是一个对象
  236. obj3.test = true;
  237. obj3.test = null;
  238. obj3.test = undefined;
  239. //创建一个对象
  240. var obj4 = new Object();
  241. obj4.name = "猪八戒";
  242. //将obj4设置为obj3的属性
  243. obj3.test = obj4;
  244. console.log(obj3.test.name);
  245. console.log(obj3);
  246. /*
  247. * in 运算符
  248. * - 通过该运算符可以检查一个对象中是否含有指定的属性 如果有则返回true,没有则返回false
  249. * - 语法:"属性名" in 对象
  250. */
  251. console.log(obj3.test2); // undefined
  252. //检查obj3中是否含有test2属性
  253. console.log("test2" in obj3);
  254. console.log("test" in obj3);
  255. console.log("name" in obj4);
  256. </script>
  257.  
  258. <pre>
  259. 049. 基本数据类型和引用数据类型
  260. 基本数据类型
  261. String Number Boolean Null Undefined
  262. 引用数据类型
  263. Object
  264. JS中的变量都是保存到栈内存中的,
  265. 基本数据类型的值直接在栈内存中存储,
  266. 值与值之间是独立存在,修改一个变量不会影响其他的变量
  267. 对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
  268. 而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,
  269. 当一个通过一个变量修改属性时,另一个也会受到影响.
  270. </pre>
  271. <script type="text/javascript">
  272. console.log("第049");
  273. var a = 123;
  274. var b = a;
  275. a++;
  276. console.log("a = "+a); //124
  277. console.log("b = "+b); //123
  278. var obj5 = new Object();
  279. obj5.name = "孙悟空";
  280. var obj6 = obj5;
  281. //修改obj的name属性
  282. obj5.name = "猪八戒";
  283. console.log(obj5.name); // 猪八戒
  284. console.log(obj6.name); // 猪八戒
  285. //设置obj6为null
  286. obj6 = null;
  287. console.log(obj5);
  288. console.log(obj6);
  289. var c = 10;
  290. var d = 10;
  291. //console.log(c == d);
  292. var obj7 = new Object();
  293. var obj8 = new Object();
  294. obj7.name = "沙和尚";
  295. obj8.name = "沙和尚";
  296. console.log(obj7);
  297. console.log(obj8);
  298. /*
  299. * 当比较两个基本数据类型的值时,就是比较值。
  300. * 而比较两个引用数据类型时,它是比较的对象的内存地址,
  301. * 如果两个对象是一摸一样的,但是地址不同,它也会返回false
  302. */
  303. console.log(obj7 == obj8); //false
  304. </script>
  305.  
  306. <pre>
  307. 050. 对象字面量
  308. 使用对象字面量,可以在创建对象时,直接指定对象中的属性
  309. 语法:{属性名:属性值,属性名:属性值....}
  310. 对象字面量的属性名可以加引号也可以不加,建议不加,
  311. 如果要使用一些特殊的名字,则必须加引号
  312. 属性名和属性值是一组一组的名值对结构,
  313. 名和值之间使用:连接,多个名值对之间使用,隔开
  314. 如果一个属性之后没有其他的属性了,就不要写.
  315. </pre>
  316. <script type="text/javascript">
  317. console.log("第050");
  318. // 使用对象字面量来创建一个对象
  319. var obj9 = {};
  320. obj9.name = "孙悟空";
  321. var obj10 = {
  322. name:"猪八戒",
  323. age:13,
  324. gender:"",
  325. test:{name:"沙僧"},
  326. conprint: function(){
  327. console.log(this.age)
  328. }
  329. };
  330. console.log(obj10.test);
  331. console.log(obj10.conprint());
  332. </script>
  333.  
  334. </body>
  335. </html>

所有基础课程链接:


 1.JavaScript基础视频教程总结(001-010章)           2.JavaScript基础视频教程总结(011-020章)          3. JavaScript基础视频教程总结(021-030章)        4. JavaScript基础视频教程总结(031-040章)

5. JavaScript基础视频教程总结(041-050章)           6. JavaScript基础视频教程总结(051-060章)         7. JavaScript基础视频教程总结(061-070章)        8. JavaScript基础视频教程总结(071-080章)

9. JavaScript基础视频教程总结(081-090章)          10. JavaScript基础视频教程总结(091-100章)        11. JavaScript基础视频教程总结(101-110章)      12. JavaScript基础视频教程总结(111-120章)

13. JavaScript基础视频教程总结(121-130章)        14. JavaScript基础视频教程总结(131-140章)


 另外,欢迎关注我的新浪微博

 

版权声明:本文为iflygofy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/iflygofy/p/10112834.html