Javascript 在if条件中附加一个布尔值怎么样?
我发现了以下javascript代码:Javascript 在if条件中附加一个布尔值怎么样?,javascript,Javascript,我发现了以下javascript代码: function testScope(){ var myTest = true; if(true){ var myTest = "I am changed!" } } testScope(); // will alert "I am changed!" 我真的很困惑,布尔值是附加在if条件中的,而不是if(myTest),因此我认为这可能是错误的,但当在if条件if(false)中更改为false时,它会发出tru
function testScope(){
var myTest = true;
if(true){
var myTest = "I am changed!"
}
}
testScope(); // will alert "I am changed!"
我真的很困惑,布尔值是附加在if条件中的,而不是
if(myTest)
,因此我认为这可能是错误的,但当在if条件if(false)
中更改为false时,它会发出true警报。我以前从未见过这种情况。您只区分全局范围和函数范围。
如果条件和循环没有自己的作用域,那么当if语句中的条件为true时,函数作用域变量myTest将被覆盖(因为它在同一作用域中被重新定义)if(true)
应始终为true,因为它不是变量
布尔对象:
布尔对象表示两个值:true
或false
如果布尔对象没有初始值,或者如果传递的值是以下值之一:
0
-0
null
""
false
undefined
NaN
对象被设置为false。对于任何其他值,它都设置为true(即使使用字符串“false”) if(true)计算为true的原因是它是条件语句的“结果”
var x = 1;
var y = 2;
if (x < y) { ... }
因此,您可以将其归结为静态条件,因为不存在变量条件。您关注的是代码片段的错误部分:它没有尝试演示
if(true)
语句。它试图展示javascript如何处理变量声明
function testScope(){
var myTest = true; // <- variable declared at function level
if(true){
var myTest = "I am changed!" // <- variable declared at 'if' block level
}
}
testScope(); // will alert "I am changed!"
函数testScope(){
var myTest=true;//变量名是相同的。var myTest=true;var myTest=“我被改变了!”那么,您在这里面临的问题是什么?请参阅问题标题,即我需要更多的说明。当没有alert()
语句时,它将如何发出警报?我不理解您的问题,if(true)
将始终正确,因为这不是一个变量。不客气。有时很容易在示例的错误部分卡住,您只需要快速解释:)
function testScope(){
var myTest = true; // <- variable declared at function level
if(true){
var myTest = "I am changed!" // <- variable declared at 'if' block level
}
}
testScope(); // will alert "I am changed!"