數組與函數的調用


1.數組的訪問與遍歷

數組對象的作用是:

使用單獨的變量名來存儲一系列的值。

數組的訪問

使用數組索引可以直接訪問
例如:arr[i]
其中i可以是數字表示數組的順序,也可以是一個數組中值得鍵名表示

數組的遍歷

for循環來遍歷
for in :遍歷對象
ES5: forEach()
ES6中的箭頭函數

類數組:

借助的對象字面量的語法來創建的類數組,和數組大致相同。
1.成員的鍵名必須是0遞增的正整數
2.對象必須要有一length屬性
下面是實驗的過程

控制台的效果圖

代碼部分
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>數組遍歷</title>
  5. <meta charset="utf-8">
  6. </head>
  7. <body>
  8. <!-- 1 將課程中的所有案例全部在按制台運行一遍
  9. 2 對於數組的聲明,訪問,遍歷常用的方法全部全部熟練掌握
  10. 3 對於函數的聲明,調用,參數,以及常用屬性,arguments對象必須掌握
  11. 4 將數組的遍歷與函數的調用與參數處理提交到博客中 -->
  12. <script type="text/javascript">
  13. var apho = ['apple','apple1','apple2','apple3'];
  14. apho.name = 'daapp';
  15. apho['user name'] = 'app';
  16. //for循環遍歷
  17. for (var i = 1; i <= 1; i++) {
  18. console.log(apho[i]);
  19. }
  20. //for in: 遍歷對象
  21. for (var i in apho) {
  22. console.log(apho[i]);
  23. }
  24. // foreach遍歷數組
  25. apho.forEach(function(item, key, apho){
  26. // console.log(item);
  27. console.log(apho[key]);
  28. });
  29. //foreach箭頭函數,遍歷數組
  30. apho.forEach(item=>console.log(item));
  31. //類數組
  32. var objArr = {
  33. 0: 'hello',
  34. 1: 'wrold',
  35. 2: {1:33.5, 2:44.5},
  36. 3: 'defind',
  37. length: 4
  38. };
  39. // objArr.forEach(function (item){
  40. // console.log(item);
  41. // })
  42. for (var i = 0; i < 3; i++) {
  43. var p = document.createElement('p');
  44. p.innerHTML='hello wrold';
  45. document.body.appendChild(p);
  46. console.log(p);
  47. }
  48. var eles = document.getElementsByTagName('p');
  49. console.log(eles);
  50. for (var i = 0; i < eles.length; i++) {
  51. console.log(eles[i].innerHTML);
  52. }
  53. </script>
  54. </body>
  55. </html>

2.函數的聲明,調用

函數的聲明

function show1(value) { console.log(value); }

函數的調用

show1('what you name ');
構造函數:構建JS語句大廈的基礎
構造函數是用來創建對象的
構造函數可以由任何函數構成,但並不是都會創建出對象,除非用new
function show() {...}

函數的重復申明

js中的函數允許重復聲明,以最后一個為准
es5中變量允許重復聲明

return返回

一旦遇到return 返回給調用者后面的語句全部忽略

函數也是對象, 對象就會有屬性/方法

函數有namelength的屬性
console.log(add.name);
console.log(add.length);

函數的方法:

toString(), 返回函數源代碼console.log(add.toString());

函數作用域

全局: global: 頂層函數之外聲明的,可以在函數內訪問
局部: local: 函數內部聲明,僅限內部訪問,外部不可見
函數內部聲明的變量如果不加var,就不能和當前的作用域綁定, 自動與全局綁定

下面是控制台的效果圖

主要代碼

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>函數</title>
  6. </head>
  7. <body>
  8. <script>
  9. //函數的聲明
  10. function show1(value) {
  11. console.log(value);
  12. }
  13. //函數的調用
  14. show1('what you name ');
  15. // 函數表達式 / 匿名函數聲明與調用,函數表達式后面沒有‘;’
  16. var show2 = function display(value) {
  17. console.log(value);
  18. }
  19. show2('wo jiao da wei ');
  20. console.log(show2.name);
  21. //由於是函數表達式,所以函數未定義,無法傳值,顯示錯誤
  22. // display(" How old are You");
  23. //構造函數
  24. var sum = Function('a','b', 'return a + b');
  25. console.log(sum(11, 111));
  26. //與上面的函數意義相同
  27. // var sum = function (a, b) {return a + b;}
  28. // console.log(sum(20, 90));
  29. // 函數做為值的使用場景
  30. function add (a, b, c) {
  31. // 輸出結果
  32. return a + b +c;
  33. }
  34. // 賦值,由於還有一個c沒傳值,結果為NAN
  35. var sum = add;
  36. console.log(sum(12, 23));
  37. // 函數當做對象屬性
  38. var obj = {};
  39. obj.sum = add;
  40. console.log(obj.sum(50, 90,13));
  41. // 函數當參數: 回調
  42. function huidiao(callback, a, b,c) {
  43. return callback(a, b,c);
  44. }
  45. console.log(huidiao(add, 28, 49,123));
  46. // 函數當返回值
  47. function fun1() {
  48. return add;
  49. }
  50. console.log(fun1()(39, 27,12) );
  51. // es5: 不支持塊作用域
  52. if (true) {
  53. var name = '測試1';
  54. }
  55. console.log(name);
  56. // es6: 支持塊作用域,顯示未定義
  57. // if (true) {
  58. // let names = '測試2';
  59. // }
  60. // console.log(names);
  61. // 函數的參數對象/參數類數組
  62. function sum(...params) {
  63. console.log(arguments);
  64. for (var i = 0; i < arguments.length; i++) {
  65. console.log(arguments[i]);
  66. }
  67. console.log(a + b);
  68. }
  69. sum(10,20,40,50);
  70. console.log(sum.length);
  71. // 閉包用來訪問私有變量
  72. function demo1() {
  73. var email = '144682@qq.com';
  74. // 子函數
  75. return function hello(){
  76. console.log(email);
  77. }
  78. hello;
  79. }
  80. // console.log(email);
  81. // console.log(typeof demo1()());
  82. console.log(demo1());
  83. console.log(demo1()());
  84. </script>
  85. </body>
  86. </html>
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM