码迷,mamicode.com
首页 > Web开发 > 详细

js你不是的那些基础问题-函数

时间:2019-08-13 13:29:16      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:其他   efi   自身   type   方式   new   写法   pre   wan   

1 概述

1.1 函数的声明

  JavaScript 有三种声明函数的方法。

  (1)function 命令

function命令声明的代码区块,就是一个函数。function命令后面是函数名,

函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。

function print(s) {
  console.log(s);
}

  上面的代码命名了一个print函数,以后使用print()这种形式,

  就可以调用相应的代码。这叫做函数的声明(Function Declaration)。

  (2)函数表达式

  除了用function命令声明函数,还可以采用变量赋值的写法。

var print = function(s) {
  console.log(s);
};

  这种写法将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式(Function Expression),

  因为赋值语句的等号右侧只能放表达式。

  采用函数表达式声明函数时,function命令后面不带有函数名。

  如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。

var print = function x(){
  console.log(typeof x);
};

x
// ReferenceError: x is not defined

print()
// function

  上面代码在函数表达式中,加入了函数名x。这个x只在函数体内部可用,指代函数表达式本身,

  其他地方都不可用。这种写法的用处有两个,一是可以在函数体内部调用自身,

  二是方便除错(除错工具显示函数调用栈时,将显示函数名,而不再显示这里是一个匿名函数)。

  因此,下面的形式声明函数也非常常见。

var f = function f() {};

  需要注意的是,函数的表达式需要在语句的结尾加上分号,表示语句结束。

  而函数的声明在结尾的大括号后面不用加分号。

  总的来说,这两种声明函数的方式,差别很细微,可以近似认为是等价的。

 

  (3)Function 构造函数

  第三种声明函数的方式是Function构造函数。

var add = new Function(
  ‘x‘,
  ‘y‘,
  ‘return x + y‘
);

// 等同于
function add(x, y) {
  return x + y;
}

  上面代码中,Function构造函数接受三个参数,除了最后一个参数是add函数的“函数体”,

  其他参数都是add函数的参数。

  你可以传递任意数量的参数给Function构造函数,只有最后一个参数会被当做函数体,

  如果只有一个参数,该参数就是函数体。

var foo = new Function(
  ‘return "hello world";‘
);

// 等同于
function foo() {
  return ‘hello world‘;
}

  

 

 

 

 

 

 

 

 

 

 

文章内容转自阮一峰老师 JavaScript教程 https://wangdoc.com/javascript/index.html

js你不是的那些基础问题-函数

标签:其他   efi   自身   type   方式   new   写法   pre   wan   

原文地址:https://www.cnblogs.com/WernerWu/p/11345261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!