我在学习JavaScript提升时写了一个例子。
var name = 'world';
(function(){
if(typeof name === undefined){
var name = 'Jack';
console.log('goodbye ' + name);
}else{
console.log('hello '+ name);
}
}
)();

在这个例子中,我得到了hello undefined
。令我困惑的是,由于name
未定义,为什么它根据goodbye undefined
声明没有记录if
?
谢谢!
答案 0 :(得分:2)
您可以直接检查undefined
。
var name = 'world';
(function () {
if (name === undefined) {
var name = 'Jack';
console.log('goodbye ' + name);
} else {
console.log('hello ' + name);
}
})();
console.log(name);

答案 1 :(得分:2)
你不必使用typeof,你可以直接检查名称=== undefined。
var name = 'world';
(function(){
if(name === undefined){
var name = 'Jack';
console.log('goodbye ' + name);
}else{
console.log('hello '+ name);
}
}
)();
答案 2 :(得分:1)
<RelativeLayout
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_alignParentBottom="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:src="@drawable/ic_devicescreenlogo"
/>
<TextView
android:id="@+id/version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:paddingBottom="5dp"
android:paddingStart="5dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/textunselected"
android:text="Version"/>
</RelativeLayout>
返回一个字符串。
typeof
typeof(undefined) === "undefined" //true
更多关于undefined === undefined //true
:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
答案 3 :(得分:0)
修复逻辑错误时,输出符合预期。
var name = 'world';
(function(){
if(typeof name === "undefined"){
var name = 'Jack';
console.log('goodbye ' + name);
}else{
console.log('hello '+ name);
}
}
)();
&#13;