一、例子1:在浏览器控制台直接输入下面代码查看结果
例子
{} + []
{} + 3
{} + "2"
{} + ""
{} + false
{} + true
{} + null
{} + undefined
{} + " "
{} + " "
{} + NaN
例子解析
{} + []//结果为0
{} + 3//结果为3
{} + "2"//结果为2
{} + ""//结果为0
{} + false//结果为0
{} + true//结果为1
{} + null//结果为0
{} + undefined//结果为NaN
{} + " "//结果为0
{} + " "//结果为0
{} + NaN//结果为NaN
把{}写在最前面,系统会认为它是 代码块,里面没有内容,它就会被忽略。
{} + 数值 === + 数值 相当于把数值转化为数字型值;
知识点:
1.能转化为0的其它值有:“” 、 “ ”、 [] 、 false 、 null
2.{}有两种涵义,一种是包围代码块的运算符,一种是放对象的符号,
把{}写在最前面,系统会认为它是 代码块,里面没有内容,它就会被忽略。
二、例子2:在浏览器控制台直接输入下面代码查看结果
例子
[] + {}
3 + {}
"2" + {}
"" + {}
false + {}
true + {}
null + {}
undefined + {}
" " + {}
" " + {}
NaN + {}
例子解析
[] + {}//结果为"[object Object]"
3 + {}//结果为"3[object Object]"
"2" + {}//结果为"2[object Object]"
"" + {}//结果为"[object Object]"
false + {}//结果为"false[object Object]"
true + {}//结果为"true[object Object]"
null + {}//结果为"null[object Object]"
undefined + {}//结果为"undefined[object Object]"
" " + {}//结果为" [object Object]"
" " + {}//结果为" [object Object]"
NaN + {}//结果为"NaN[object Object]"
//把{}写到运算符后面,系统认为它是引用值对象,运算符会对该对象进行隐式类型转换
//数值 + {} === 数值 + {}转化成的字符串
//相当于把{}转化为字符串型值;中间的 + 为字符串连接符
知识点:
把{}写到运算符后面,系统认为它是引用值对象,运算符会对该对象进行隐式类型转换
三、习题:在控制台输出下面表达式结果,想一想为什么
[] + {} == [] + {}
({} + []) === {} + []
{} + [] == {} + []
{} + "" === {} + " "
四、习题:在js文档中输出下面代码,查看结果,想一想为什么
console.log({} + []);
console.log({} + 3);
console.log({} + undefined);