十Javascript日常经验技巧(1)
脚本中使用自关闭标记。虽然他在XHTML中是合法的,但它不符合HTML规范,也没有某些浏览器的正确分辨率。
2。把剧本放在前面
如果脚本文件放在,执行脚本之前下载的显示页面,增加了用户的等待时间。样式表放在盒子,防止内容显示异常,一般的方法如下:
文件
三.在函数中使用严格的模型
如果在函数外部使用了严格的模式,那么可以使第三方类库和同事的代码不能正常工作,但在函数内部,它只能影响自己的代码,不会影响其他人的代码。
函数myFunction(){
使用严格;
函数代码
}
4。不要在语句的结尾省略分号。
在代码的结尾没有分号,这很容易导致压缩错误,在某些情况下,它可以提高代码的性能。应该解释解释器不想猜到哪里可以及时插入分号,更常见的问题是自动插入分号有时会出错,因此不建议省略分号。
5。使用var定义变量
在定义变量时使用var关键字,而且函数的开始时间都很早。
这样做的好处将避免不自觉地创建全局变量,并使您的代码更易于理解。
函数myFunction(){
var结果= 10 +值;
var值= 10;
返回结果;
}
这个函数在语法上不是问题,但不是很直观。它不符合人类的逻辑。最好修改以下内容。
函数MyFunction(){
VaR结果;
VaR值;
结果= 10 +价值;
值= 10;
返回结果;
}
解释,上述代码是等效的,值的结果是NAN.Javascript将所有变量声明在函数在函数的开始,在代码执行的代码将成为代码两,运行时结果= 10 +价值;当的值是未定义的。而10则添加到南,然后值设置为10。
至于全局变量带来的问题,我们必须更加明确,否则就不会有名称空间的概念了。
6。函数首次声明和重用
与变量声明一样,函数声明也由Javascript引擎推进,因此在代码中,函数的调用可以在函数声明之前出现,也值得注意的是函数声明不应该出现在语句块中,例如:
如果(条件){
函数myFunction(){
警报();
}
其他{ }
函数myFunction(){
警报();
}
}
myfunction();
运行代码时,我们发现输出将与浏览器相关,而在Chrome 51和Firefox 46中输出false是真的和IE 10,所以尽量避免在一组语句中声明一个函数。
7。判断的不确定性类型无效
NULL是一个特殊的值,我们经常与未定义的混淆,下面的场景应该使用null:
它用于初始化一个变量,这个变量可以赋给一个对象。
用于与已初始化的变量进行比较。
当函数的参数被期望传递到对象时,它被用作参数。
当函数的返回值被期望为一个对象时,它作为返回值被传递出去。
下面的一些情况不应该用null:
不要使用null检查是否传递了参数。
不要使用null检查变量是否初始化。
了解空是以他为对象的占位符的最好方式。为什么我们常常混淆空不确定的是我们认为无效和未定义的变量没有初始化,但只有undefin表示一个变量没有初始化。NULL表示初始化为对象:
无功的人;
console.log(的人); / /未定义
console.log(类Foo); / /未定义
var =空;
console.log(typeof的房子); / /对象
所以尽量不要使用类型确定变量初始化。您不能确定变量是否存在,或者变量没有初始化。回零是你不能确定是否已正确指定变量,所以使用typeof仔细。
8。谨慎使用数字类型
您还必须知道Javascript整数支持十进制、八进制和十六进制面值。在八进制中,如果字面值的值超过了范围,前导零将被忽略,而后面的值是十进制解析。
console.log(012); / / 10
控制台(l)(082);82
如果八进制和十六用于小数,将语法。另一点是,八进制字面量在严格模式是无效的。至于浮点计算错误,我们都知道所有的浮点计算基于IEEE754的价值都是一样的,所以没有测试特定的浮点值。
在数值型,有一个比较特殊的价值,楠(非数字),这是用来表明它应该返回的值不是数字type.nan不等于任何值,包括南本身。我们可以用isnan测试()函数。
9。使用逻辑操作的动态赋值
你喜欢什么
var
年龄:10
}
VaR的条件;
变量myVar =条件的人;
警报(myVar)
如果情况变为布尔型假,然后myVar =条件,如果属实,myVar =人。
var
年龄:10
}
VaR的条件;
变量myVar =状态中的人| |;
警报(myVar)
如果条件转换为布尔值为true,那么myVar =条件,如果虚假,myVar =人。
10。不要使用带语句
不使用的一个重要的原因是,在严格的模式、语法本身是禁用的语句,这表明ECMAscript委员会相信,不应使用。我们看下面的例子:
var图书{ {
标题:可维护的Javascript
作者:尼古拉斯C. zakas
};
var消息;
用(书){
消息=标题;
消息由+作者;
}
上面的代码问题是,很难区分标题和作者的位置,也很难将消息区分为本地变量的属性地址,而Javascript引擎和压缩工具不能对代码进行优化,因为它们无法猜测代码的正确含义。
好了,已经十点了,我们将看到下一个十。