1、空单元格不必要也没有类型转换
2、null和undefined属于例外,当将它们用在期望是一个对象的地方都会造成一个类型错误(TypeError)异常,而不会执行正常的转换。
3、一个值转换为另一个值并不意味着两值相等。
显示类型转换
使用方法:Bealoon()、Number()、String()、Object()。。。
①、把null和undefined转换为对象,会抛出异常。
②、除了null、undefined转换之外的任何值都具有toString()
隐式类型转换
①、‘+’ :一个操作数是字符,它将会把另外一个操作数转换为字符串
②、一元‘+’:将操作数转为数字
+x //Number(x)
③、一元‘!’:将操作数转为布尔值取反
!!x //Bealoon(x)
转换的两种方式
1、toString()
toString 作用是返回一个反映这个对象的字符串
2、valueOf()
valueOf 这个方法的任务并未详细定义:
如果存在任意原始值,它就默认将对象转换为表示它的原始值。
对象是复合值,而且大多数对象无法真正表示为一个原始值,因此默认的valueOf()方法简单地返回对象本身,而不是原始值。
对象转为原始值
对象 一>布尔 :所有对象都转换为true
对象 一>字符串 :调用toString()。若无toString(),则调用valueOf();若无toString()和valueOf( ),则抛出异常
对象 一>数字 : 调用valueOf()。若无valueOf(),则调用toString();若无valueOf()和toString(),则抛出异常