- 特点:
- 1.函数声明的时候,函数体只有在调用的时候,才会执行
- 2.可以调用多次
1.函数声明
// sayHello() 也可以先调用再声明,因为预解析
// 1.1 声明
function sayHello() {
console.log(11) //函数体
}
// 1.2 调用
sayHello()
2.函数表达式
- 采用变量赋值的写法,将一个匿名函数赋值给变量
//sayHello() 不可以先调用在声明,因为预解析仅仅只会把变量的声明提前了
var sayHello = function() {
console.log(22)
}
sayHello()
3.构造函数 Function 定义函数
- 语法:
var fn = new Function(arg1,arg2,arg3,...bodyFn)
- 作用:定义函数 除了最后一个参数 其余的参数都是新创建出来的函数的形参,最后一个参数是新创建出来的函数体
- 注意: 参数的类型都是字符串
var fn = new Function("n1","n2","console.log(n1 + n2)") //函数也是对象,函数也是通过构造函数创建出来的
// 相当于得到这样的函数
var fn = function(n1, n2) {
console.log(n1 + n2)
}
console.log(fn)
fn(10, 20)
// Function 的参数如果只有一个,这一个参数会作为函数体
var fn2 = new Function('alert(1)')
console.log(fn2)
fn2()
在实际编程中,这种声明函数的方式基本不用。
4.函数的重复声明
function fn() {
console.log(11);
}
fn() // 22
function fn() {
console.log(22);
}
fn() // 22
- 注意: 一个函数被多次声明后,后面的声明会覆盖前面的声明
以上就是关于js函数的三种定义方式小总结啦~ ヾ(◍°∇°◍)ノ゙ ~
参考链接link