数值 number
123 // 整数
123.12 // 浮点数
1.123e3 // 科学技术法
-123 // 负数
NaN // not a number
Infinity // 表示无限大
字符串
'abc'
"abc"
布尔值
true // 真
false // 假
逻辑运算
&& // 两个都为真,结果为真
|| // 有一个为真,结果为真
! // !真即假,!假即真
比较运算*
= // 赋值符号
== // 等于(类型不一样,值一样,结果为true)
=== // 绝对等于(类型一样,值一样,结果为true)
这是一个 JS 的缺陷,坚持不要使用 == 比较!
注意:
- NaN === NaN 结果为 false,这是因为 NaN 与所有值都不相等,包括自己。
- 如果需要比较,只能通过 isNaN() 函数来判断这个值是否是 NaN。
浮点数问题:
console.log( (1/3) === (1-2/3) ) // 结果为 false
尽量避免使用浮点数进行运算,存在精度问题!
null 和 undefined
- null:空
- undefined:未定义,当使用一个未定义的变量会在控制台报错
数组
Java 的数组必须是相同类型的数据,JavaScript 中不需要这样。
// 尽量使用[],保证代码的可读性
var arr = [1, 2, 3, 4, 5, 'hello', null, true];
// 也可以这样定义
new Array(1, 2, 3, 4, 5, 'hello', null, true);
取数组下标:如果越界了,会 undefined。
对象
对象大括号,数组是中括号。每个属性之间使用逗号隔开,最后一个不需要添加。
// Person person = new Person(1, 2, 3, 4, 5);
var person = {
name: "mary",
age: 3,
tags: ['js', 'java', 'web', '...']
}
取对象的值
person.name
> "mary"
person.age
> 3