文章导航

JavaScript 函数

2018-6-6 12:46| 发布者: admin| 查看: 2526| 评论: 3|来自: 蚂蚁部落

函数是具有特定语法规则,能够完成指定任务且能重复利用的代码块。

JavaScript创建函数通常有两种方式:

(1).函数声明方式。

(2).函数表达式方式。

ECMAScript5标准规定,函数声明必须带有标识符(也就是函数的名称),而函数表达式则可以省略。

函数声明语法结构:

[JavaScript] 纯文本查看 复制代码
function 函数名称 (参数:可选){ 函数体 }

函数表达式语法结构:

[JavaScript] 纯文本查看 复制代码
function 函数名称(可选)(参数:可选){ 函数体 }

如果没有函数名称,那么肯定不是函数声明方式。

区分带有函数名称的代码是函数声明还是函数表达式要通过它所在的上下文来判断:

如果代码作为一个运算数存在,那么它就是一个表达式方式,否则就是函数声明方式。

代码实例:

[JavaScript] 纯文本查看 复制代码
//这是函数声明方式。
function foo() { } 
//下面由于是作为赋值运算符的运算数,那么就是表达式方式。
var bar = function foo() { };

函数声明提升:

函数声明会有提升作用,也就是说可以在函数创建之前调用函数。

代码如下:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(typeof func)
function func() {
  //code
}

代码函数声明虽然在后,但是在前面依然可以正常使用,这就是函数声明提升。

函数表达式方式,实质是给一个变量赋值一个函数对象;变量声明也会有提升效果,但是并不会被赋值,只有代码执行阶段才会赋值。更多内容参阅变量和函数声明前置一章节。

函数的调用:

函数名称+()可以调用指定函数,代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
function func() {
  console.log("蚂蚁部落");
}
func()

调用函数可以打印字符串"蚂蚁部落"。

[JavaScript] 纯文本查看 复制代码运行代码
function func(a,b) {
  var num;
  num = a + b;
  console.log(num);
}
func(1,2)

为函数传递两个参数,然后打印出两个参数之和。

函数的返回值:

函数通过return语句可以返回指定的值,代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
function func(a,b) {
  var num;
  num = a + b;
  return num
}
console.log(func(1,2))

通过return语句可以返回num值。

return语句可以跳出函数的执行,也就是return语句后面的代码不再被执行,代码如下:

[JavaScript] 纯文本查看 复制代码运行代码
function func() {
  console.log("蚂蚁部落一");
  return;
  console.log("蚂蚁部落二");
}
func()

"蚂蚁部落二"字符串将不会被打印。

如果没有return语句,那么函数的返回值是undefined。

ES2015对函数进行很多扩展和改动,具体可以参阅ES2015 函数新增特性一章节。

4

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (4 人)

发表评论

最新评论

引用 admin 2018-6-20 09:37
小小白: function func() { 
 console.log("蚂蚁部落一");   
  return;   
  console.log("蚂蚁部落二");
}
func()
如果没有返回值rerun,返回值 ...
返回值和打印结果是两个概念,此代码中,打印结果是console.log的输出内容,而返回值则是函数func的整体返回值,打印内容不等同于返回值
引用 墨小白 2018-6-5 14:52
小小白: function func() {   console.log("蚂蚁部落一");   return;   console.log("蚂蚁部落二"); } func() 如果没有返回值rerun,返回值 ...
我想这里的:如果没有return语句,那么函数的返回值是undefined。描述的是 function func(a,b) {
  var num;
  num = a + b;
  //return num       这里没return 返回值就是 unddefined
}
console.log(func(1,2))
引用 小小白 2018-5-25 18:33
function func() {
  console.log("蚂蚁部落一");
  return;
  console.log("蚂蚁部落二");
}
func()
如果没有返回值rerun,返回值我打印出来的是蚂蚁部落一和蚂蚁部落二,不是undefined呢?

查看全部评论(3)

返回顶部