《编写可维护的JavaScript》(四) ---变量,函数和运算符

97 阅读2分钟

变量,函数和运算符

变量声明

这本书的创作时间比较久远那时还没有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

原始包装类型

原始包装类型的存在是为了方便操作原始值,但不要使用原始包装类型的构造函数创建原始包装类型,这会使我们在对象和原始值之间"跳来跳去",直接使用字面量进行定义