在这篇文章里,我将分享一些JavaScript的技巧、秘诀和最佳实践,除了少数几个外,不管是浏览器的JavaScript引擎,还是服务器端JavaScript解释器,均适用。
本文中的示例代码,通过了在Google Chrome 30最新版(V8 3.20.17.15)上的测试。
1、首次为变量赋值时务必使用var关键字
变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量。
2、使用===取代==
==和!=操作符会在需要的情况下自动转换数据类型。但===和!==不会,它们会同时比较值和数据类型,这也使得它们要比==和!=快。
[10] === 10 // is false[10] == 10 // is true'10' == 10 // is true'10' === 10 // is false[] == 0 // is true[] === 0 // is false'' == false // is true but true == "a" is false'' === false // is false
3、underfined、null、0、false、NaN、空字符串的逻辑结果均为false
4、行尾使用分号
实践中最好还是使用分号,忘了写也没事,大部分情况下JavaScript解释器都会自动添加。对于为何要使用分号,可参考文章JavaScript中关于分号的真相。
5、使用对象构造器
function Person(firstName, lastName){ this.firstName = firstName; this.lastName = lastName;
}var Saad = new Person("Saad", "Mousliki");
① 牛客网输入流: var line=readline().split(' ');
② 赛码网输入流: var line=read_line().split(' ');
③ 输出流: print();
④ 注意: 赛码网作答时不要进行DOM相关操作,读取一行输入:read_line(),输出一行:print(something);在使用read_line()函数时,请注意如果一行输入超过1024字符,需要多次调用read_line读取输入后自行拼接;在使用print函数输出时请注意,末尾自动带有换行符,无需自己添加。
1 //注意,如果一行超过1024个字符,会被强制分行的 2 //,因此如果题目明确说明该行超过1024字符,请自行拼接(当然,我们尽量不出这种题目)。 3 /* 4 var next = ''; 5 var line; 6 while(line = read_line()){ 7 next += line; 8 } 9 next中就是超过1024字符的该行字符串。10 */
⑤ 以下是A+B题目的样例代码
1 var line;2 while(line=readline()){3 var lines = line.split(' ');4 var a = parseInt(lines[0]);5 var b = parseInt(lines[1]);6 print(a+b);7 }