我的try / catch代码出了什么问题?

时间:2018-02-04 22:55:10

标签: javascript try-catch

var tryThis = false
try {
  if (tryThis = true) {
    console.log("Why does this get printed?")
  }
} catch(e) {
  console.log("The error is", e)
}

我对Javascript的try / catch语句的理解肯定存在问题。我是新手,所以任何帮助都会受到赞赏!

2 个答案:

答案 0 :(得分:3)

这一行:

 if (tryThis = true) {

true分配给tryThistrue评估为(如上文评论的@Tibrogargan) if (tryThis === true) { 。代替:

===

您想要比较这些值。使用x

答案 1 :(得分:0)

// this is actually assigning `true` to `tryThis`
if (tryThis = true) 

这只是为了帮助您了解如何比较布尔值

当你需要在布尔值之间进行比较时,你不需要这样做:tryThis === true,因为它是不必要的。

var tryThis = false
try {
  if (tryThis === true) {
              ^

只需使用布尔值,如下所示:

var tryThis = false
try {
  if (tryThis) { // this is the same as tryThis === true or tryThis !== false
      ^

如果要将布尔值与false进行比较,请不要这样做:

 tryThis === false
         ^

而是使用否定运算符,因此,请执行以下操作:

 !tryThis
 ^