一、变量名
- 定义规则:
- 变量名只能以字母和$_两个字符开头,后面可以包括数字。
- 尽量不要使用其他Unicode字符,避免潜在问题。
- 最佳实践:
- 避免使用难以识别或有歧义的字符,以便代码更易读和维护。
二、数据类型
JavaScript是弱类型语言,变量类型可以动态改变。
- 基本数据类型:
- Number(数值类型)
- 例如:typeof 1;返回"number"
- 特殊值:NaN和Infinity
- String(字符串)
- 例如:typeof "text";返回"string"
- Boolean(布尔值)
- 例如:typeof true;返回"boolean"
- Object(对象)
- 包括数组和字面量对象,例如:typeof [1, 2];返回"object"
- 特殊情况:typeof null;返回"object"
- Undefined(未定义)
- 例如:typeof undefined;返回"undefined"
- Function(函数)
- 例如:typeof function(){};返回"function"
- 动态类型示例:
三、null 和 undefined
- 区别:
- null是一种特殊对象类型,用于表示“没有值”。
- undefined是表示变量未定义。
- 使用场景:
- 在数据库操作中,如果变量未赋值,使用null更合适,因为数据库能识别并存储null。
- 关系:
四、NaN 和 Infinity
- 定义:
- NaN(Not a Number)用于表示一个非数值的计算结果。
- Infinity表示无穷大,通常出现在除以零的情况下。
- 使用注意:
- NaN不等于任何值,包括它自己:
- 判断方法:
- 使用isNaN()来检查一个值是否是NaN:
五、操作符
- 区别:
- ==进行值的比较,允许类型转换。
- ===进行值和类型的比较,不允许类型转换。
六、条件判断
- 转换规则:
- 以下值在条件判断中会被转换为false:
- 数值:0(包括-0)和NaN
- 字符串:""(空字符串)
- 布尔值:false
- 对象:null
- 未定义:undefined
- 实际应用:
小结
- 使用!!var1 === !!var2来判断变量是否相等,避免NaN的特殊情况。
- JavaScript 中有6个值会被转换为false:0、NaN、""、false、null、undefined。
- 弱类型和隐式转换可能带来一些意想不到的结果,因此在操作和判断时要格外小心。