文章

Javascript之函数

文章目录

函数参数

JavaScript 函数对参数的值(arguments)没有进行任何的检查。

怎么理解呢?就是说你放什么类型的参数,都可以, 不需要像Java那样, 需要对类型进行声明。

函数显式参数与隐式参数(arguments)
在先前的教程中,我们已经学习了函数的显式参数:

functionName(parameter1, parameter2, parameter3) {
    // 代码放这里
}

函数显式参数在函数定义时列出。

函数隐式参数(arguments)是函数调用时传递给函数真正的值。

例如:

function sum(){

    return arguments[0]+arguments[1];
}

sum(1, 2);//3

以上 sum 函数就是使用 arguments 获取隐式参数, 进行操作。

参数规则
JavaScript 函数定义时参数没有指定数据类型。
JavaScript 函数对隐藏参数(arguments)没有进行检测。
JavaScript 函数对隐藏参数(arguments)的个数没有进行检测。


多个参数
函数定义后,可以根据需要多次调用.

​JavaScript​函数不检查收到的参数数量。

function sayHello(name, age) {
  document.write( name + "  年龄是:" + age + " 岁");
}

sayHello("John")
//输出: John 年龄是:undefined 岁

提示: 如果使用缺少参数(少于声明数)调用函数,则将缺少的值为undefined,这表示未为变量赋值。


JavaScript 局部作用域

变量在函数内声明,变量为局部作用域。

局部变量:只能在函数内部访问。

// 此处不能调用 carName 变量
function myFunction() {
    var carName = "大众";
    // 函数内可调用 carName 变量
}

因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。

局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。

局部变量的优先级高于同名的全局变量。

// 声明 全局carName
var carName = '奔驰';
function myFunction() {
    var carName = "大众";
    document.write(carName); // carName 值为 大众
}

JavaScript 全局变量

变量在函数外定义,即为全局变量。

全局变量有 全局作用域: 网页中所有脚本和函数均可使用。

var carName = " 大众";

// 此处可调用 carName 变量
function myFunction() {
    // 函数内可调用 carName 变量
}

如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

以下实例中 carName 在函数内,但是为全局变量。

// 此处可调用 carName 变量

function myFunction() {
    carName = "大众";
    // 此处可调用 carName 变量
}

没有使用var关键字定义的变量,会被自动创建在全局作用域中,变成全局变量。当在代码其他地方无意间定义了一个变量,刚好变量名与全局变量相同,这时候会产生意想不到的后果,可能导致你的代码出现BUG。因此你应该总是使用 var 关键字来声明你的变量。

HTML中的全局变量

在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。

//此处可使用 window.carName

function myFunction() {
    carName = "大众";
}

JavaScript变量生命周期

JavaScript 变量生命周期在它声明时初始化。

局部变量在函数执行完毕后销毁。

全局变量在页面关闭后销毁。

函数参数
函数参数只在函数内起作用,是局部变量。


return语句

return 语句在函数中是可选的。它用于从函数返回值。

当函数执行完需要结果的计算时,此语句很有用。

function sum(a, b){
    return a+b;
}

当JavaScript执行完 return 语句时,该函数停止执行。
如果没有从函数返回任何东西,它将返回 undefined 。


原文来自:Javascript之函数,尊重自己,尊重每一个人;转发请注明来源!
0 0

发表评论