函数声明方法
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真的很变态,这样就找不到逻辑】函数就是一段可以反复调用的代码块,这个代码块在内存里面是以字符串的形式存储的。