我正在阅读我的javascript文件,我想到了两个问题:
1)我使用了26个文本字符串,其中一些在几个函数中重复出现。 所以我认为将所有这些声明为全球变量是否是一个好主意?
2)95%的代码是javascript,其余的是JQuery。逻辑非常简单。是否值得将我的所有JS代码转换为JQuery?
示例代码:
email = document.getElementById('email').value;
document.myForm.submit();
答案 0 :(得分:4)
将常量变量分组在一个位置通常是个好主意,因此它们只定义一次,没有重复,并且易于查看和修改。
但是,我更喜欢将字典分组为单个对象或模块。这将减少全局命名空间的混乱,表明变量已连接,并允许您更好地迭代和操作它们(如果您希望这样做)。与使用数组而不是x1,x2,...,xn变量背后的原因相同。
//setting up the strings
var strings = {
//string id : string value
'a' : 'a string',
'b' : 'another string'
};
//using the strings
console.log( strings.a );
console.log( strings.['a'] );
此外,jQuery只是一个Javascript库。考虑到你给我们的信息,我真的没有理由尝试转换代码(并冒险意外破解它)。
答案 1 :(得分:2)
1)如果你需要在任何地方访问这些字符串,最好只定义一个存储所有字符串的全局变量(可以是array
或object
),否则考虑将这些函数分组在一个闭包中(一个所谓的“立即自执行函数”),然后在创建的作用域内声明该数组(或对象)。 e.g。
(function() {
var hastrings = {
'string1' : 'value1',
'string2' : 'value2',
...
};
/* all functions using common strings here */
}());
2)这取决于:您应该考虑使用仅使用jQuery的构造编写多少LOC,但请记住,使用直接javascript可能会使某些指令更具性能(因为您总是会调用jQuery
功能)。所以没有明确的答案。它可能会有所不同,具体取决于代码的功能,复杂程度以及构造方式。
答案 2 :(得分:2)
1)根据您的场景,您可以声明为Global,我觉得全局变量写得比硬编码更好。
2)Jquery是一个javascript框架(ajax)
document.getElementById('email') is faster than $("#email")
所以javascript最好保留,看看你是否有任何复杂的代码,Jquery只需要很少的努力,然后就可以在那些地方使用。