热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【JavaScript从零开始】语言核心部分可选的分号

Node.js很是火爆,前段待遇好的飞起。。。。

于是我决定....

重头开始学习Javascript
有些比较特别的,或者之前我们注意到,再或者容易出错
东西我会记录下来。

 

 

可选的分号

和其他许多编程语言一样,Javascript 使用分号(;)将语句分隔开的。这对增强代码的可读性和整洁性非常重要。

缺少分割符,一条语句的结束就成了下一跳语句的开始,反之亦然。

在Javascript中,如果语句个独自占一行,通常可以省略语句之间的分号(程序结尾或又花括号"}"之前的分号也可以省略)。

许多JavaSritpt程序员使用分号来明确语句的解释,即使在并不完全需要分号的时候也是如此。

我也建议大家这样做。

如下代码,

a=3;
b=4;
//因为两条语句用两行书写,第一个分号是可以省略掉的
a=3;b=4;
//如果在一行,第一个分号则不能省略

 

需要注意的是,Javascript并不是所有的换行都要填补分号,只有缺少了分号就无法正确解析代码的时候,Javascript才会填补分号。

var a
a
=
3
console.log(a)
//Javascript将其解析为: 
var a;  a=3;  console.log(a)

 

看如下的例子,

 

var y=x+f
(a+b).toString()

//第二行的圆括号与第一行的f 组成一个函数调用
//Javascript 会解析成

var y=x+f(a+b).toString();

而上面的代码本意却不是这样的。分号还是不要省略的好。

通常来讲,如果一条语句以 "("、"[" 、"/" 、"+" 或者 “-” 开始,那么它极有可能和前一条语句在一起解析。

以"/" 、"+" 或者 “-” 开始的语句并不常见,而以 "("、"["  开始的语句则非常常见,至少在一些JaveScript编码风格中是很普遍的。

有些程序员喜欢保守的在语句前加上一个分号,这样哪怕之前的语句被修改了、分号被误删除了,当前语句还是会正确解析:

var x=0 //这里省略了分号
;[x,x+1,x+2].forEach(console.log)//前面的分号保证了正确的语句解析

 

如果当前语句和下一行语句无法合并解析,Javascript则在第一行后填补分号,这是通用的规则,但有两个例外。

第一个例外是在涉及return、break和continue语句的场景中。如果这三个关键字后紧跟着换行,Javascript则会在换行处填补分号。

例如:

return 
ture;
//Javascript会解析成:
return ;  true;
//而代码本意是这样的:
return   true;

 

第二个例外是在涉及"++"和"--"运算符的时候。

这些运算符可以作为表达式的前缀,也可以当做表达式的后缀。

如果将其用作后缀表达式,他和表达式应当咋同一行。

否则,行尾将填补分号,同事""++或"--"将会作为下一行代码的前缀操作符并与之以前解析。

例如:

x
++
y
//这段代码解析为" x;++y"而不是 "x++;y" 

 

 

最后还是提醒大家 使用分号来明确语句的解释,即使在并不完全需要分号的时候也是如此。

如果你觉得有点用处还请推荐一下。

 


推荐阅读
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • 在处理木偶评估函数时,我发现可以顺利传递本机对象(如字符串、列表和数字),但每当尝试将JSHandle或ElementHandle作为参数传递时,函数会拒绝接受这些对象。这可能是由于这些句柄对象的特殊性质导致的,建议在使用时进行适当的转换或封装,以确保函数能够正确处理。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 字节码开发笔记:深入解析与应用技巧 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 优化Vite 1.0至2.0升级过程中遇到的某些代码块过大问题解决方案
    本文详细探讨了在将项目从 Vite 1.0 升级到 2.0 的过程中,如何解决某些代码块过大的问题。通过具体的编码示例,文章提供了全面的解决方案,帮助开发者有效优化打包性能。 ... [详细]
  • 利用 JavaScript 和 Node.js 验证时间的有效性
    本文探讨了如何使用 JavaScript 和 Node.js 验证时间的有效性。通过编写一个 `isTime` 函数,我们可以确保输入的时间格式正确且有效。该函数利用正则表达式匹配时间字符串,检查其是否符合常见的日期时间格式,如 `YYYY-MM-DD` 或 `HH:MM:SS`。此外,我们还介绍了如何处理不同时间格式的转换和验证,以提高代码的健壮性和可靠性。 ... [详细]
  • 深入解析JavaScript柯里化的实现机制及其应用场景
    本文深入探讨了JavaScript中柯里化的实现机制及其应用场景。通过详细的示例代码,文章全面解析了柯里化的工作原理和实际应用,为读者提供了宝贵的学习资源,有助于提升编程技能和解决实际开发中的问题。 ... [详细]
  • 本文探讨了利用JavaScript实现集合的对称差集算法的方法。该算法旨在处理多个数组作为输入参数,同时保留每个数组中元素的原始顺序。算法不会移除单个数组内的重复元素,但会删除在不同数组之间出现的重复项。通过这种方式,能够有效地计算出多个数组的对称差集。 ... [详细]
  • 在掌握Promise调用链的过程中,理解其在异步执行中的核心作用至关重要。链式调用不仅简化了代码结构,提高了可读性,还增强了程序的健壮性和维护性。类似于jQuery中常用的链式调用,如 `$(#app).show().css('color', 'red')`,Promise的链式调用通过 `.then()` 方法实现了异步操作的无缝衔接,使得复杂的异步流程更加直观和高效。掌握这些技巧将有助于开发者更好地处理异步编程中的常见问题,提升开发效率。 ... [详细]
author-avatar
The_Fuck_566
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有