常见的 JS 函数的写法如下
function printNum(num){
console.log(num);
}
和下面的写法有什么不同?下面的 countDown 是代表了函数的地址吗?
const countDown = (num: number) => {
console.log(num);
}
常见的 JS 函数的写法如下
function printNum(num){
console.log(num);
}
和下面的写法有什么不同?下面的 countDown 是代表了函数的地址吗?
const countDown = (num: number) => {
console.log(num);
}
前者会提升,后者不会提升,即,前者可以先调用,再定义,后者必须先定义,再调用。其次 this 指向会有区别。
printNum(2);// expected
function printNum(num){
console.log(num);
}
countDown(2);// error
const countDown = (num: number) => {
console.log(num);
}
上面的讲的已经清楚了,再补充一点。
如果存在同名的函数声明和函数表达式的话,函数声明的优先级会高于函数表达式。参考:
log() // 1
function log() {
console.log(1)
}
var log = () => {
console.log(2)
}
log() // 2
函数声明且不会被变量声明覆盖,但是会被变量赋值之后覆盖。
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
没有太大的区别,下面这种是 typescript + 箭头函数