zl程序教程

您现在的位置是:首页 >  后端

当前栏目

js语法(1)_css语法

JSCSS 语法
2023-06-13 09:14:30 时间

js自动插入分号规则

a. 什么时候需要写分号 什么时候不能写分号

要有换行符,且下一个符号是不符合语法的,那么就尝试插入分号。 有换行符,且语法中规定此处不能有换行符,那么就自动插入分号。 源代码结束处,不能形成完整的脚本或者模块结构,那么就自动插入分号。

no LineTerminator here 规则表示它所在的结构中的这一位置不能插入换行符。

 带有标签的continue语句 不能在continue后插入换行
 带标签的break语句 不能在break后插入换行
 return后不能插入换行
 后自增、后自减运算符前不能插入换行
 throw和Exception之间不能插入换行
 凡是async关键字,后面都不能插入换行
 箭头函数的箭头前,也不能插入换行
 yield之后,不能插入换行

带换行符的注释也被认为是有换行符 一行开头是括号或者方括号的时候加上分号就可以了,其他时候全部不需要

 let a = 1
 void function(a){
     console.log(a);
 }(a);

 *: void 前接1是不合法的 所有会在 1 后加上 ' ; '

不写分号需要注意的情况 A. 以花括号开头的语句

     (function(a){
         console.log(a);
     })()/*这里没有被自动插入分号*/
     (function(a){
         console.log(a);
     })()


 B. 以数组开头的语句

     var a = [[]]/*这里没有被自动插入分号*/
     [3, 2, 1, 0].forEach(e => console.log(e))

 C. 以正则表达式开头的语句

     var x = 1, g = {test:()=>0}, b = 1/*这里没有被自动插入分号*/
     /(a)/g.test("abc")
     console.log(RegExp.$1)

 D. 以Template开头的语句


     var f = function(){
       return "";
     }
     var g = f/*这里没有被自动插入分号*/
     `Template`.match(/(a)/);
     console.log(RegExp.$1)

-附录. void操作 功能: 因为undefined在js中不是保留字 所以 function joke() { var undefined = “hello world”; console.log(undefined); //会输出”hello world” } console.log(undefined); //输出undefined

    1. 什么是void
        void是一元运算符,出现在操作数的左边,操作数可以是任意类型的值,
        void右边的表达式可以是带括号形式(例如:void(0)),也可以是不带括号的形式(例如:void 0)。

    2. void的功能
        void的作用便是返回undefined,在它右边的操作数会正常计算,但是无论结果是什么,void都会返回undefined。


    javascript:void(0)


    void function(){};

    void作用:

        通过采用void 0取undefined比采用字面上的undefined更靠谱更安全,应该优先采用void 0这种方式。
        填充<a>的href确保点击时不会产生页面跳转; 填充<image>的src,确保不会向服务器发出垃圾请求。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179528.html原文链接:https://javaforall.cn