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