<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>隐私类型转换</title>
</head>
<body>
<script>
console.log(1 + "2"); // 因为+号右侧为字符串,所以将1转化成字符串再相加则为 "12"
console.log(1 + 2); // 两侧都为数字,则相加则为运算符相加 ,输出为 3
console.log([] + 1); // 存在复杂类型,将[]转化为字符串则为"",输入"1"
console.log([] + "3"); //存在复杂类型,将[]转化为字符串"",输出"3"
console.log({} + "1"); //右侧为字符串,将左侧转化为[object Object],相加则输出"[object Object]1"
console.log([] + {}); // 两侧都是复杂类型,将调用[]转为字符串类型"",{}转化为[object Object],输出为"[object Object]"
console.log([] + []); //两侧为复杂类型,[]转化为"",输出为""
console.log({} + {}); // 两侧为复杂类型,{}转化为[object Object],输出位"[object Object][object Object]"
console.log({} + []); //两侧为复杂类型,但是{}会被认为是一个空对象,直接执行0+[],输出为0
console.log([] == ![]); //![]输出为false,[]换转化为"",实质等于Number(false) === Number(""),输出true
console.log([] == []) //两者内存地址不一样,输出false
console.log({} == {}) //两者内存地址不一样,输出false
//复杂类型转化Number,先调用valueOf(),在调用toString()
</script>
</body>
</html>
版权声明:本文为weixin_44477373原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。