黑马程序员-JS基础day4-数组与函数

目录

数组

函数

分类及使用步骤

形参与实参

arguments

return的两个作用


数组

数组的创建:new关键字或者字面量创建;

var arr = new Array(); // 创建了一个空的数组

var arr1 = [1, 2, 'pink老师', true];  //字面量创建

注意:数组的元素类型可以是任意元素,string/number/Boolean等

元素获取:数组名[index];

数组的长度:数组名.length;

遍历数组:for循环,利用元素的索引号遍历;

新增数组元素:利用索引值;

var arr = [1, 2, 3];

      arr[3] = 4;

      console.log(arr);        //[1, 2, 3, 4]

  var arr = [1, 2, 3];

      arr[4] = 4;

      console.log(arr);       //[1, 2, 3, 空白, 4]

函数

分类及使用步骤

命名函数匿名函数
声明function 函数名(){    }var fn = function(){  }
使用函数名();

fn( );

函数名:驼峰命名法;动词;

形参与实参

形参:函数声明时的参数;

实参:函数调用时的参数;

注意:形参和实参的个数尽量匹配,避免出错;

arguments

不确定实参个数时候,可以用arguments来获取,他是函数的内置对象,存储了传递的所有实参;

arguments是伪数组:具有length属性,可以被索引,但不能使用数组的方法,如push、pop等;

   function max() {

        var max = 0;

        for (i = 0; i < arguments.length; i++) {

          if (arguments[i] > max) {

            max = arguments[i];

          }

        }

        console.log(max);

      }

      max(5,3,7,1)

      max(2,3,4,9,3)

return的两个作用

1.返回值:只能返回一个值,用逗号连接时以最后一个为准;

 function getResult() {

            return 666;

        }

        getResult();

        console.log(getResult());       //  666

2.终止函数:return后面的语句不会被执行;

 function getSum(num1, num2) {

            return num1 + num2;

        }

        console.log(getSum(1, 2));           //3

js作用域

  • 全局作用域:所有代码执行的环境(整个script标签内部)或者整个js文件;
  • 局部(函数)作用域:作用于函数内部;
  • 块级作用域:在if、for等循环语句中用其它语言创建的变量,仅在本语句中起作用(es6之前js没有块级作用域)

变量的作用域

  • 全局变量:全局作用域下用var声明的变量(函数外部定义的变量);浏览器关闭时才会被销毁;
  • 局部变量:局部作用域下声明的变量(函数内部);函数的形参也是一种局部变量;代码被执行后就会被销毁;

作用域链

如果函数中还有函数,那么在作用域中又可以诞生一个作用域,内部函数可以访问外部函数的变量,用链式查找就可以决定哪些数据能被内部函数访问,这就是作用域链;

js预解析

变量提升:把所有的变量声明提升到当前作用域最前面  不提升赋值操作

 console.log(num);

        var num = 10;     // undefined   

 相当于执行了以下代码

         var num;

         console.log(num);

         num = 10;

函数提升:所有的函数声明提升到当前作用域的最前面  不调用函数 只对命名函数有效

 fun();

 var fun = function() {

       console.log(22); }      // 报错

相当于执行以下代码:

 var fun;

            fun();

            fun = function() {           //函数被当成赋值操作,不被提升

                    console.log(22);

            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值