菜鸟教程 -- 学的不仅是技术,更是梦想!

Javascript 教程
JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript VScode JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 字符串模板 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语句 JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript async/await JavaScript 代码规范 JavaScript 测验

JS 函数

JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包

JS

JavaScript 类 JavaScript 类继承 JavaScript 静态方法

JS HTML DOM

DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象

JS 高级教程

JavaScript 对象 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象

JS 浏览器BOM

JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie

JS

JavaScript 库 JavaScript 测试 jQuery JavaScript 测试 Prototype

JS 实例

JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结

JS 参考手册

JavaScript 对象 HTML DOM 对象 JavaScript 异步编程 JavaScript 静态方法
(追記) (追記ここまで)

JavaScript 函数参数


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


函数显式参数(Parameters)与隐式参数(Arguments)

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

functionName(parameter1, parameter2, parameter3){// 要执行的代码......}

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

函数隐式参数在函数调用时传递给函数真正的值。


参数规则

JavaScript 函数定义显式参数时没有指定数据类型。

JavaScript 函数对隐式参数没有进行类型检测。

JavaScript 函数对隐式参数的个数没有进行检测。


默认参数

ES5 中如果函数在调用时未提供隐式参数,参数会默认设置为: undefined

有时这是可以接受的,但是建议最好为参数设置一个默认值:

实例(ES5)

functionmyFunction(x, y){if(y === undefined){y = 0; }}

尝试一下 »

或者,更简单的方式:

实例(ES5)

functionmyFunction(x, y){y = y || 0; }

尝试一下 »
Note 如果 y 已经定义,y || 0 返回 y,因为 y 是 true,否则返回 0,因为 undefined 为 false。

如果函数调用时设置了过多的参数,参数将无法被引用,因为无法找到对应的参数名。 只能使用 arguments 对象来调用。

ES6 函数可以自带参数

ES6 支持函数带有默认参数,就判断 undefined 和 || 的操作:

实例(ES6)

functionmyFunction(x, y = 10){// y is 10 if not passed or undefinedreturnx + y; }myFunction(0, 2)// 输出 2myFunction(5); // 输出 15, y 参数的默认值

尝试一下 »

arguments 对象

JavaScript 函数有个内置的对象 arguments 对象。

arguments 对象包含了函数调用的参数数组。

通过这种方式你可以很方便的找到最大的一个参数的值:

实例

x = findMax(1, 123, 500, 115, 44, 88); functionfindMax(){vari, max = arguments[0]; if(arguments.length < 2)returnmax; for(i = 0; i < arguments.length; i++){if(arguments[i] > max){max = arguments[i]; }}returnmax; }

尝试一下 »

或者创建一个函数用来统计所有数值的和:

实例

x = sumAll(1, 123, 500, 115, 44, 88); functionsumAll(){vari, sum = 0; for(i = 0; i < arguments.length; i++){sum += arguments[i]; }returnsum; }

尝试一下 »


通过值传递参数

在函数中调用的参数是函数的隐式参数。

JavaScript 隐式参数通过值来传递:函数仅仅只是获取值。

如果函数修改参数的值,不会修改显式参数的初始值(在函数外定义)。

隐式参数的改变在函数外是不可见的。


通过对象传递参数

在JavaScript中,可以引用对象的值。

因此我们在函数内部修改对象的属性就会修改其初始的值。

修改对象属性可作用于函数外部(全局变量)。

修改对象属性在函数外是可见的。

AI 思考中...

1 篇笔记 写笔记

  1. #0

    kezhank

    kez***[email protected]

    40

    对arguments的延申:

    其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。

    Javascrip中每个函数都会有一个Arguments对象实例arguments

    它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。

    arguments.length为函数实参个数

    arguments.callee引用函数自身。

    kezhank

    kez***[email protected]

    3年前 (2023年04月14日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /