一、变量名
- 定义规则:
- 变量名只能以字母和
$_
两个字符开头,后面可以包括数字。 - 尽量不要使用其他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
。 - 弱类型和隐式转换可能带来一些意想不到的结果,因此在操作和判断时要格外小心。