函数
函数是定义一次但却可以调用或执行任意多次的一段JS代码。函数有时会有参数,即函数被调用时指定了值的局部变量。函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值
一.函数声明
函数对任何语言来说都是一个核心的概念。通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体。
function box() {
alert('只有函数被调用,我才会被之执行');
}
box();
function box(name, age) {
alert('你的姓名:'+name+',年龄:'+age);
}
box('hcd',24);
二.return返回值
带参和不带参的函数,都没有定义返回值,而是调用后直接执行的。实际上,任何函数都可以通过return语句跟后面的要返回的值来实现返回值。
1.
function box() {
return '我被返回了!';
}
alert(box());
2.
function box(name, age) {
return '你的姓名:'+name+',年龄:'+age;
}
alert(box('hcd', 24));
3.我们还可以把函数的返回值赋给一个变量,然后通过变量进行操作。
function box(num1, num2) {
return num1 * num2;
}
var num = box(10, 5);
alert(num);
4.return语句还有一个功能就是退出当前函数,注意和break的区别。
function box(num) {
if (num < 5){
return num;
}
return 100;
}
alert(box(10));
PS:break用在循环和switch分支语句里。
三. 参数
函数的参数和数组是类似的,有一个放置所有参数的类数组arguments
function add(a){
console.log(arguments[0])
}
add(123)
function add(a,b){
console.log(arguments[1])
}
add(123)
function add(a,b){
arguments[0] = 10;
console.log(a);
}
add(1);
function add(a,b){
arguments[0] = 10;
console.log(a);
}
add();//undefined
arguments[0]对应传入的第一个参数,而没有传入参数arguments[0]根本就是不存在的,赋值也是没有的
四. 没有重载
如果两个函数的名字一样,那么改名字只属于后定义的函数
function add(){
console.log(arguments[0])
}
function add(){
console.log("pppppppppppp")
}
add(123)