//隐式转换,通过运算符把一个类型隐式地转化为另一个类型
console.log(1+'1')//+可以是加法运算符也可以是字符串拼接符号
console.1og(1 -'1')//-只能是减法运算符
console.log(!!0,!!", !!null, !!undefined,!![],!!{})//!该符号是取反运算符 falsy的值有哪些:
0,", null, undefined
console.log(100 +'' )//数值转化为字符串
console.log(!!100)// 数值转化为布尔值
console.log( '200'-0)//字符串转化为数值
console.log(!!'200')//字符串转化为布尔值
console.log(true - 0)//布尔值转化为数值 true会被转化为1, false会转化为0
console.log(true + '')/布尔值转化为字符串
/**
==在运算时会先进行隐式转换,然后再比较值
===直接对两边的值和类型做比较
a || b短路或,求真 如果a为真,返回a,如来a为假,返回b
a && b短路与,求假 如果a为真,返回b,如果a为假,返回a
**/
//隐式转换
var a ={
num: 1,
valueOf(){
return a.num++
}
}
if(a==1 && a==2 8& a==3){
console.log('我被打印了')
}
深拷贝:js中的实现方式就是通过循环+递归的方式
隐式转换和深拷贝
最新推荐文章于 2024-07-12 16:27:40 发布