IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:函数表达式

共 1 篇相关文章

IT 累计浏览 2,884

Javascript中的函数声明和函数表达式

这篇讲的是JavaScript中两种基础却常被混淆的语法:函数声明与函数表达式。作者从Google Code Search中一个巧妙的写法——`~function(){}();`入手,瞬间抓住了读者的好奇心。 文章的核心是厘清二者的根本区别。函数声明(如 `function foo() {}`)会被“提升”(Hoisting),即在执行上下文创建阶段就被放入作用域,因此你可以在声明前调用它。而函数表达式(如 `var foo = function() {}`)则不会提升,必须在定义后才能调用。 作者通过一个具体的代码执行流程图和步骤分解,清晰地展示了引擎如何处理这两种语法。文中还深入探讨了立即执行函数表达式(IIFE)的写法与用途,解释了开头代码中 `~` 运算符的作用——它仅仅是一个巧妙的语法触发器,目的是让解析器将 `function` 关键字识别为表达式的一部分,从而允许后面紧跟圆括号进行调用。 文章没有停留在语法对比,而是引导读者思考这种差异在实际编码中带来的影响,比如代码组织、模块化模式等。结尾抛出的一个关于提升行为的思考题,能促使读者主动回顾和巩固所学。