函数使用function关键字定义,可以用在函数定义表达式(参考4.3 函数定义表达式)或函数声明语句(5.3 声明语句)里.
函数的组成:
- function关键字
- 函数名称标识符 类似于变量的名字,新定义的函数对象会赋值给这个变量.
- 一对圆括号,其中包含0个或者多个用逗号分开的参数
- 一对花括号,其中包含0条或多条Javascript语句
可以用函数声明和表达式两种方式定义函数
//函数声明
function add(x,y){ return x+y }
//函数表达式
var minus = function (x,y){return x-y }
函数定义表达式可以不赋值给变量直接调用,适合只调用一次的函数,比如
var tensquared = (function(x){return x*x}(10))
函数名称可作为函数内部的局部变量使用
function a(){console.log(typeof(a))}
a() //function
函数的声明会被提前,但两种声明方式提前的方式不一样(参看5.3声明语句).
var a = add(3,5) //正常运行
var b = minus(10,6) //报错
function add(x,y){ return x+y }
var minus = function (x,y){ return x-y }
函数命名
- 函数名称通常选择描述性强又简洁的名称,提高代码的可读性
- 函数名称通常是动词或以动词为前缀的词组
- 通常函数名第一个字符为小写,这是一种编程约定
- 包含多个单词的有两种约定,一种是用下划线将单词连接,比如like_this().另一种是除了第一个单词以外的单词都首字母大写,比如likeThis()
- 有一些内部函数或私有函数,通常以一条下划线作为前缀
函数嵌套
函数定义可以被嵌套,即可以在一个函数的函数体内定义另一个函数.被嵌套函数可以访问上层函数的参数和变量
函数声明可以嵌套,但只可以作为顶级语句使用,即它必须在全局代码或者其他函数体内定义,不能在循环,判断,try/catch/finally及with语句中定义.但函数定义表达式不受此限制
网友评论