1, undefined 和 null
undefined 是 没有正确赋值时,JavaScript赋值的默认值
null 是 一种正确的赋值,表示变量中存储的数值是 空
2, 数据类型的转化
在特定的情况下,程序执行需要特定的数据类型
其他数据类型会转化为指定的数据类型
根本原因是,JavaScript变量中存储的数据类型,是没有限制的
自动转化:JavaScript自动执行的数据类型转化
其他类型转化为布尔类型
if判断 逻辑运算符
false : 0 '' undefined null NaN
其他都是true
其他类型转化为字符串类型
在执行字符串拼接时
true false undefined null NaN ---> 字符串
数值类型 ---> 数值字符串
数组 ---> 获取数据数值,组成字符串,以逗号间隔
函数 ---> 将所有函数代码转化为字符串
对象 ---> 所有对象转化为固定内容 [object Object]
其他类型转化为数值类型
算术运算 特别注意 加法
其他运算:
true 1
false 0
null 0
undefined,NaN,数组,函数,对象 ---> NaN
字符串: 符合数组规范的,转化为对应的数值
不符合数字规范的,转化为NaN
加法运算
数组,函数,对象,字符串 ---> 转化为字符串,执行字符串拼接操作
强制转化
1, Boolean()
转化为布尔类型
原则与自动转化原则完全相同
不会改变变量中存储的原始数值
2, String()
转化为字符串类型
原则与自动转化原则完全相同
不会改变变量中存储的原始数值
3, Number()
转化为数值类型
原则与自动转化原则完全相同
不会改变变量中存储的原始数值
4, 变量.toString()
转化为字符串类型
原则与自动转化原则完全相同
不会改变变量中存储的原始数值
可以设定转化的进制,只针对于数值类型起作用,参数范围 2-36
5, parseInt()
获取整数部分
获取数据中的整数部分
不会改变变量中存储的原始数值
浮点数只获取整数部分
字符串'2e3' 只获取2
5, parseFloat()
获取浮点数部分
获取数据中的浮点数部分
不会改变变量中存储的原始数值
浮点数可以完全获取
字符串'2e3' 转化为数值,获取所有
6, 小技巧
数值字符串转化为数值类型的方法
(1), parseInt() parseFloat() Number()
(2), 非加法的不影响数值大小的运算
-0 *1 /1
(3), 获取正数/负数部分
+变量 -变量
获取 属性值的数值部分 不要px单位
parseInt(属性值);
2 , 运算符
算术运算符
+ - * / % **
% 运算结果是 两个数相除的 余数
结果的符号和被除数的符号相同
整除,余数是0
** 第一个数是底数,第二个数是指数
指数不能是负小数
赋值运算符
将右侧的执行结果,按照赋值运算符的运算原则,与左侧变量进行赋值运算
问题: 1,先计算右侧的执行结果
2,在变量存储的原始数值的基础上,进行运算
先 原始变量数值 后右侧运算结果
3,最终的结果要赋值给变量本身
4,变量必须被正确的定义和赋值
比较运算符
> < >= <=
== 等于比较/宽松比较
只比较数值,不看数据类型
如果数据类型不同,会自动转化为相同的数据类型,再比较数据数值
=== 全等比较/严格比较
数据类型和数值必须都相同
!= 不等判断:执行原则与 == 完全相同,只是结果相反
!== 不全等判断:执行原则与 === 完全相同,只是结果相反