JS编程建议——18:比较function语句和function表达式

简介: 18:比较function语句和function表达式

建议18:比较function语句和function表达式
在JavaScript语言中,既有function语句,也有函数表达式,这是令人困惑的,因为它们看起来是相同的。一个function语句就是值为一个函数的var语句的简写形式。
下面的语句:

  1. function f() {}
    相当于:
  2. var f=function() {}
    这里建议使用第二种形式,因为它能明确表示f是一个包含一个函数值的变量。要用好JavaScript这门语言,理解函数就是数值是很重要的。

function语句在解析时会被提升,这意味着不管function被放置在哪里,它都会被移动到定义时所在作用域的顶层。这放宽了函数必须先声明后使用的要求,当然这也会造成混乱。
在if语句中也是禁止使用function语句的。大多数的浏览器都允许在if语句中使用function语句,但它们在解析function语句的处理上各不相同,因此造成了可移植性方面的问题。
根据官方的语法约定,一个语句不能够以一个函数表达式开头,而以单词function开头的语句是一个function语句。解决这个问题的方法就是把函数表达式括在一个圆括号之中。

  1. (function () {
  2. //…
  3. }());
相关文章
|
7天前
|
存储 JavaScript 前端开发
JavaScript编程实现tab选项卡切换的效果+1
JavaScript编程实现tab选项卡切换的效果+1
|
2月前
|
JavaScript 前端开发 编译器
解锁JavaScript模块化编程新纪元:从CommonJS的基石到ES Modules的飞跃,探索代码组织的艺术与科学
【8月更文挑战第27天】随着Web应用复杂度的提升,JavaScript模块化编程变得至关重要,它能有效降低代码耦合度并提高项目可维护性及扩展性。从CommonJS到ES Modules,模块化标准经历了显著的发展。CommonJS最初专为服务器端设计,通过`require()`同步加载模块。而ES Modules作为官方标准,支持异步加载,更适合浏览器环境,并且能够进行静态分析以优化性能。这两种标准各有特色,但ES Modules凭借其更广泛的跨平台兼容性和现代语法逐渐成为主流。这一演进不仅标志着JavaScript模块化的成熟,也反映了整个JavaScript生态系统的不断完善。
38 3
|
25天前
|
JavaScript 前端开发
一个js里可以有多少个async function,如何用最少的async function实现多个异步操作
在 JavaScript 中,可以通过多种方法实现多个异步操作并减少 `async` 函数的数量。
|
7天前
|
JavaScript 前端开发
JavaScript编程实现tab选项卡切换的效果
JavaScript编程实现tab选项卡切换的效果
|
7天前
|
JavaScript 前端开发
用JavaScript编程控制网页上checkbox选择状态:全选、全部取消、反选
用JavaScript编程控制网页上checkbox选择状态:全选、全部取消、反选
|
8天前
|
JavaScript 前端开发 安全
JavaScript编程实现字符和字符串翻转
JavaScript编程实现字符和字符串翻转
|
9天前
|
JavaScript 前端开发
用JavaScript编程定义二维数组并初始化,然后输出元素值
用JavaScript编程定义二维数组并初始化,然后输出元素值
|
2月前
|
JavaScript 前端开发 安全
揭秘TypeScript的魔力:它是如何华丽变身为JavaScript的超能英雄,让您的代码飞入全新的编程维度!
【8月更文挑战第22天】在Web开发领域,JavaScript是最主流的编程语言之一。但随着应用规模的增长,其类型安全和模块化的不足逐渐显现。为解决这些问题,微软推出了TypeScript,这是JavaScript的一个超集,通过添加静态类型检查来提升开发效率。TypeScript兼容所有JavaScript代码,并引入类型注解功能。
32 2
|
2月前
|
JavaScript 前端开发
JavaScript基础&实战 JS中正则表达式的使用
这篇文章介绍了JavaScript中正则表达式的使用,包括正则表达式的创建、匹配模式、字符串匹配、拆分、搜索、匹配和替换等方法,并通过示例代码展示了如何应用这些技术。
JavaScript基础&实战 JS中正则表达式的使用
|
2月前
|
JavaScript 前端开发 Oracle
下一篇
无影云桌面