# 函数
**通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用。**
ECMAScript中的函数使用`function`关键字来声明,后跟一组参数以及函数体,这些参数在函数体内像局部变量一样工作。
~~~
function functionName(arg0, arg1....argN) {
statements
}
~~~
函数调用会为形参提供实参的值。函数使用它们实参的值来计算返回值,称为该函数调用表达式的值。
~~~
function test(name){
return name;
}
test('tg');
~~~
在上面的例子中,name就是形参,调用时的'tg'就是实参。
除了实参之外,每次调用还会拥有另一个值---本次调用的上下文---这就是this关键字的值。
我们还可以通过在函数内添加return语句来实现返回值。
注意:遇到return语句时,会立即退出函数,也就是说,return语句后面的语句不再执行。
~~~
function test(){
return 1;
alert(1); //永远不会被执行
}
~~~
一个函数中可以包含多个return语句,而且return语句可以不带有任何返回值,最终将返回**undefined**。
~~~
function test(num){
if(num > 2){
return num;
}else{
return ;
}
}
test(3); // 3
test(1); //undefined
~~~
如果函数挂载在一个对象上,将作为对象的一个属性,就称它为**对象的方法**。
~~~
var o = {
test: function(){}
}
~~~
test()就是对象o的方法。
- 前言
- 第一章 JavaScript简介
- 第三章 基本概念
- 3.1-3.3 语法、关键字和变量
- 3.4 数据类型
- 3.5-3.6 操作符、流控制语句(暂略)
- 3.7函数
- 第四章 变量的值、作用域与内存问题
- 第五章 引用类型
- 5.1 Object类型
- 5.2 Array类型
- 5.3 Date类型
- 5.4 基本包装类型
- 5.5 单体内置对象
- 第六章 面向对象的程序设计
- 6.1 理解对象
- 6.2 创建对象
- 6.3 继承
- 第七章 函数
- 7.1 函数概述
- 7.2 闭包
- 7.3 私有变量
- 第八章 BOM
- 8.1 window对象
- 8.2 location对象
- 8.3 navigator、screen与history对象
- 第九章 DOM
- 9.1 节点层次
- 9.2 DOM操作技术
- 9.3 DOM扩展
- 9.4 DOM2和DOM3
- 第十章 事件
- 10.1 事件流
- 10.2 事件处理程序
- 10.3 事件对象
- 10.4 事件类型
- 第十一章 JSON
- 11.1-11.2 语法与序列化选项
- 第十二章 正则表达式
- 12.1 创建正则表达式
- 12.2-12.3 模式匹配与RegExp对象
- 第十三章 Ajax
- 13.1 XMLHttpRequest对象
- 你不知道的JavaScript
- 一、作用域与闭包
- 1.1 作用域
- 1.2 词法作用域
- 1.3 函数作用域与块作用域
- 1.4 提升
- 1.5 作用域闭包
- 二、this与对象原型
- 2.1 关于this
- 2.2 全面解析this
- 2.3 对象
- 2.4 混合对象“类”
- 2.5 原型
- 2.6 行为委托
- 三、类型与语法
- 3.1 类型
- 3.2 值
- 3.3 原生函数