Javascript Best Practices
1. 总是使用 ‘var’
在JavaScript
中,变量不是全局范围的就是函数范围的,使用”var”关键词将是保持变量简洁明了的关键。当声明一个或者是全局或者是函数级(function-level)的变量,需总是前置”var”关键词,下面的例子将强调不这样做潜在的问题。
不使用 Var 造成的问题
var i=0; // This is good - creates a global variable
function test() {
for (i=0; i<10; i++) {
alert("Hello World!");
}
}
test();
alert(i); // The global variable i is now 10!
因为变量函数中变量 i 并没有使用 var 使其成为函数级的变量,在这个例子中它引用了全局变量。总是使用 var 来声明全局变量是一个很多的做法,但至关重要的一点是使用 var 定义一个函数范围的变量。下面这两个方法在功能上是相同的:
正确的函数
function test() {
var i=0;
for (i=0; i<10; i++) {
alert("Hello World!");
}
}
正确的函数
function test() {
for (var
i=0; i<10; i++) {
alert("Hello World!");
}
}
2. 特性检测而非浏览器检测
一些代码是写来发现浏览器版本并基于用户正使用的客户端的对其执行不同行为。这个,总的来说,是一个非常糟的实践。更好的方法是使用特性检测,在使
用一个老浏览器可能不支持的高级的特性之前,首先检测(浏览器的)是否有这个功能或特性,然后使用它。这单独检测浏览器版本来得更好,即使你知道它的性
能。你可以在 http://www.jibbering.com/faq/faq_notes/not_browser_detect.html
找到一个深入讨论这个问题的文章。
例子:
if (document.getElementById) {
var element = document.getElementById('MyId');
}
else {
alert('Your browser lacks the capabilities required to run this script!');
}
3. 使用方括号记法
当访问由执行时决定或者包括要不能用”.”号访问的对象属性,使用方括号记法。如果你不是一个经验丰富的Javascript
程序员,总是使用方括号是一个不错的做法
对象的属性由两种固定的方法来访问:”.”记法和”[ ]“方括号记法:
“.”号记法
MyObject.property
“[ ]“方括号记法
MyObject["property"]
使用”.”号,属性名是硬代码,不能在执行时改变。使用”[
相关文档:
javascript是不能直接比较两个数组是否相等的。例如:
var a = [1,2,3];
var b = [1,2,3];
alert(a == b); // false
结果是 false. 证明两个数组不能直接比较相等。
解决方法一:
先排序,再利用toString方法,比较。例如:
var a = [1,2,3];
var b = [1,2,3];
alert(a.sort().toString() ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" onc ......
<P>JScript 中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具有较高优先级的运算符先于较低优先级的运算符执行。例如,乘法的执行先于加法。</P>
<P>下表按从最高到最低的优先级列出 JScript 运算符。具有相同优先级的运算符按从左至右的顺序求值。</P>
<DIV ......
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Power Table</title>
<style>
body{
FONT-SIZE: 9pt; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px;
}
input {
FONT-SIZE: 9pt; height: 15pt; width:50px; ......
在写读后感之前,先自我介绍一下,本人,男,24岁,未婚,资浅.NET程序员,在读此书之前已经能够熟练的利用JavaScript进行表单的一般验证(通过document.getElementById获取出文本框的值后再进行if...else...判断)。
刚刚拿到此书,心情好一番激动,沃~~~新华字典,长约26CM,宽约18CM,高约3.5 ......