上一篇: javascript数据类型
下一篇: javascript运算符
JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。
如,使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算
在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换
示例
<script>
let num = 10 // 数值
let num2 = '2' // 字符串
// 结果为 102
// 原因是将数值 num 转换成了字符串,相当于 '13'
// 然后 + 将两个字符串拼接到了一起
console.log(num + num2)
// 结果为 8
// 原因是将字符串 num2 转换成了数值,相当于 2
// 然后数值 10 减去 数值 2
console.log(num - num2)
let x = prompt('请输入一个数字')
let y = prompt('请再输入一个数字')
alert(x + y);
</script>
规则:
+ 号两边只要有一个是字符串,都会把另外一个转成字符串
除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型
编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换
示例
<script>
let t = '12'
let f = 8
// 显式将字符串 12 转换成数值 12
t = Number(t)
// 检测转换后的类型
console.log(typeof t);
console.log(t + f) // 结果为 20
let num = 12.456
num1 = parseInt(num)
console.log(num1) //结果为12
num2 = parseFloat(num)
console.log(num2) //结果为12.456
// 并不是所有的值都可以被转成数值类型
let str = 'hello'
// 将 hello 转成数值是不现实的,当无法转换成
// 数值时,得到的结果为 NaN (Not a Number)
console.log(Number(str))
</script>
转换为数字型
Number(数据)
转成数字类型
如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字
NaN也是number类型的数据,代表非数字
parseInt(数据)
只保留整数
parseFloat(数据)
可以保留小数
上一篇: javascript数据类型
下一篇: javascript运算符
*声明:内容来源于网络收集和整理,版权归原著所有,如来源信息有误或侵犯权益,请联系站长作修改和删除处理。