ES6中Let命令基本用法

时间:2022-11-21 13:59:27


[比较运算符&相等]

使用 === 和 !== 而非 == 和 !=,eslint: eqeqeq

条件声明例如 if 会用 ToBoolean 这个抽象方法将表达式转成布尔值并遵循如下规则

Objects 等于 true
Undefined 等于 false
Null 等于 false
Booleans 等于 布尔值
Numbers 在 +0, -0, 或者 NaN 的情况下等于 false, 其他情况是 true
Strings 为 '' 时等于 false, 否则是 true
if ([0] && []) {
// true
// 数组(即使是空数组)也是对象,对象等于true
}

[分号]

Standard 的规范是不使用分号的,我建议统一使用分号,代码更加清晰 关于应不应该使用分号的讨论有很多,好的 JS 程序员应该清楚场景下是一定要加分号的,相信你也是名好的开发者。

// bad
const test = 'good'
(function () {
const str = 'hahaha'
})()

// good
const test = 'good';
;(() => {
const str = 'hahaha';
})();

[标准特性]

为了代码的可移植性和兼容性,我们应该最大化的使用标准方法,例如优先使用 string.charAt(3) 而不是 string[3]

[eval()]

由于 eval 方法比较 evil,所以我们约定禁止使用该方法

[with() {}]

由于 with 方法会产生神奇的作用域,所以我们也是禁止使用该方法的

[修改内置对象的原型]

不要修改内置对象,如 Object 和 Array

[注释]

[比较运算符&相等]

使用 === 和 !== 而非 == 和 !=,eslint: eqeqeq

条件声明例如 if 会用 ToBoolean 这个抽象方法将表达式转成布尔值并遵循如下规则

Objects 等于 true
Undefined 等于 false
Null 等于 false
Booleans 等于 布尔值
Numbers 在 +0, -0, 或者 NaN 的情况下等于 false, 其他情况是 true
Strings 为 '' 时等于 false, 否则是 true
if ([0] && []) {
// true
// 数组(即使是空数组)也是对象,对象等于true
}

[分号]

Standard 的规范是不使用分号的,我建议统一使用分号,代码更加清晰 关于应不应该使用分号的讨论有很多,好的 JS 程序员应该清楚场景下是一定要加分号的,相信你也是名好的开发者。

// bad
const test = 'good'
(function () {
const str = 'hahaha'
})()

// good
const test = 'good';
;(() => {
const str = 'hahaha';
})();

为了代码的统一性,函数内部采用 单行注释,工程复杂注释采用多行 如果涉及todo类型的注释,采用 ​​// TODO:​

基本用法

ES6 新增了​​let​​命令,用来声明变量。它的用法类似于​​var​​,但是所声明的变量,只在​​let​​命令所在的代码块内有效。

{
let a = 10;
var b = 1;
}

a // ReferenceError: a is not defined.
b // 1