Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用或声明时强制转换变量_Javascript_Casting - Fatal编程技术网

Javascript 在使用或声明时强制转换变量

Javascript 在使用或声明时强制转换变量,javascript,casting,Javascript,Casting,在关于最佳实践的内部辩论中,我希望一些有经验的人能够插话“为什么”,而不仅仅是“你应该……” (a)仅在初始化变量时强制转换变量,或(b)在初始化变量时以及每次使用变量时强制转换变量,两者之间是否存在功能上的差异 A vs B 一个同事不喜欢所有的“额外”函数调用使他的代码变得混乱,他声称有一种开销是不需要的——除非你处理的是用户输入,即使这样,当你将用户输入放入变量时,你只需要“转换”或操作一次 我的立场正好相反,每次使用变量时,尤其是在变量进入数据存储之前,我都想“强制转换”,但我已经成为了

在关于最佳实践的内部辩论中,我希望一些有经验的人能够插话“为什么”,而不仅仅是“你应该……”

(a)仅在初始化变量时强制转换变量,或(b)在初始化变量时以及每次使用变量时强制转换变量,两者之间是否存在功能上的差异

A

vs

B

一个同事不喜欢所有的“额外”函数调用使他的代码变得混乱,他声称有一种开销是不需要的——除非你处理的是用户输入,即使这样,当你将用户输入放入变量时,你只需要“转换”或操作一次

我的立场正好相反,每次使用变量时,尤其是在变量进入数据存储之前,我都想“强制转换”,但我已经成为了一个支持者,甚至在以任何方式显示或使用变量时,我都会做这种类型的操作。我唯一一次有这种感觉是在做长浮点运算时(取决于cast的操作方式)

我想我的想法是,如果我期望一个数值,或者;在上面的示例中,是一个整数。初始化时的强制转换工作得很好,但是在任何时候使用变量之前,我希望使用我期望的类型。因此,在使用时铸造似乎是谨慎的。在松散类型语言中尤其如此


我能想一想吗?谢谢

这样做没有真正意义。如果它是
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 );