在javascript中应用字符串方法的问题
我有一些简单的代码,但是得到了一个非常混乱的结果 下面是一个简单的函数:在javascript中应用字符串方法的问题,javascript,Javascript,我有一些简单的代码,但是得到了一个非常混乱的结果 下面是一个简单的函数: const test2 = () => { let containsBitcoin = false const str2 = "buy bitcoin" if (str2.includes('bitcoin')) { let containsBitcoin = true } return containsBitcoin } 但是当我使用console.log记录结果时
const test2 = () => {
let containsBitcoin = false
const str2 = "buy bitcoin"
if (str2.includes('bitcoin')) {
let containsBitcoin = true
}
return containsBitcoin
}
但是当我使用console.log记录结果时
console.log(test2())
我猜错了。我不明白为什么
这里出现了一个,因为您在条件内部重新声明了
containsBitcoin
,而不是更改其值,而外部作用域的containsBitcoin
的值仍然为false
consttest2=()=>{
设containsBitcoin=false
const str2=“购买比特币”
if(str2.includes(‘比特币’)){
containsBitcoin=true
}
返回容器输入
}
console.log(test2())
发生这种情况是因为您在条件内部重新声明containsBitcoin
,而不是更改其值,而外部作用域的containsBitcoin
的值仍然为false
consttest2=()=>{
设containsBitcoin=false
const str2=“购买比特币”
if(str2.includes(‘比特币’)){
containsBitcoin=true
}
返回容器输入
}
console.log(test2())
让containsBitcoin=true
--->containsBitcoin=true
@Yousaf或者让containsBitcoin=str2.includes('bitcoin')
如果@VLAZ right,则不带。OP的代码可以进一步简化:return str2.includes('bitcoin')
,但我不想建议另一种方法,我只想指出OP代码中的错误。@Yousaf TBH它可以简化为true
,因为字符串是静态的。但问题在于在块范围中声明一个新变量。解决方案是重复使用变量或根本没有块作用域(和重新声明)。let containsBitcoin=true
--->containsBitcoin=true
@Yousaf或者let containsBitcoin=str2.includes('bitcoin')
如果@VLAZ right。OP的代码可以进一步简化:return str2.includes('bitcoin')
,但我不想建议另一种方法,我只想指出OP代码中的错误。@Yousaf TBH它可以简化为true
,因为字符串是静态的。但问题在于在块范围中声明一个新变量。解决方案是重复使用变量,或者根本没有块作用域(和重新声明)。我正要写同样的东西,但你比我快。我正要写同样的东西,但你比我快。