章节索引 :

根据环境选择语言特性

JavaScript 是 ECMAScript(以下简称 ES) 的实现。

ES 的版本非常多,各个浏览器的兼容情况也各不相同,所以一定要了解什么特性是不能在业务中直接使用的。

许多公司在开新项目的同时,依然要继续维护老项目,老项目的整套体系又和现在的前端整个开发流程不同,可能缺少编译、polyfill 等来解决兼容性问题的方案。

在老项目中,应避免去使用 ES6+ 的特性,用户的环境千变万化,完全不知道会用什么浏览器,这时候就考验开发者的能力了,在使用一些不确定的特性时,可以通过 CAN I USE 查看。

一些新的 API 都会有对应的解决方案,如 includes 方法,就可以用 indexOf 代替,或者使用第三方工具库,如 lodash

var string = '123';

console.log(
  string.includes('2'), // 输出:true
);

console.log(
  string.indexOf('2') > -1, // 输出:true
);

即便如此,开发中也难免会忘记,写惯了 ES6,可能一不小心就带了一个箭头函数上线了。

这时候就可以通过 ESLint 这样的代码检查工具,来帮助检查,然后配合 Git 的钩子,在 commit 时跑 ESLint,能很大程度上规避掉这个问题。

前置知识
什么是JavaScript 开发与学习环境准备 调试方案
基础
JavaScript 变量 JavaScript 数据类型 JavaScript if 语句 JavaScript for 语句 JavaScript 算数运算符 JavaScript 比较运算符 JavaScript 逻辑运算符 JavaScript 表达式 JavaScript 函数 JavaScript 对象 JavaScript 字符串 JavaScript 数字 JavaScript 数组 JavaScript switch 语句 JavaScript while 语句 JavaScript break与continue JavaScript with document.cookie
内置对象
JavaScript Function JavaScript Math JavaScript Date JavaScript RegExp JavaScript JSON
JavaScript 与 DOM
什么是DOM DOM和JavaScript的关系 获取和操作 DOM 节点 JavaScript DOM与事件 JavaScript DOM 事件绑定 JavaScript DOM 事件对象 JavaScript DOM 事件流 JavaScript DOM 事件优化 JavaScript DOM 自定义事件
表单处理
使用 JavaScript 校验表单
BOM
BOM window 对象 常用的 BOM 相关对象 BOM 常用属性和方法
AJAX
JavaScript AJAX
进阶知识
JavaScript 异常处理 JavaScript 三元运算符 JavaScript 逗号操作符 JavaScript void JavaScript typeof JavaScript delete JavaScript debugger JavaScript getter &setter JavaScript 原型 JavaScript new操作符和构造函数 JavaScript instanceof JavaScript this JavaScript 严格模式 JavaScript 作用域 JavaScript 闭包 JavaScript 变量提升 JavaScript 对象包装器
常用库
jQuery Lodash moment.js swiper
进阶指南
ECMAScript6 Node.js Babel CSS 预处理器 代码规范 TypeScript Web Components 小程序 Vue / React / Angular JavaScript 关键字
常见疑点与误区
分号问题 对象属性访问问题 this 使用问题 浮点数精度问题 独一无二的 NaN 避免全局污染 控制台观察对象问题 根据环境选择语言特性
扩展
相关资源