昨天看到这两个操作符 引发一个问题:
> typeof []
< "object"
> typeof {}
< "object"
> [] instanceof Object
< true
> {} instanceof Object
< Uncaught SyntaxError: Unexpected token instanceof
纠结在为什么 {} instanceof Object会报语法错误
因为instanceof 的前操作数 需要是一个对象,
但是{} 同时也是空的代码块,所以js无法识别{}是代码块还是空对象,
--- js 语句优先
优先识别为代码块就报错了。。。
如果
> ({}) instanceof Object
< true
分组操作符()控制了表达式中计算的优先级
分组操作符()优先级最高,强制表达式运算