javascript普通函数通过function关键字声明,形参与实参按位置顺序一一对应,不依赖名称;形参仅占位,实参个数不匹配时多余部分被忽略或设为undefined,无类型检查。

JavaScript中普通函数用 function 关键字声明,形参和实参通过调用时的**位置顺序**自动一一对应,不需要显式命名绑定。
普通函数的声明方式
使用 function 关键字 + 函数名 + 小括号(含形参列表)+ 大括号(含函数体):
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
function sayHello(name, age) {
console.log('你好,' + name + ',今年' + age + '岁');
}
- 函数名 sayHello 是可选的(匿名函数可省略,但普通声明推荐具名)
- 小括号内的 name, age 是形参(形式参数),只占位,不带值
- 大括号内是函数体,执行具体逻辑
形参与实参的映射规则
调用函数时传入的值叫实参(实际参数),JS按**从左到右的位置顺序**把实参赋给同位置的形参:
sayHello('张三', 25); // name → '张三',age → 25
- 实参个数少于形参:多余形参值为 undefined
- 实参个数多于形参:多余实参被忽略(但仍可通过 arguments 或剩余参数 ...rest 获取)
- 没有类型检查,实参可以是任意类型,形参只是变量名
常见注意事项
映射完全依赖顺序,和名称无关:
function add(a, b) { return a + b; }
add(10, 5); // a=10,b=5 → 返回15
add(5, 10); // a=5,b=10 → 返回15(结果相同,但映射关系变了)
- 即使形参叫 username,传入数字也不会报错,只是变量值为该数字
- 想实现“按名传参”,需改用对象解构方式(如 function fn({name, age}))
- ES6 支持默认参数,可避免 undefined 问题:function greet(name = '游客') {...}
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










