JS中的变量
-
简单数据类型
-
数字型 number
-
字符型 string
-
布尔型 boolean
-
未定义 undefined 变量声明不给值默认为undefined
-
空对象 null
-
复杂数据类型
-
数据类型检测 typeof()
- 会把null检测为object,不准确
数据类型转换
-
Number()
-
字符串:空字符串或者空白字符串为0;非空不为纯数字转化为NAN;
-
布尔类型·:true为1 false为0;
-
undefined:NAN
-
null:0
-
运算符和字符串 如:+‘123’会转化为数字型的123 或者‘123’-0
-
paserInt:‘12.9px’ -> 12 会读取字符串直到第一个非数字出现,将读取到的数字转化为数字型
-
paserfloat: '12.9px' ->12.9 同上
隐式转换:-,,/等运算 如‘123’-2 则会把‘123’转换为数字型123
-
-
String()
-
数字加空字符串会转化为字符串类型(只要加号任意一侧存在字符串,则该加号会被理解为字符串拼接)
-
toString()方法,undefined和null没有该方法
-
-
Boolean()
-
只有 “0/NaN/null/undefined/空字符串” 最后是false,其余的都是true
-
数字 除了0为false,其他都为true
-
-
字符串 只有空字符串为false,空白字符串为true
-
undefined 转为false
-
null 转为false
-
!undefined 表示true,是一种隐式转换 还有!!undefined 表示取反再取反,所表示的布尔值没有改变。
-
-
运算符
-
+号,任何一侧有字符串都会被解析为字符串拼接
-
-,*,/,%都正常执行,‘123’-2 中的字符串会被解析为数字型,如果无法计算就是NAN
-
+=,-=,*=,/=,%=
-
比较运算符<,>,<=,>=,==,===(区分数值类型),!=,!==
-