当前位置: 首页 > news >正文

vue3页面空白-普通函数和箭头函数提升的不同

在 JavaScript 中,普通函数(即使用 function 关键字定义的函数)和箭头函数(使用 () 和 => 定义的函数)在作用域和提升(hoisting)行为上有不同的表现。


1. 普通函数(Function Declarations) 普通函数声明会被提升(hoisted),也就是说,它们可以在声明之前被调用。这是因为函数声明会被提升到当前作用域的顶部。例如:

console.log(foo()); // 输出 "Hello"function foo() {return "Hello";
}

在这个例子中,尽管 foo 函数是在调用之后才声明的,但它仍然可以正常工作,因为函数声明会被提升。



2. 箭头函数和其他函数表达式 箭头函数和其他函数表达式(如使用 var, let, const 定义的函数)不会被提升。这意味着它们必须在声明之后才能被调用。例如:

console.log(bar()); // 报错:TypeError: bar is not a functionconst bar = () => {return "World";
};

在这个例子中,如果尝试在 bar 函数声明之前调用它,会导致错误,因为 bar 在声明之前只是一个未定义的标识符。




错例


watchEffect(() => {if(calculateWinner(squareValues.value)){status.value = 'Winner: ' + calculateWinner(squareValues.value) + ' ! ';}else if(!squareValues.value.filter(item => item === '').length){status.value = 'Draw !';}else{status.value = 'Next player is ' + (xIsNext.value ? 'X' : 'O');}
});const calculateWinner = (squares) => {const lines = [[0, 1, 2],[3, 4, 5],[6, 7, 8],[0, 3, 6],[1, 4, 7],[2, 5, 8],[0, 4, 8],[2, 4, 6]];for(let i = 0; i < lines.length; i++) {const [a, b, c] = lines[i];if(squares[a] && squares[a] === squares[b] && squares[a] === squares[c]) {return squares[a];}}return null;
}

http://www.mrgr.cn/news/19140.html

相关文章:

  • Windows使用ffmpeg获取麦克风数据
  • 激光雷达产品介绍
  • MySQL备份:备份策略、物理备份、mysqldump备份、增量备份、差异备份
  • DeFi是否还存在Alpha机会?Pencils Protocol 带领市场“向前看”
  • 深入理解 Prometheus 数据模型与指标监控
  • MATLAB eig 函数简介:计算特征值和特征向量
  • VS2022使用指定的LLVM版本
  • Linux C++ 开发7 - GDB常用命令汇总(你想了解的都在这)
  • 【算法专场】模拟(上)
  • C++复习day02
  • 专业文件搜索工具 | UltraSearch Pro v4.4.1.1015 绿色特别版
  • 字典树Trie(专项复习)
  • 【C++ Primer Plus习题】10.2
  • 我克隆了我自己,数字生命有什么意义?
  • 数据结构:顺序表的应用--仓库货物管理信息管理系统
  • 9.3总结
  • pikachu文件包含漏洞靶场通关攻略
  • B站视频自动驾驶master(2)
  • P01-Java何谓数组
  • 【MA35D1】buildroot 编译使用经验