这是一个非常基本的问题,只是为了满足我的好奇心,但有没有办法做这样的事情:
if(obj !instanceof Array) {
//The object is not an instance of Array
} else {
//The object is an instance of Array
}
Run Code Online (Sandbox Code Playgroud)
这里的关键是能够使用NOT!在实例面前.通常我必须设置它的方式是这样的:
if(obj instanceof Array) {
//Do nothing here
} else {
//The object is not an instance of Array
//Perform actions!
}
Run Code Online (Sandbox Code Playgroud)
当我只想知道对象是否是特定类型时,必须创建一个else语句有点烦人.
因此,在javascript中对null和undefined的实现进行大讨论/辩论/讨论之后,我想让某人解释实现背后的原因以及它们在某些情况下的不同之处.我发现一些特别的问题令人不安:
null == undefined 评估为 truenull + 1等于1但undefined + 1相等NaNif(!null)计算结果为true并if(null)计算结果为false,但null == false计算结果为false.我已经阅读了规范并且我知道如何达到结果,我正在寻找规范这个规范的范例和原因.其中一些点,特别是第二点,给出第一点,感觉非常不一致.
我使用不等号将false转换为true但它总是给出错误.我用0和1尝试过它,工作正常.此外,当我将值"False"更改为"true"时,它也正在工作,但问题仅在于"假".
<script type="text/javascript">
var test= "False";
alert(!test)
</script>
Run Code Online (Sandbox Code Playgroud)