关于JavaScript的一些看法
JavaScript 关于 一些 看法
2023-06-13 09:14:09 时间
众所周知,一句JS代码以分号结束和以回车符结束在浏览器中均能正常运行(至少在我的IE7中是这样)。不知道这是JS语言的特性或者仅仅是解释器的容错功能?由于回车符也可以是一句代码结束的标志,进行JS压缩的时候就麻烦些了。要压缩掉所有的回车符,程序就得知道哪里是一条语句的结束,并在结束位置后面添加上";"。这是一件不容易的事情(或许有容易的方法我还没想到吧),最后无赖我只好采取了一种折中的方法:保留必要的回车符,去掉";"、","、"+"等等分隔符前后的回车符。(要是JS也像C++等语言一样以";"结尾,那该是多么容易的一件事情!)
在开发的过程中,还发现一个比较奇怪的问题。如下面的代码所示:
复制代码代码如下:
在开发的过程中,还发现一个比较奇怪的问题。如下面的代码所示:
1<body>
2
3<script>
4
5functionclass1(){};
6
7class1.prototype.ShowMessage=functionShowMsg()
8{
9alert("ShowMsgFunction!");
10}
11vartest=newclass1();
12test.ShowMessage();
13</script>
14
15</body>
上面的代码可以正常运行。
如果把第11行前的"\n"去掉,即程序变成:
1<body>
2
3<script>
4
5functionclass1(){};
6
7class1.prototype.ShowMessage=functionShowMsg()
8{
9alert("ShowMsgFunction!");
10}vartest=newclass1();
11test.ShowMessage();
12</script>
13
14</body>
则将不能正确运行,原因在于"=function(){...}"的"}"不能标志语句块结束。也就是说,整个"=function(){...}"仅仅是一条语句,如上所述,一条语句必须以回车符或者";"结束。这是和C/C++等又一重大区别。
介于此,建议大家以后写JS代码的时候还是在一句话后面加";"表示结束,以避免不必要的BUG。
PS:虽然JS很强大,但是它这些“缺点”真是让我没法喜欢上它。
相关文章
- 关于JavaScript网页计时器
- 新一波 JavaScript 框架
- javascript简介_javascript对象
- Javascript字符串处理
- 关于Java&JavaScript中(伪)Stream式API对比的一些笔记
- 关于 2022 年 JavaScript 生态调查报告:TypeScript持续主导,Vite和Tauri大受欢迎
- JavaScript 中的遍历详解编程语言
- 关于JavaScript命名空间的一些心得详解编程语言
- Javascript中的Array(数组) 、{}(映射) 与JSON解析详解编程语言
- 关于javascript的“静态类"
- javascript中的对象和数组的应用技巧
- 比较详细的关于javascript中void(0)的具体含义解释
- javascript引用对象的方法代码
- javascript关于复选框的实用脚本代码
- Javascript常用运算符(Operators)-javascript基础教程
- Javascript条件判断使用小技巧总结
- 关于javascript中的parseInt使用技巧
- 编写高性能的JavaScript脚本的加载与执行
- JavaScript设计模式富有表现力的Javascript(一)
- Javascript异步加载详解(浏览器在javascript的加载方式)
- Javascript对象中关于setTimeout和setInterval的this介绍
- JavaScript实现统计文本框Textarea字数增强用户体验
- 关于javascript冒泡与默认事件的使用详解
- html+javascript实现可拖动可提交的弹出层对话框效果
- javascript生成随机大小写字母的方法
- PHP中使用Session配合Javascript实现文件上传进度条功能
- javascript关于继承的用法汇总
- Javascript基础教程之JavaScript语法
- 用javascript读取xml文件读取节点数据