eval 将会返回对最后一个表达式的求值结果

发布时间 2023-11-15 21:41:17作者: 龙陌

JS中存在块语句,那么请问以下块语句的集合最终输出的值是多少?

eval(`{
      1 + 3;
      a = 2;
      x:break x; 
      3;
      4 + 6;
      ; 
  }`)

A
4

B
undefined

C
10

D
3

正确答案:C

在块中多个语句执行时,一般后者会覆盖前者,但是;和break的返回值都是empty,无法覆盖任何值。而3覆盖了4,10最终又覆盖了3,因此最终的结果是10。