接上篇文章w3cschool javascript基础教程笔记(2),本文笔记范围《js let》~《js json》。
1. let和const
es6(es2015)新引进的关键词
引入了块作用域(Block Scope)的概念,在块 {} 内声明的变量无法从块外访问
const为常量关键词,声明的时候必须直接赋值,不能先声明再赋值
使用const声明的常量不能改变其原始值,但是可以改变其属性值;如果时常量数组,不能整体重新赋值,但是能改变单个元素的值,还能添加元素
2. js建议
- 避免全局变量(包括所有的数据类型、对象和函数)——当页面引用不同的js时,如果js中有相同的变量会导 -- 致不可控的错误
- 变量声明全部放在顶部并初始化
- 不声明数值、字符串或布尔对象
- 不使用new Object()
- 尽量使用“===”比较,不使用“==”比较
- 用 default 来结束 switch
- 函数中给缺省的参数设定一个默认值
- 避免使用 eval()
- 多写注释,方便后期阅读与维护
3. 常见错误
- 使用“==”做比较,得到不符合预期的结果
- 数值与数值型字符串相加的时候结果是字符串的拼接
- 浮点误差 (0.1+0.2 != 0.3)
- 换行位置不对
4. 性能建议
- 减少循环中的活动
- 减少DOM访问
- 缩减DOM规模
- 避免不必要的变量(不打算存储的值不要用变量存值)
- 避免使用with关键词
- 延迟js的加载,尽量先加载页面
5. json
- 数据是名称/值对
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组