在使用时或在申报时铸造变量

时间:2015-01-19 16:48:09

标签: javascript casting

关于最佳实践的内部辩论,我希望一些经验丰富的人能够为“为什么”而不仅仅是“你应该......”。

仅在初始化变量(a)或(b)初始化变量时(每次使用它时)之间存在功能差异。

一个。

var a = 1;
var b = 1;
... potential other code ...
var c = a + b;

var msg = '';
... potential other code ...
echo msg;

VS

var a = 1;
var b = 1;
... potential other code ...
var c = int( a ) + int( b );

var msg = '';
... potential other code ...
echo trim( msg );

一位同事并不喜欢所有“额外”的函数调用来混乱他的代码,他声称有一个不需要的开销 - 除非你正在处理用户输入,即便如此你只需要'当您将用户输入放入变量

时,转换'或运行一次 每次我使用变量时,我都会采取相反的立场,特别是在它进入数据存储之前,但是当我正在显示时,我甚至成为了这种操作的支持者。以任何方式使用var。我唯一一次咬我的是做长浮点数学(取决于演员的操作方式)。

我想我的是,如果我期待一个数值,或者;在上面的例子中,是一个整数。初始化上的转换工作正常,但在我在任何时候使用变量之前,我想使用我期望的类型。所以在使用时铸造似乎是谨慎的。在松散类型的语言中尤其如此。

我可以对此有所了解吗?谢谢

1 个答案:

答案 0 :(得分:0)

这样做没有任何意义。如果它是int那么它就是int,直到它发生变化。

是的,您需要始终检查来自用户的信息。但是没有必要弄乱你的代码并使其工作变得如此不方便。要使用,阅读此代码将是一个地狱。此外,您还在浏览器的解释器上添加了一些负载,使脚本更大,工作更慢。