Javascript 中有两种定义函数的方法:
- 函数声明(Function Declaration)
function sayHello() {};
- 函数表达式(Function Expression)
const sayGoodbye = function() {};
他们之间有什么区别呢?首先函数声明是会被自动提升的,比如你可以在声明前调用函数:
sayHello()
function sayHello() {
console.log('hello')
}
结果:
// hello
而与之相对,函数表达式不会被提升。
sayGoodbye()
const sayGoodbye = function() {
console.log('good bye')
}
报错:
Uncaught ReferenceError: sayGoodbye is not defined
与之对应的类(Class)也能用类声明和类表达式两种方法表示。
- 类声明
class Circle {
}
- 类表达式
const Square = class {
}
不同于函数,类声明和类表达式都不会被提升。
网友评论