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

JavaScript 分号踩坑

今天踩了一个JavaScript分号的坑
我想使用JavaScript的解构赋值语法来实现交换两个变量的值而不必引入第三个变量,代码如下所示:

let a = 100
let b = 200
[a,b] = [b,a]
console.log(a)
console.log(b)

因为习惯了不加分号,所以没加分号产生报错:“Cannot access ‘b’ before initialization”

let a = 100
let b = 200;
[a,b] = [b,a]
console.log(a)
console.log(b)

原因应该是JavaScript有一个机制叫自动分号插入(Automatic Semicolon Insertion),本次报错的原因应该就是该机制错误的理解了我的意思,转换成了let b = 200[a,b] = [b,a]因为该赋值运算从右向左执行,所以报了b未初始化的错误。比如立即执行函数()()就有可能因为不加分号而报错。所以以后尽量写分号,或者有歧义的语句可以将分号写在开头是一个比较好的实践,如:

let a = 100
let b = 200
;[a,b] = [b,a]
console.log(a)
console.log(b)

用处不大的纠错历程:
我先询问chatGPT我的代码错误,他说了一堆没用的然后发给我它的代码,然后我一看这不和我一样?但我还是复制粘贴然后一运行,顺利运行,逐行对比过后发现他每行后面都加上了分号,然后我回退回我的代码加了分号顺利运行,然后经过测试仅在第二行末尾加上分号,问题解决。

相关文章:

  • Rust 数据结构与算法:4栈:用栈实现进制转换
  • 【C语言】linux内核tcp/ip协议代码
  • 【前端工程化面试题】如何优化提高 webpack 的构建速度
  • 【Web】从零开始的js逆向学习笔记(上)
  • C语言-----习题
  • Bee+SpringBoot稳定的Sharding、Mongodb ORM功能(同步 Maven)
  • django中配置使用websocket
  • 009集——磁盘详解——电脑数据如何存储在磁盘
  • 第8讲项目整合SpringSecurity
  • Qt:自定义信号,信号emit,传参问题,信号槽与moc
  • 蓝桥杯刷题--python-6
  • 【后端高频面试题--Nginx篇】
  • OpenCV-36 多边形逼近与凸包
  • 【C++】C++11上
  • OCP的operator——(4)用户任务:使用Operator创建etcd集群
  • JS 中的深拷贝与浅拷贝
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 2017-08-04 前端日报
  • 2017前端实习生面试总结
  • Apache Spark Streaming 使用实例
  • CEF与代理
  • echarts的各种常用效果展示
  • ES学习笔记(12)--Symbol
  • extract-text-webpack-plugin用法
  • Git同步原始仓库到Fork仓库中
  • idea + plantuml 画流程图
  • input的行数自动增减
  • JS 面试题总结
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • SSH 免密登录
  • Windows Containers 大冒险: 容器网络
  • 工作手记之html2canvas使用概述
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 汉诺塔算法
  • 好的网址,关于.net 4.0 ,vs 2010
  • 聊聊hikari连接池的leakDetectionThreshold
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 项目实战-Api的解决方案
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 1.Ext JS 建立web开发工程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (1)(1.11) SiK Radio v2(一)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (附源码)计算机毕业设计ssm电影分享网站
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (数据结构)顺序表的定义
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .net CHARTING图表控件下载地址
  • .net core 连接数据库,通过数据库生成Modell