Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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_Angularjs_Performance_Variable Declaration_Variable Initialization - Fatal编程技术网

我应该用默认值初始化JavaScript中的变量吗?

我应该用默认值初始化JavaScript中的变量吗?,javascript,angularjs,performance,variable-declaration,variable-initialization,Javascript,Angularjs,Performance,Variable Declaration,Variable Initialization,我有一个AngularJS控制器。我遵循顶部绑定变量的指南。我的问题是:在声明变量时使用默认值初始化变量是否会提高性能,或者会对性能产生负面影响 function someCtrl($scope) { var vm = this; vm.someVar = ''; // Should it rather be vm.someVar; ? } 我是在AngularJS的背景下问这个问题的。然而,这是一个一般的JavaScript问题 更新:以下情况如何 function s

我有一个AngularJS控制器。我遵循顶部绑定变量的指南。我的问题是:在声明变量时使用默认值初始化变量是否会提高性能,或者会对性能产生负面影响

function someCtrl($scope) {
    var vm = this;
    vm.someVar = '';    // Should it rather be vm.someVar; ?
}
我是在AngularJS的背景下问这个问题的。然而,这是一个一般的JavaScript问题

更新:以下情况如何

function someCtrl($scope) {
    var someVar = '';    // Should it rather be var someVar; ?
}
vm.someVar=''-应该是
vm.someVar

这既不是变量也不是声明

它是在
vm
对象上创建属性的赋值。相反,
vm.someVar
只是一个no-op(它什么也不做),应该全部删除


是的,如果要创建属性,需要对其进行初始化。您可以使用
未定义的
初始化它们,但最好使用与以后相同类型的默认值初始化它们。是的,在构造函数中创建属性(创建对象时)是一种很好的做法,而不是在事后添加属性。

您根本不需要初始化它,除非它是数组(稍后在其中推送一些值)、嵌套对象(写下属性)或某些硬编码值1。你能用
var-someVar
而不是
vm.someVar
上下文回答同样的问题吗?2.除了良好的实践之外,是否存在任何性能损失或增益(即使是最轻微的)?@AhsenKh
控制器中的此
与controllerAs语法一起用作作用域(基本上与
$scope.someVar
)。绑定到作用域的变量可以在HTML中显示为
{{someVar}}
。使用
var-someVar
也可以,但它不会附加到范围,因此您无法在中显示它HTML@AhsenKh1)我在使用变量的地方声明变量,所以我总是初始化它们。不过这并不重要。2) 是的,使用对象所需的所有特性创建对象,并且以后不更改其形状对性能更有利。