欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

02月26日作业:数组遍历和函数调用

程序员文章站 2022-03-01 17:22:26
...

作业一

一、数组:
1、数组和对象区别:

  • a、数组类似php的速引数组,标识为:中括号[];访问方式:访问方式:索引方位:例如arr[0];
  • b、对象类似php的关联数组,标识为:大括号{};访问方式:键名访问和object.方法名;

2、数组的遍历(包含类数组和对象):

  • a、for()循环遍历;只能访问整数键名的数组元素(过滤非整数元素)无返回值;
  • c、for(var key in arr){}:主要用于访问对象;无返回值
  • b、arr.foreach(function(item,key,arr){}):item——为元素值,key——为键值名,arr——为数组名;此方法为原生数组遍历方法,无法访问类数组对象且无返回值;例如:arr.forEach(function(item, key, arr)
  • d、for(var key of arr){}:ES6中遍历数组的方法,可以遍历非整数键名的元素;且支持break和continue;

3、数组(索引数组)和对象(关联数组):可以在一个里面共存,但共存时,关联数组无法通过索引访问;
4、箭头函数:例如:arr.forEach(item=>console.log(item));
5、类数组:DOM

  • a.成员的键名必须是0递增的正整数
  • b.对象必须要有一length属性
  • c. 基本是借助的对象字面量的语法来创建的类数组
  • d.类数组转化成数组访问:(objarr为类数组)
    1. Array.prototype.forEach.call(objArr, function (item){
    2. console.log(item);
    3. });

二、函数
1、函数:字面量和表达式(匿名函数);可以重复声明(但覆盖前面的)
2、构造函数使用来创造对象的,可以有任何函数构成,并不是都会创造出对像,除非用new;通过Function关键字来创建构造函数
3、函数一旦遇到return返回给调用者后面的语句全部忽略;return后面没有值和没有return的函数就是undefined;
4、函数的使用场景:

  • a.作为值赋给变量
  • b.作为对象属性
  • c.作为函数参数(回调)
  • d.作为函数的返回值

5、函数也是对象,对象就会有属性/方法

  • a.name
  • b.length
  • d.toString()

三、作用域
1、全局: global: 顶层函数之外声明的,可以在函数内访问
2、局部: local: 函数内部声明,仅限内部访问,外部不可见
3、函数内部声明变量如果不加var,就不能和当前的作用域绑定,自动与全局绑定
4、一对大括号就是一个块作用域:ES5不支持块作用域,ES6支持
5、js中允许不写参数,函数的参数:arguments或者剩余参数(…params)
6、闭包:用来访问函数的私有变量,父级函数作用被保留,闭包占内存;

作业二

一、代码

  1. var arr=[
  2. function(){
  3. return 1;
  4. },
  5. function (name){
  6. return name+'欢迎你';
  7. }
  8. ];
  9. console.log(arr[1]('你好'));
  10. console.log(arr.length);
  11. console.log(Object.keys(arr));
  12. console.log(arr['0']);
  13. var array=[1,2,3,4,5,6];
  14. for(var i=0;i<array.length;i++){
  15. console.log(array[i]);
  16. }
  17. array.forEach(function(item,key,array){
  18. console.log(item);
  19. });
  20. var objArr = {
  21. 0: 'hello',
  22. 1: 200,
  23. 2: {x:1, y: 30},
  24. 3: null,
  25. length: 4
  26. };
  27. // 类数组转化数组输出,但无法输出length的值
  28. Array.prototype.forEach.call(objArr, function (item){
  29. console.log(item);
  30. });
  31. console.log('^^^^^^^^^^^^^^^^^^')
  32. function sum(a,b,c){
  33. // 函数体
  34. return a+b;
  35. }
  36. console.log(sum.name);
  37. console.log(sum.length);
  38. console.log(sum.toString);
  39. function add(callback,a,b){
  40. return callback(a,b);
  41. }
  42. console.log(add(sum,3,5));
  43. var n=3;
  44. function demo(){
  45. var s='你好';
  46. console.log(s);
  47. console.log(n);
  48. }
  49. // console.log(s);//函数内部的变量,玩不无法访问。
  50. console.log(n);
  51. // 输出函数中的参数
  52. function plus(){
  53. return console.log(arguments)
  54. }
  55. plus(2,3,6)
  56. //通过子函数访问夫函数中的私有变量
  57. function abc(){
  58. var name='ldy';
  59. return function ad(){
  60. return console.log(name);
  61. };
  62. }
  63. console.log(typeof abc());
  64. abc()();

2、演示结果:
02月26日作业:数组遍历和函数调用