为什么赋值不返回undefined?

时间:2016-08-22 10:41:09

标签: typescript

如您所知,JavaScript会针对分配返回undefined,例如var a = 0;。但是,TypeScript与此事实不一致,并且似乎返回指定的值(0) - 但我无法在线找到任何有关此内容的信息。

例如,请参阅此代码段。

function f(): void {
	let l: number = 1;
	return (l = 2); // f() returns 2
}

alert(f());

我想了解这个决定背后的原因,并听取有关它的意见。

1 个答案:

答案 0 :(得分:0)

您的代码段包含return (l = 2)分配,而非return (var l = 2)(当然不是有效代码),前者将在JavaScript中返回2 ,TypeScript,或者实际上是C或Java。

变量声明 var l = 2是一个语句,但只有表达式具有值。