数据类型的转换
数据类型的转换
当计算机所给的数据类型不是我们所要的类型的时候 这时候需要数据类型的转换
转换方式
强制转换
1 字符转数值
parseInt(数据或变量)
从左到右依次检测 当遇到非数字的字符 停止转换
如果有小数点 将会忽略小数点后边的内容 其实就是把小数点看做成了非数字的字符 停止转换了
如果第一个就是非数字的字符 则输出NaN
NaN not a number 不是一个数字 任何不是数字的字符都是NaN
NaN 是一个不是数字的数值型数据
NaN 非法的数值运算结果
parseFloat()
从左到右依次检测 当遇到非数字的字符 停止转换
如果有小数点 会把小数点后面的内容进行转换 最多小数点后16位
如果第一个就是非数字的字符 则输出NaN
Math.round()
不是专门用来字符转数值的 提供了一种方法
严格转换:只要字符中包含非数字的字符 就是NaN
取整的 取就近的整数 3.5 ,3.6 取 4 -3.5 取 -3 -3.6取-4
Number()
不是专门用来字符转数值的
严格转换: 只要字符中包含非数字的字符 就是NaN
如何选择? 按需选择
数值转字符
.toString()
直接转换 相当于把数值加了引号
.toFixed(n)
保留几位小数 n就等于几 遵循四舍五入原则
其他转布尔
布尔转数值
其他转字符
隐式转换(系统默认自动转换)
算数运算
只要+号左右两边出现一个字符型数字 其结果一定为字符
算数运算为 - * / % 时 系统会把字符默认转化为数值然后进行计算 结果一定为数值
关系运算
< > <= >= != == 这些运算当出现有一个为数值时 会发生隐式转换 把另一方转化为数值进行比较
当两边都为字符型数字时 会逐位比较 一有结果就停止
!== === 进行关系运算 不会出现隐式转换
数据运算符
数据的运算符
算术运算符
+ 加法 - 减法 * 乘法 / 除法 % 取余
总结出 当算数运算为加法时 只要存在一个字符型数字 运行的结果就是拼接 将数据组合起来 比如 a=10 b="2" 结果 102
只要+号左右两边出现一个字符型数字 其结果一定为字符
当算数运算为 - * / % 时 只要数据包含字符型数字时 系统默认会把字符转成数值 然后进行计算 进行了隐式转换
算数运算为 - * / % 时 系统会把字符默认转化为数值然后进行计算 结果一定为数值
关系运算符 结果为布尔值
< 大于 > 小于 >= 大于等于 <= 小于等于
!= 不等于 !== 不全等 数值不等或类型不等
== 等于 === 恒等于 数值相等且类型相等
总结出
1 > < >= <= != == 关系运算中 只要一方为数值 系统就会把进行隐式转换 把字符转换为数值 然后在进行比较 比较的结果为布尔值
2 !== 不全相等 值不相等或类型不相等 满足任一条件就为ture
=== 恒等 值相等且类型相等 需要同时满足值相当并且类型相等 不会进行隐式转换
3 当关系运算符两边都是字符时 逐位比较 有结果就停止 即10 中的1 和 4比较
逻辑运算符
或 ||
只要其中一边出现true 则结果为true
且 &&
必须两边都为true 则结果为true
非 !
取反
赋值运算符
= 把等号右边的内容 存到等号左边的变量中
+= -= *= /= %=
总结
等号右边的数据会被赋值到等号左边的变量中
当变量中有值存在是 后写的会覆盖原来写的
先计算 再赋值
一元运算符
++ --
自增
++a 前自增 先计算 后使用
a++ 后自增 先使用 后计算
自减
--a 前自减 先计算 后使用
a-- 后自减 先使用 后计算