!foo 和 typeof foo === “undefined” 之间的区别
Difference between !foo and typeof foo === "undefined"
这有什么区别:
if(!foo) {
...
}
而这个:
if(typeof foo === "undefined") {
...
}
我见过一些代码试图将这两个语句视为相同的语句,但是在这样做时遇到了问题。我一直在用AngularJS做这样的事情:
var property = {
value: $scope.foo //$scope.foo may or may not have been defined above, depending on contexts
...
};
func(property);
function func (property) {
if(!property.value) {
//This doesn't get executed, even if $scope.foo was never defined
}
}
在我看来,(!foo)
!== (typeof foo === "undefined")
这是对的吗?
下面是一个它们不相同的示例:
var foo = false;
if(!foo) {
alert('!foo');
}
if(typeof foo === "undefined") {
alert('undefined');
}
仅满足第一个条件。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- d3中堆栈函数和嵌套函数之间的差异
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- !foo 和 typeof foo === “undefined” 之间的区别
- var foo=function(){..}()和var foo=(function(){..}())之间的区别
- Boolean(foo.bar)和!!之间的区别是什么!!foo.bar
- 在Backbone中,model.get('foo')和model.attributes.foo之间的任
- Javascript -这两者之间有区别吗?Foo和this.prototype.foo
- Object.create(foo)和new Object(foo)之间的区别
- 在javascript中,如果foo是一个函数,那么foo()和foo之间的区别是什么?当它们作为参数传递给高阶函数时,
- a之间的差异==='foo'和'foo'==javascript中的a
- foo.join和foo.resolve之间的区别?在webpack中