JavaScript函数深入了解 -- 笔记 - 图2review0602

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. </body>
  9. <script type="text/javascript">
  10. // 对象的简单了解
  11. // var cat = {
  12. // // 基本数据类型
  13. // 'name':'Tom',
  14. // 'age':4,
  15. // // 数组
  16. // 'family':['father','mom'],
  17. // // 放置函数
  18. // 'speak':function(){
  19. // console.log('喵喵~');
  20. // },
  21. // // 继续存储对象
  22. // 'friend':{
  23. // 'name':'Jerry',
  24. // 'age':4
  25. // }
  26. // };
  27. // 如何使用对象
  28. // // 可以通过new实例化构造函数
  29. // var cat = new Object();
  30. // var cat = {};//这两个都表示空对象
  31. // //es5 Object.create() 存在兼容性
  32. // var cat = {
  33. // // 基本数据类型
  34. // 'name':'Tom',
  35. // 'age':4,
  36. // // 数组
  37. // 'family':['father','mom'],
  38. // // 放置函数
  39. // 'speak':function(){
  40. // console.log('喵喵~');
  41. // },
  42. // // 继续存储对象
  43. // 'friend':{
  44. // 'name':'Jerry',
  45. // 'age':4
  46. // }
  47. // };
  48. // // console.log(cat);
  49. // cat.name='Tim';
  50. // cat['name']='Tim';//修改 写操作
  51. // cat.type='加菲猫';
  52. // console.log(cat.name);//查询 读操作
  53. // console.log(cat['name']);//查询 读操作
  54. // console.log(cat.type);
  55. // delete cat.type;
  56. // console.log(cat.type);
  57. // //如何检测一个对象是否拥有该属性
  58. // console.log('type' in cat);
  59. // //循环遍历对象 循环输出每一个属性名
  60. // for(var p in cat){
  61. // console.log(p);
  62. // console.log(cat[p]);
  63. // //console.log(cat.p);不能使用点 因为点表示 .属性
  64. // }
  65. // // 什么是函数
  66. // // 函数是否也可以? -- 了解一下
  67. // function add(num1,num2){
  68. // return num1+num2;
  69. // }
  70. // add.sex='male';
  71. // add.setSex=function(sex){
  72. // this.sex = sex;
  73. // }
  74. // console.log(add.sex);//male
  75. // console.log(add.setSex('female'));
  76. // console.log(add.sex);//female
  77. // console.log(add(1,4));
  78. // // 函数的定义:三种
  79. // //字面量 function声明
  80. // function add(){
  81. // }
  82. // add();
  83. // //var赋值表达式
  84. // var add = function(){
  85. // };
  86. // add();
  87. // //构造函数 必须是字符串形式 效率比较差,首先解析字符串变量 其次再实例化函数
  88. // var add = new Function('num1','num2','return num1+num2');
  89. // add();
  90. // // 只要function不打头,就可以调用
  91. // (function(){
  92. // console.log(1);
  93. // })();
  94. // +-~!function(){
  95. // console.log(2);
  96. // }();
  97. // console.log(function(){
  98. // return 3;
  99. // }());
  100. // // 递归调用 -- 阶乘
  101. // function factorial(num){
  102. // if (num<=1) {return 1}
  103. // return num*factorial(num-1);
  104. // //return 5*4!
  105. // }
  106. // console.log(factorial(5));
  107. // console.log(factorial(4));
  108. // var operation = {
  109. // add:function(num1,num2){
  110. // return num1+num2;
  111. // },
  112. // substract:function(num1,num2){
  113. // return num1-num2;
  114. // },
  115. // '@':function(){
  116. // console.log('@');
  117. // },
  118. // key:function(){
  119. // }
  120. // };
  121. // var key = 'add';//把add函数赋值给了key 调用变量 点是不行的,必须使用[]
  122. // // console.log(operation.key(1,2));
  123. // console.log(operation[key](1,2));
  124. // // 参数的使用
  125. // function add(num1,num2){
  126. // return num1+num2;
  127. // }
  128. // add(1,2);
  129. // // 形参 = 实参
  130. // // num1 = 1
  131. // // num2 = 2
  132. // var person={};
  133. // function setPerson(obj){
  134. // obj.name = 'xm';
  135. // }
  136. // setPerson(person);
  137. // console.log(person);
  138. // //就是将person对象的地址,赋予给obj 他们俩指向同一个引用
  139. // // obj = person;
  140. // // 参数的个数
  141. // 1.形参=实参
  142. // function add(num1,num2){
  143. // return num1+num2;
  144. // }
  145. // add(1,2);
  146. // 2.形参<实参
  147. // 需求:
  148. // 1、如果只传入一个值,表示默认计算2次幂
  149. // 2、如果传入2个参数,表示计算几的几次幂
  150. // if else
  151. // function pow(base,power){
  152. // if (!power) {power=2;}
  153. // return Math.pow(base,power);
  154. // }
  155. // console.log(pow(3));
  156. // console.log(pow(3,3));
  157. // function pow(base,power){
  158. // // if (!power) {power=2;}
  159. // //或运算:两个都是假才为假 只要有一个真就是真
  160. // // power = power || 2;
  161. // return Math.pow(base,power);
  162. // }
  163. // console.log(pow(3));
  164. // console.log(pow(3,3));
  165. // 3.实参 > 形参
  166. // function add(){
  167. // //arguments类数组 -- add(1,2,3) arguments[0]=1 arguments[1]=2
  168. // if (arguments.length==0) {return;}
  169. // var sum = 0;
  170. // for(var i=0;i<arguments.length;i++){
  171. // sum+=arguments[i];
  172. // }
  173. // return sum;
  174. // }
  175. // console.log(add());
  176. // console.log(add(1,2,3,4,5));//15
  177. // console.log(add(1,2,3));//6
  178. // arguments类数组的使用
  179. // function fn(name){
  180. // arguments[0]="";
  181. // console.log(name);
  182. // }
  183. // fn('xm');
  184. // //空字符串 arguments和我们的形参都指向了同一个值。
  185. // function add(num1,num2){
  186. // alert(arguments.callee);//弹出函数本身
  187. // return num1+num2;
  188. // }
  189. // add();
  190. // 阶乘案例
  191. // function jiecheng(num){
  192. // if (num<=1) {return 1}
  193. // return num*arguments.callee(num-1);
  194. // }
  195. // console.log(jiecheng(5));//120
  196. // console.log(jiecheng(4));//24
  197. // var jiecheng = function fn(num){
  198. // if (num<=1) {return 1}
  199. // return num*fn(num-1);
  200. // }
  201. // console.log(jiecheng(5));//120
  202. // console.log(jiecheng(4));//24
  203. // 什么可以作为参数
  204. // //什么都没有
  205. // function fn(){
  206. // }
  207. // //数字
  208. // function add(num1,num2){
  209. // return num1+num2;
  210. // }
  211. // add(1,1);
  212. // //jquery 字符串
  213. // $('p')
  214. // 参数的返回值
  215. // return返回
  216. // 1、return; 结束
  217. // 2、return num sum 将值返回
  218. // 3、return 一般情况下放在最后,因为return后面的代码将不再执行
  219. // continue用在循环中,表示跳出本次循环
  220. // for(var i=0;i<10;i++){
  221. // if (i==4) {continue;}
  222. // console.log(i);
  223. // }
  224. // break用在循环中,表示跳出循环
  225. // for(var i=0;i<10;i++){
  226. // if (i==4) {break;}
  227. // console.log(i);
  228. // }
  229. // console.log("我跳出来了");
  230. </script>
  231. </html>