一、全局安装

默认情况下,浏览器是同步加载 JavaScript
脚本,即渲染引擎遇到<script>标签就会停下来,等到执行完脚本,再继续向下渲染。如果是外部脚本,还必须加入脚本下载的时间。

1.什么是外边距?

npm install -g eslint

如果脚本体积很大,下载和执行的时间就会很长,因此造成浏览器堵塞,用户会感觉到浏览器“卡死”了,没有任何响应。这显然是很不好的体验,所以浏览器允许脚本异步加载,下面就是两种异步加载的语法。

标签和标签之间的距离就是外边距

二、生成配置文件

<script src="path/to/myModule.js" defer></script>
<script src="path/to/myModule.js" async></script>

2.格式

  在项目根目录执行init,生成.eslintrc文件。在init时,要求根目录存在package.json。当然也可以直接复制个现成的.eslintrc.js文件。

上面代码中,<script>标签打开deferasync属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令。

2.1非连写

eslint --init

deferasync的区别是:

margin-top:

三、自定义配置项

1: defer要等到整个页面在内存中正常渲染结束(DOM
结构完全生成,以及其他脚本执行完成),才会执行;

margin-right:

  根据规则文档,编辑.eslintrc.js文件内容。

2: async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。一句话,defer是“渲染完再执行”,async是“下载完就执行”。另外,如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的。

margin-bottom:

module.exports = {
    "env": {
        "node": true
    },
    "rules": {
        // 强制使用一致的缩进
        "indent": ["warn", "tab"],
        // 禁止空格和 tab 的混合缩进
        "no-mixed-spaces-and-tabs":1,
        // 禁用 debugger
        "no-debugger": 1,
        // 禁止不必要的布尔转换
        "no-extra-boolean-cast": 1,
        // 强制所有控制语句使用一致的括号风格
        "curly": 1,
        // 禁止使用多个空格
        "no-multi-spaces": 1,
        // 要求在函数标识符和其调用之间有空格
        "func-call-spacing": 1,
        // 强制在函数括号内使用一致的换行
        "function-paren-newline": ["warn", "never"],
        // 强制隐式返回的箭头函数体的位置
        "implicit-arrow-linebreak": 1,
        // 强制在对象字面量的属性中键和值之间使用一致的间距
        "key-spacing": 1,
        // 强制在关键字前后使用一致的空格
        "keyword-spacing":1,
        // 要求调用无参构造函数时有圆括号
        "new-parens":1,
        // 禁止出现多行空行
        "no-multiple-empty-lines":1,
        // 要求使用分号代替 ASI
        "semi":["warn","always"],
        // 要求操作符周围有空格
        "space-infix-ops":1
    }
};

 

margin-left:

  配置内容也可以写在package.json中,具体规则也是写在rules里。有时用vue-cli生成的项目会在package.json里看到这样的配置:

参考资料: 《EcmaScript 6
入门》作者:阮一峰

图片 1

  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "babel-eslint"
    }
  }

然后我们发现span并没有宽度和高度,因为span是行内元素,没有办法设置宽高,所以我们将行内元素改为行内块元素,添加一条代码:display:inline-block;

四、执行检查并修改

图片 2

eslint * --fix

发现有三个span连成一排了,它们彼此之间有间距,但是你要知道这个间距并不是你的外边距,我们在学习字符实体时知道,空格,回车都会被压缩成一个空格来处理,所以这个间距是由回车引起的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注