JS函数、arguments、作用域

函数:

  1. 概念:封装一段可以被重复执行调用的代码块
  2. 目的:让大量代码可以被重复使用
  3. 使用:

函数表达式()

//1.声明函数
var fun = function(形参1,...){
	函数体
}

//2.调用函数
fun(实参1,...)
  • 简单函数体
//1.声明函数
function 函数名() {
    函数体
}
//2.调用函数
函数名()
  • 带参数的函数体
//1.声明函数
function 函数名(形参1,形参2,...) {
    函数体
}
//2.调用函数
函数名(实参1,实参2,...)

// 形参和实参个数相等,一一对应
// 实参个数多于形参,从前取对应的形参
// 实参个数少于形参,多余的形参定义为undefined
  • 有返回值的函数体
// 声明函数
function 函数名(){
    ...
    return  返回值;
}
// 调用函数
var re=函数名();    // 此时调用函数就可以得到函数体内return 后面的值,在实际开发里,一般用一个变量来接受函数的返回值
console.log(re)  //可以通过控制台知道返回值

//return只能返回一个值,并且只返回最后一个数
//若要返回多个值,可以封装在数组里

注意:

函数都是有返回值的
如果有return 则返回 return 后面的值
如果没有return 则返回 undefined

  1. 例子
//1.声明函数
function getSum() {
    var sum = 0;
    for (var i = 1; i <= 100; i++) {
        sum += i
    }
    console.log(sum);
}
//2.调用函数
getSum()
//1.声明函数
function getSum(num1, num2) {
    console.log(num1 + num2);
}
//2.调用函数
getSum(2, 3)
//1.声明函数
function getRe(num1, num2) {
    return [num1 + num2, num1 - num2, num1 * num2, num1 / num2]
}

//2.调用函数
var re = getRe(88, 4)
console.log(re);

Arguments:

  1. 只有函数才有arguments对象,而且是每个函数都内置了这个arguments

  2. arguments展示形式是一个伪数组,接受调用函数时所传递的实参

  • 具有 length 属性
  • 按索引方式储存数据
  • 不具有数组的 push , pop 等方法

作用域

全局作用域
局部作用域
块级作用域:js在es6中才新增的

if(3<5){
	var num==5
	//num在{}里声明的,以外的区域访问不到
}

作用域链:采取就近原则的方式来查找变量最终的值。

function f1() {
    var num = 123;
    function f2() {
        console.log( num );
    }
    f2();
}
var num = 456;  
f1();  //123

全局变量与局部变量

全局变量:

  • 在全局作用域下 var 声明的变量 是全局变量
  • 特殊情况下,在函数内不使用 var 声明的变量也是全局变量(不建议使用)

局部变量

  • 在函数内部 var 声明的变量是局部变量
  • 函数的形参实际上就是局部变量
上一篇:[unity]C#脚本调用外部exe


下一篇:JavaScript学习DAY3