函数
函数的命名
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()();