还在学JS

函数

函数声明

这个函数声明与C,C++还有不同呢,所以有必要再学习一下

第一种

function box (参数){
    // 内容
};

第二种,下面函数的名字为test

var box = function test(参数){
    // 内容
}
// 在浏览器console上输出 box.name --> test

第三种

var box = function (参数){
    //内容
}
// 在浏览器console上输出 box.name --> box
//函数执行
box();

参数

形参与实参都已经了解,有一个不定参数不同,不定参数的个数是可以改变的

// 不定参数 例子一
function test2(a){
    // a 就等于1
    // 2,3不用管
    // 隐式的方法arguments[1,2,3]实参列表
    // 找到多余的实际参数
}
test2(1,2,3); //执行tset2之后(1,2,3)作为参数传进去
//只是把1传进去了,2,3没有
// 不定参数 例子二
function test3(a,b,c,d){
    // a 等于1
    // b 等于2
    // c 等于3
    // d 等于undefined
    找到形参的长度sum.length
}

test3(1,2,3); // 执行tset3之后(1,2,3)作为参数传进去

另一个例子,也是不定参数的好处

var result = 0;
function sum(){
    for(var i = 0; i<arguments.length;){
        result += arguments[i];
        i++;
    }
    
    console.log(result);
    
}
sum(1,2,3,4,5,6,7,8,9);

这个程序看了一会不是很明白,就跑了一下,加红框的的是为了看那个值怎么改变的
在这里插入图片描述在这里插入图片描述结果是这样的,arguments.length为参数的长度, arguments[i]为哪一个参数和数组的感觉差不多,45是算出的结果,所以不定参数,最大的好处就是不用固定参数的个数

JS的映射

function sum(a,b){
    a = 2;
    console.log(arguments[0]);    // 打印出2,参数a改变了
}
sum(1,2);

function sum(a,b){
    a = 2;
    arguments[0] = 3
    console.log(arguments[0]);    // 打印出3,参数a改变了,可以相互改变
}
sum(1,2);
function sum(a,b){
  //arguments[1]没值
    b = 2;
    console.log(arguments[1]);
}
sum(1);

在这里插入图片描述
结果真是出任意料呢,没有·向b的位置传参即使给b赋值其也是没有值的

  • 实参列表传进来的时候他就有几个,就算我让b等于2,它也不会往 arguments 里面加了。
  • 函数根本就没有,这个时候 b 就当一个变量用了。 b 实参不映射,因为形参比实参多了一位
  • b,只有他们相等的时候他们才会有映射的规则,不相等的时候,形参多了他不对应实参了,他们之间不映射。
    但是读了好长时间还有点懵,又找了一些资料显示,调用函数有几个实参就有几个,实参有值,才会映射,只要改变就会随之变化,而没值就不会变化
结束条件加返回值return

结束函数,如果没有写,系统默认自带return
把值返回到函数外部

预编译

顺便提一嘴预编译,这个了解过,但是害怕自己忘把链接加在这把
预编译执行过程

作用域

还有作用域(https://www.yuque.com/fe9/basic/zd0d1h)

参考资料

语雀前端九部

ES5入门就先到这了,下面是ES6的入门啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值