函数声明

134 阅读2分钟

函数声明方法

1.最简单的声明方法:具名函数

function x(输入1,输入2){
    return undefined
}


function相当于一种特殊的var,后面接函数的名字

【console.log(x)只接受字符串,如果x不是字符串,就会调用to string方法来吧x变成字符串。】 

如果用 to string方法结果会加双引号,但是chrome打印出来的东西没有双引号,这个是浏览器的问题。

x.toString()
"function x(input1,input2){return undefined}"
console.log(x)
f x(input1,input2){return undefined}

console.log("1")
1
【还有一点注意在chrome中返回值和打印出来的东西没有关系,可以什么都不返回,但是可以打印出来东西】

2.匿名函数赋给变量

var x
x = function (input1,input2){
    return
}
【声明一个匿名函数,然后把这个匿名函数给变量】

3.具名函数赋给变量

var x = function y(input1,input2){}

3跟1的区别就是把function赋值给变量了,而赋值后变量部分是访问不到y的,这个是js的垃圾特性。

4.用new Function

f = new Function('x','y','return x+'+n+'+y')

5.箭头函数

f =(x,y)=>{return x+y}

sum = (x,y) =>x+y 【return和花括号可以一起去掉】

n2 = n=>n*n 【参数只有一个的情况参数的笑括号可以去掉】


有一个不太用到的知识点,就是:

函数式有名字的,即name,比如在chrome中试一试:

f.name
"f"

但是匿名函数也有name
var f2 = function(){}
f2.name
"f2"

var f3 = function f4(){}
f3.name
"f4" 【这时候是f4】

f5 = new Function('x','y','return x+y')
f5.name
"anonymous"  【英文匿名的意思】【名字竟然叫匿名,js真的很变态,这样就找不到逻辑】


函数就是一段可以反复调用的代码块,这个代码块在内存里面是以字符串的形式存储的。