webveuje/javascriptpress/3.javascript基础.md
2021-01-06 09:00:36 +08:00

2.2 KiB

数据类型转换

显式类型转换

什么叫显示类型转换? 就是手动用代码转换的时候叫显示 先看一下如何转换

var num = 8;
alert(typeof num);
num = String(num);
alert(typeof num);

创建的时候是number 使用String 转换之后就成了字符串 这就是显示转换

那么转化有哪几个呢?

  • Strung
  • Number
  • Boolean

这三个 用法跟上面一样

number

转换number的时候注意点

  • 只有是数字开头的才会被转换 不是则是nan
  • 多个小数点之后会是nan
alert(Number("123abc")) // 123
alert(Number("000112")) // 112
alert(Number("1.2")) // 1.2
alert(Number("1.2.3")) // NaN
alert(Number("baa1212")) // NaN
alert(Number("")) // 0

nan

nan 代表不是数字 nan

string

转化为字符串注意点

  • obgect类型会转化为 "[Object obgect]"

例如

alert(String(1233)) // 1233
alert(String({})) // [Object obgect]
alert(String([1,2,3])) // 1,2,3
function p(){alert(123)}
alert(String(p)) //function p(){alert(123)}

Boolean

转换为Boolean 类型 非0 的数字和非空的字符串都是true 空对象和空数组都是true

例如

alert(Boolena("")) // false
alert(Boolena("0")) // true
alert(Boolena("123")) // true
alert(Boolena([])) // true
alert(Boolena({})) // true
alert(Boolena(0)) // false
alert(Boolena(1)) // true
alert(Boolena(2)) // true

隐式类型转换

+

两个东西相加的时候 如果一侧为string 类型 将另一侧转化为string 进行拼接 如果一侧为对象数组或函数 也会转化成字符串进行拼接 如果除了上面的类型之外的相加 都会转化为数字进行相加 (boolena)

  • 1 + "1" = "11"
  • "1" + 1 = "11"
  • "1" + [1,2] = 212
  • [1,2] + [1,2] = 1,21,2

- * /

将所有的都转化为数字 进行数学运算

剩余的查看这个页面

==

判断两个变量或者值是否是相等的

if(1 == 1){
alert("相等")

}

在程序中都是用== 作为相等 因为一个 = 是赋值 所以判断的时候得用 两个 =

作业

  • 将 "123" 转化为number类型
  • "123" == 123 会将两边转化为什么类型
  • undefined == NaN 是true 还是false