JavaScript函数方法定义、组成形式讲解
1、定义:
函数声明
关键字 function 函数名 test () { 代码体 }
函数名称 多个单词拼接时 小驼峰原则:第一个单词首字母小写,往后每个单词首字母大写
function theFirstName(){
}
函数表达式
var test = function test (){ 可简化为: 匿名函数表达式 var test = function(){}
}
函数都有个name的属性。
console.log(test.name) ==> test
命名函数表达式
var test = fucntion demo(){} 在后边这种情况下function demo(){} 充当表达式,此时demo没有任何实际意义,可以不写。
console.log(test.name) ==> demo
由于匿名函数表达式比较常用,因此简化为函数表达式 ,所以称函数表达式时,通常说的是匿名函数表达式。
2、函数组成形式
函数名称
参数 (使函数变得强大)
function test (a, b){} 函数参数就相当于隐式的在函数体中声明了两个变量 ,没有赋值。在函数申明时占位的参数成为 形式参数
test(1,2) 在函数执行时可以通过传参数给对应的变量赋值。 在函数执行时传递的参数成为实参。
js方法中不定参数(注意查下es5与es6区别)
function test (a){
//arguments--[11, 2, 3] //实参列表,无论形参有没有,实参都是有地方存储。
console.log(arguments);
console.log(arguments.length); //实参的长度
console.log(test.length); //形参的长度
for(var i = 0;i<arguments.length;i++){
console.log(arguments[i]); // 得到实参的每一位
}
console.log(a);
}
test(1,2,3) == > [11, 2 , 3] 3 1 1 //实参可以比形参多,也可以比形参少。
即使实参比形参个数少,但是依旧可以在函数中存放,并获取。在js的函数中都会有一个隐式的存储实参的类似数组的 arguments ---[]
利用实参列表求任意个数求和
function sum(){
var result= 0;
for(var i = 0;i<arguments.length;i++){
result += arguments[i];
console.log(arguments[i]); // 得到实参的每一位
}
console.log(result);
}
sum( 10 ,12 , 15, ......)
扩展:
function test ( a, b){
// 既然arguments中的存储的是不是同一个变量?
a = 2;
console.log(arguments[0]); ==> 2
arguments[0] =3;
console.log( a); ==> 3
//结论:本身在js中只有引用值才能,操作一个,改变另一个的,显然arguments[0] 和a 的值都是一个原始值。
但是,arguments[0] 和 a 不是同一个变量,在js中这两个之间存在一个映射规则。
}
test(1, 2)
特殊情况:
function sum(a, b){
b = 2 ;
console.log(arguments[1]); == > ? 答案为: undefined
//实参列表在仅在实参和形参有对应的时候,才会有映射规则。
}
sum(1)
函数的终止条件和返回值
return; ==> 作用: 终止函数和返回函数值。
function test(){
return 123;
}
var num = test (); ==> 123
下一篇: 小米3s纳米充电器,一分钟充满电量