怎么声明一个函数
- 最简单的声明方法,具名函数
function x(输入1, 输入2...) { |
function 是关键字,和 var 一样,var 是声明一个变量,funciton 是声明一个函数。变量和函数的差别是,变量有 7 种数据类型(string,number,null,undefined,boolean,symbol,object),而 function 声明一个函数,那么这个变量就只能是一个函数,也就是 object 数据类型,function 是特殊的 var,变量的特例。
x 是函数的名字,名字可以用来 console.log(x) 输出这个函数,console.log 的参数只支持字符串,如果这个 x 不是字符串,console.log 会自动把 x 的值调用 toString 方法。
function x(input1, input2) {return undefined} |
不要相信 Chrome 打印出来的东西
console.log("1") // 1 |
Chrome 打印出来的是数值 1,而应该是字符串“1”。console.log 永远返回 undefined。打印的并不是返回值。
x 的返回值默认会带上 return undefined,如果没有 return 的话。因为一个函数必须要有一个终止语句,所以就算不写 return,函数也会自动带上 return undefined。
- 匿名函数
function (input1, input2) { return undefined } |
不能单独使用,必须赋给另外一个变量。
var x |
- 具名函数赋值给一个变量
var x = function y(input1, input2) {return undefined} |
y 的作用域只在函数体内。
var x = function y(input1, input2) {return undefined} |
第 3 种和第 1 种的语法一样,但是 y 的体现不一致,这也是 JavaScript 的垃圾之处。
- window.Function 函数对象
var f = new Funtion('x', 'y', 'return x + y') |
var n = 1 |
所有的参数都是字符串,然后字符串是可以拼接的。
- 箭头函数
箭头函数是匿名函数!
var f = (x, y) => { return x + y } |
如果花括号内只有一个语句,可以去掉花括号和 return
var f = (x, y) => x + y |
如果参数只有一个,则不需要小括号
var f = x => x**2 |
函数的名字的坑
function f() {} |