我现在很困惑!JavaScript中的运算符.我的理解是!运算符仅对布尔运算.但是对我的一个答案的评论说它可以对任何东西进行操作并返回一个布尔值,这在我做了一些测试后恰好是真的.
alert(!undefined); //true
alert(!function(){}); //false
alert(!{}); //false
alert(!null); //true
alert(!()); //crash
alert(!"false"); //false
alert(!false)?;???????????? //true??????????????????
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我概括一下行为!运营商.
编辑
更令人困惑的事情:
?alert( new String() == ""); //true
alert(!""); //true
alert(! new String()); //false
Run Code Online (Sandbox Code Playgroud)
怎么样?