无参函数的创建
在JavaScript中,我们可以将代码分为可重复使用的部分,成为函数。
例如:
function functionName(){
console.log("Hello World!");
}
functionName();
带参数的函数使用
参数是用作传入变量的占位符,这些变量将在调用函数的时候输入到函数中。
定义时,定义几个参数传入几个参数,但与其它计算机语言不同,JavaScript传入参数不需要声明的类型名。
例如:
function testFun(param1, param2){
console.log(param1, param2);
}
全局变量和局部变量
全局变量
在JavaScript中,变量也是具有全局和局部范围性的,在函数模块之外的变量具有全局作用域,这意味着它们在代码中可以随时被使用。
注意:不使用关键字声明的变量将在全局范围内自动创建,这可能会在代码的其他地方或再次运行函数时产生意想不到的结果。使用变量时应该始终使用关键字声明。
var myGlobal = 10;
function fun1(){
oopsGlobal = 5;
}
function fun2(){
var output = "";
if(typeof myGlobal != "undefined"){
output += "myGlobal: " + myGlobal;
}
if(typeof oopsGlobal != "undefined"){
output += "oopsGlobal: "+ oopsGlobal;
}
console.log(output);
}
上述代码,打印出来是:
myGlobal: 10 oopsGlobal: 5
局部变量
在函数中声明的变量以及函数参数具有局部作用域,这意味着它们仅在该函数中可见。
例如:
function myTest(){
var loc = "foo";
console.log(loc);
}
myTest();
console.log(loc);
该函数调用将显示的字符串foo在控制台中,第七行的console.log(loc)将会发生错误。
优先级
局部变量和全局变量可能具有相同的名称。执行操作时,局部变量优先于全局变量
例如:
var someVar = "Hat";
function myFun(){
var someVar = "Head";
return someVar;
}
该函数将返回的是函数内定义的someVar变量
带有返回值的函数
与其他计算机语言不同,JavaScript的函数不需要表明函数需要返回值类型名称,只需要在函数中直接加入return语句即可,当调用函数时,函数会直接返回值。
例如:
function plusThree(num){
return num + 3;
}
var answer = plusThree(5);
函数可以包含return语句,但不是必须的,如果函数没有return语句,则在调用它时,函数将处理内部代码,但返回值是undefined
var sum = 0;
function addSum(num){
sum = sum + num;
}
var opps = addSum(3);
上述代码中,sum值为3,opps将为undefined