我应该用默认值初始化JavaScript中的变量吗?
我有一个AngularJS控制器。我遵循顶部绑定变量的指南。我的问题是:在声明变量时使用默认值初始化变量是否会提高性能,或者会对性能产生负面影响我应该用默认值初始化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
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) 是的,使用对象所需的所有特性创建对象,并且以后不更改其形状对性能更有利。