JavaScript中的六种原始数据类型
- number:整数或小数
- boolean:布尔类型(true,false)
- null:空类型,值只有一个即null (但是使用typeof获取值为null的变量的类型得到的结果是object,因为是空对象)
- string:单引号或者双引号
- object:对象类型
- undefined:未定义,值只有一个即undefined
什么情况下的结果是undefined?- 变量声明但是没有赋值初始化
- 函数没有明确返回值但是接收了
number类型
- 数字类型有范围:最小值和最大值(Number.MAX_VALUE和Number.MIN_VALUE)
- 不要用小数去验证小数(精确度的问题)
- 无穷大和无穷小(Infinity和-Infinity)
- 不要用NaN去验证是不是NaN,应该使用isNaN()方法(两个NaN是不想等的)
string类型
- 常用属性:length得到字符串的长度即字符的个数
- 表示特殊字符:使用转义字符反斜杠"",如tab键"\t",反斜杠"\",双引号""",换行"\n",回车"\r"
- 字符串的拼接,可以使用+号(可能发生隐式转化,即自动类型转换)
类型转换
- 其他类型转数字类型(3种方式)
- parseInt(参数):转为整数
- parseFloat(参数):转小数(参数为小数的就显示小数,参数为整数的显示还是整数,参数为开头有数字的就显示开头的数字——就是可以不完全是数字的组合)
- Number(参数):要求更严格一点,不像前面两个方法是参数可以不是数字如字符串,只要字符串的最开头有字符串就会输出字符串中前面的数字,但是这个方法要求参数必须是数字(即可以完全转换为数字的)
- 其他类型转字符串类型
- 变量.toString() —— 变量必须是有意义的(不为空,不为undefined),否则会报错
- String(参数) —— toString()方法会用得比较多一点,保险一点使用String
- 其他类型转为布尔类型
- Boolean(参数) —— 计算机中非0的数全为true,0为false,空字符串为false,null为false,undefined为false
运算符
- 算数运算符:+,-,*,/,%
- 一元运算符:++,–
- 二元运算符
- 三元运算符
- 复合运算符:+=,-=,*=,/=,%=
- 关系运算符:==为不严格相等(类型可以不相等),===为严格相等(类型和值都相等),>,>=,<,<=
- 逻辑运算符:&&,||,!
算数运算符的优先级要高于逻辑运算符,赋值等号的优先级是所有操作符中最小的
字面量:把一个值直接赋给一个变量
一元运算符
- ++:自增 —— 前置(先己后人,就是先自身加一再参与运算)、后置(先人后己,就是先把原来的数值参与运算然后在自身加一)
- –:自减 —— 前置(同样先己后人,先自减在运算)、后置(先参与运算再自身减一)