JavaScript是一种弱类型语言,它所体现的万物皆对象在这一点上体现的十分明显
JavaScript五种数据类型
基本类型
1.number 数字
2.String 字符串
3.boolean布尔值
4.null空对象
5.undefined 未定义
对象
object 包括:
1.function
2.Array
3.Date
等等
隐式转换
虽然作为一种弱类型语言,JavaScript的便捷性体现的十分明显,可是在隐士转换的时候,却是比较复杂:
1.加减运算符
“32” + 32 = “3232”;
“32” - 2 = 30;
string加上number变为string,string减去number变成数字。
利用这一点可以很方便的转换类型,比如一个字符串num - 0会变成number,一个数字+“”空字符串会变成string。
2.==和===
等于和严格等于,在JavaScript中用到的非常多。
等于
“1.23” == 1.23
0 == false
null == undefined
new Object() == new Object()
[1,2] == [1,2]
以上表达式均相等!
等于==操作符可以认为是一种值比较,如果运算符两边类型不同,会尝试将其转换为一致然后再做判断。
严格等于
null === null
undefined === undefined
以上表达式均为true。
new Object() === new Object()会返回false,这点和Java中的引用比较相同。
特殊的,NaN === NaN会返回false。NaN 和任何对象都不相等。
严格等于会先判断类型,如果类型不同则直接返回false。相当于Java中的==操作符。
==中的数据转换
number == stirng 转为number
boolean == number 转为number
object == number|string 会尝试将对象转为比较的基本类型