变量,函数和运算符
变量声明
这本书的创作时间比较久远那时还没有let,const,因此作者在这一节推荐的是var的用法.已经过时了,本人更推荐: cosnt一把梭,梭不过去了回头改成let,绝不用var
函数声明
虽然函数存在变量提升,但不推荐在函数定义之前调用函数,
同时禁止在语句块内声明函数,如if块内:
const con = true;
if (con) {
function doSomeThing () {
console.log('我是第一个函数')
}
}else {
function doSomeThing () {
console.log('我是第二个函数')
}
}
// 对于上述代码: 作者说不同浏览器执行的行为不同,对于火狐会根据con的结果进行执行,其他大多数浏览器会使用第二个声明
针对作者说的情况试验了一下: Chrom,Edge,Firefox对上述代码执行的结果是相同的
函数调用间隔
函数调用时在函数和左括号之间不要保留空格,这样是为了与块语句区分开来
立即调用函数
使用立即执行函数时推荐在函数外用圆括号包裹起来
const val = (function(){}())
为了让立即执行函数能立刻被认出来
严格模式
严格模式的指令"use strict"不要用在全局作用域,因为当十个文件联合成一个文件的时候,只要有一个文件使用了严格模式,那么所有文件都会使用严格模式进行解析,可能会导致错误
相等
只使用全等运算符: === 或 !===
eval,with
禁止使用eval和with
原始包装类型
原始包装类型的存在是为了方便操作原始值,但不要使用原始包装类型的构造函数创建原始包装类型,这会使我们在对象和原始值之间"跳来跳去",直接使用字面量进行定义