函数,即方法。就是一段预先设置的功能代码块,可以反复调用,根据输入参数的不同,返回不同的值。函数也是对象。有三种函数定义的方式:函数声明语句、函数定义表达式、Function构造函数。
1、函数声明语句function 函数名([参数列表]){
}
例如:
function foo(){
console.log(1);
}
foo();
该种方式定义的函数具有声明提升的效果.
foo();
function foo(){
console.log(1);
}
// 变量声明提升
console.log( a );
var a = 2;
2、函数定义表达式
以表达式方式定义的函数,函数的名称是可以不需要的。
var 变量名 = function ([参数列表]) {
}
变量名();
例如:
var fun = function(){
console.log("Hello");
}
fun();
这种写法将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式,因为赋值语句的等号右侧只能放表达式。
3、Function构造函数Function构造函数接收任意数量的参数,但最后一个参数始终都被看成是函数体,而前面的参数则列举出了新函数的参数。
var add = new Function('x','y','return (x + y)');
// 等同于
function add(x, y) {
return (x + y);
}
add();
请注意:
-
js中的函数没有重载,同名的函数,会被后面的函数覆盖。
-
js中允许有不定数目的参数,后面介绍arguments对象。
3、本文是全新java大数据培训课程文档中的Javascript函数定义参数调用的内容,如需完整课程Java大数据架构师等学习资源请私信我。
二、函数的参数函数运行的时候,有时需要提供外部数据,不同的外部数据会得到不同的结果,这种外部数据就叫参数,定义时的参数称为形参,调用时的参数称为实参。
- 实参可以省略,那么对应形参为undefined 若函数形参同名(一般不会这么干):
- 在使用时以最后一个值为准。
- 可以给参数默认值:当参数为特殊值时,可以赋予默认值。 参数为值传递,传递副本 ;
- 引用传递时传递地址,操作的是同一个对象。
// 调用函数时,实参可以省略,则对应形参为undefined
function add(a , b) {
console.log(a + "+" + b + "=" + (a + b));
}
add(3,4,5)//3+4=7
add(1);//1+undefined=NaN
add();//undefined+undefined=NaN
// 若函数形参同名(一般不会这么干):在使用时以最后一个值为准
function add2(a , a) {
console.log(a);
}
add2(1,2);
// 给参数默认值
function defaultValue(a){
a = a || "a";
return a;
}
console.log(defaultValue());
function f(a){
//若参数a不为undefined或null,则取本身的值,否则给一个默认值
(a !== undefined && a !== null) ? a = a : a = 1;
return a;
}
console.log(f());
// 值传递
var num = 12;
function change(n) {
n = 30;
}
change(num);
console.log(num);
// 引用传递
var obj = {name: "tom"};
function paramter(o) {
o.name = 2;
}
paramter(obj);
console.log(obj.name);
// 给形参o赋予了新的数组
var obj2 = [1, 2, 3];
function paramter2(o){
o = [2, 3, 4];
o[1] = 3;
}
paramter2 (obj2);
console.log(obj2)
三、函数调用
1. 常用调用方式
函数名([实参]);
存在返回值可以变量接收,若接收无返回值函数则为undefined。
function add(a,b){
return a+b;
}
var sum = add(1,2)
console.log(sum);
3. 方法调用模式
var o = {
m: function(){
console.log(1);
}
};
o.m();
本文是全新java大数据培训课程文档中的Javascript函数定义和参数调用的内容,如需完整课程Java大数据架构师等学习资源请私信我。



