Javascript 什么';我的try/catch代码有什么问题?

Javascript 什么';我的try/catch代码有什么问题?,javascript,try-catch,Javascript,Try Catch,我对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) } 将true分配给tryThis,其计算结果为(如上@Tibrogargan所述)分配给tr

我对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)
}
true
分配给
tryThis
,其计算结果为(如上@Tibrogargan所述)分配给
true
。相反:

 if (tryThis = true) {
您希望比较这些值。使用此行:

var tryThis = false
try {
  if (tryThis = true) {
    console.log("Why does this get printed?")
  }
} catch(e) {
  console.log("The error is", e)
}
 if (tryThis === true) {
true
分配给
tryThis
,其计算结果为(如上@Tibrogargan所述)分配给
true
。相反:

 if (tryThis = true) {
您希望比较这些值。使用
==

 if (tryThis === true) {
这只是为了帮助您理解如何比较布尔值 当需要在布尔值之间进行比较时,不需要这样做:
tryThis===true
,因为这是不必要的。

// this is actually assigning `true` to `tryThis`
if (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
      ^
 tryThis === false
         ^
如果要将布尔值与false进行比较,请不要这样做:

var tryThis = false
try {
  if (tryThis === true) {
              ^
var tryThis = false
try {
  if (tryThis) { // this is the same as tryThis === true or tryThis !== false
      ^
 tryThis === false
         ^
相反,请使用否定运算符,因此请执行以下操作:

var tryThis = false
try {
  if (tryThis === true) {
              ^
var tryThis = false
try {
  if (tryThis) { // this is the same as tryThis === true or tryThis !== false
      ^
 tryThis === false
         ^
这只是为了帮助您理解如何比较布尔值 当需要在布尔值之间进行比较时,不需要这样做:
tryThis===true
,因为这是不必要的。

// this is actually assigning `true` to `tryThis`
if (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
      ^
 tryThis === false
         ^
如果要将布尔值与false进行比较,请不要这样做:

var tryThis = false
try {
  if (tryThis === true) {
              ^
var tryThis = false
try {
  if (tryThis) { // this is the same as tryThis === true or tryThis !== false
      ^
 tryThis === false
         ^
相反,请使用否定运算符,因此请执行以下操作:

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

将变量的值设置为true始终为true。(
tryThis=true
)而不是(
tryThis===true
),或者可以说是
(true==tryThis)
,甚至只是
(tryThis)
。投票结束话题:我不明白你的问题。您的try-catch语法正常。您永远无法打印“错误是”,因为您的代码中没有抛出错误。@Tibrogargan实际上,赋值返回的是
未定义的
,这是错误的,而不是
真的
@MattMorgan Uh。。。在控制台中对此进行评估:
if(foo=true){console.log(“true”)}
My bad。如果只执行赋值,则返回未定义的
。将变量的值设置为true始终为true。(
tryThis=true
)而不是(
tryThis===true
),或者可以说是
(true==tryThis)
,甚至只是
(tryThis)
。投票结束话题:我不明白你的问题。您的try-catch语法正常。您永远无法打印“错误是”,因为您的代码中没有抛出错误。@Tibrogargan实际上,赋值返回的是
未定义的
,这是错误的,而不是
真的
@MattMorgan Uh。。。在控制台中对此进行评估:
if(foo=true){console.log(“true”)}
My bad。如果只执行赋值,则返回未定义的