函数
函数的命名
1.由字母、数字、下划线、$符号组成,不能以数字开头
2.不能是关键字和保留字,例如:for,while,this, name
3.区分大小写
规范:
1.变量名必须有意义
2.遵守驼峰命名法
3.建议不要用$作为变量名
函数的覆盖问题
函数重复定义会覆盖前一个
arguments的使用
JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此也可以进行遍历。
function sum(n){
//传递的参数,都会保存到argument数组中
console.log(arguments.length);
var s= 0;
for(var i = 0 ; i < arguments.length; i++){
s+=arguments[i];
}
console.log(s);
}
sum(1,2,3,4,123);
匿名函数
匿名函数:没有名字的函数
匿名函数如何使用:
将匿名函数赋值给一个变量,这样就可以通过变量进行调用
var fn = function(){
console.log(123);
}
fn();
自调用函数
匿名函数不能通过直接调用来执行,因此可以通过匿名函数的自调用的方式来执行
//第一种写法(fn{})()
(function (n){
console.log(1);
})(1232);
//第二种写法(fn{}())
(function(){
console.log(2);
}());
//第三种写法 ~fn{}()
~function (){
console.log(3);
}()
函数是一种数据类型
函数也是一种数据类型,所以可以通过参数进行传递, 实现回调.
函数作为参数
function fn(){
}
console.log(typeof fn);
//函数也是类型,所以可以通过参数进行传递
//回调
function test(x){
x();
}
test(function(){
console.log("我是通过函数参数传递进去的,我又叫回调函数");
});
函数做为返回值
//返回一个函数
function returnFn(){
return function(){
console.log("我是通过返回值返回的方法");
};
}
var rf = returnFn();
rf();
returnFn()();