Javascript 在使用或声明时强制转换变量
在关于最佳实践的内部辩论中,我希望一些有经验的人能够插话“为什么”,而不仅仅是“你应该……” (a)仅在初始化变量时强制转换变量,或(b)在初始化变量时以及每次使用变量时强制转换变量,两者之间是否存在功能上的差异 A vs B 一个同事不喜欢所有的“额外”函数调用使他的代码变得混乱,他声称有一种开销是不需要的——除非你处理的是用户输入,即使这样,当你将用户输入放入变量时,你只需要“转换”或操作一次 我的立场正好相反,每次使用变量时,尤其是在变量进入数据存储之前,我都想“强制转换”,但我已经成为了一个支持者,甚至在以任何方式显示或使用变量时,我都会做这种类型的操作。我唯一一次有这种感觉是在做长浮点运算时(取决于cast的操作方式) 我想我的想法是,如果我期望一个数值,或者;在上面的示例中,是一个整数。初始化时的强制转换工作得很好,但是在任何时候使用变量之前,我希望使用我期望的类型。因此,在使用时铸造似乎是谨慎的。在松散类型语言中尤其如此Javascript 在使用或声明时强制转换变量,javascript,casting,Javascript,Casting,在关于最佳实践的内部辩论中,我希望一些有经验的人能够插话“为什么”,而不仅仅是“你应该……” (a)仅在初始化变量时强制转换变量,或(b)在初始化变量时以及每次使用变量时强制转换变量,两者之间是否存在功能上的差异 A vs B 一个同事不喜欢所有的“额外”函数调用使他的代码变得混乱,他声称有一种开销是不需要的——除非你处理的是用户输入,即使这样,当你将用户输入放入变量时,你只需要“转换”或操作一次 我的立场正好相反,每次使用变量时,尤其是在变量进入数据存储之前,我都想“强制转换”,但我已经成为了
我能想一想吗?谢谢这样做没有真正意义。如果它是
int
,那么它就是int
,直到它改变为止
是的,您需要始终检查来自用户的信息。但是没有必要把你的代码弄得乱七八糟,让它的工作变得如此不方便。与之合作,阅读此代码将是地狱。您还可以在浏览器的解释器上添加一些负载,使脚本变大,工作速度变慢。什么是int()
?你为什么不干脆+a
和+b
?考虑到a
和b
已经是整数,为什么您觉得需要执行额外的解析?另外,echo
是PHP,而不是JavaScript——也许这也是int()
的来源?它是JavaScript,而不是PHP。(尽管两者的答案都是一样的)
var a = 1;
var b = 1;
... potential other code ...
var c = a + b;
var msg = '';
... potential other code ...
echo msg;
var a = 1;
var b = 1;
... potential other code ...
var c = int( a ) + int( b );
var msg = '';
... potential other code ...
echo trim( msg );