1、DOM等对象的属性名称是区分大小写的;
2、JavaScript是解释型语言,区分大小写;
3、HTML不区分大小写,但XHTML是区分大小写的,并且要求全部的HTML元素及属性名称都使用小写字母;
4、在JS代码里经常看到this. xx ,当事件处理器是通过HTML元素的属性添加到页面时,其中的this是指HTML元素本身;
5、不能使用同一个<script>元素来引用外部JavaScript文件,同时包含JavaScript语句;
6、JavaScript中关键字function必须是小写,否则会产生错误;
7、函数名称和变量名称一样,是区分大小写的;
8、把JavaScript函数放到<head>标签部分能够确保它们在被调用前已经被定义了;
9、像type="text/javascript" language="javascript" <!-->都是老版本的,如果不考虑率兼容老版本,就不需要;
10、在调用函数时,要确保参数个数的匹配,如果有参数没有接收到值(即调用函数时传递了过少的参数),而函数中有使用到了,可能会报错或者得出错误的结果,如果函数中没有用到,则没什么影响;如果调用函数时传递了过多的参数,JavaScript会忽略多出来的参数;
例子:
<html>
<head>
<title>图片切换,练习DOM</title>
<script>
function checkFunction(a,b){
alert(a*b);
}
</script>
</head>
<body>
<input type="button" value="函数调用" οnclick="checkFunction(3,2,1)">
</body>
</html>
11、在输出字符串时要想换行,就要加“\n”,这种具有前缀“\n”等的字符成为“专一序列”;
12、函数返回的类型不一定是数值,可以使、是任何JavaScript支持的数据类型;
13、函数内部声明的变量(即局部变量)只存在于函数内部;函数外部声明的变量成为全局变量;
14、函数名称必须以字母或下划线开头,可以包含字母、数字和下划线,不能包含空格、标点符号和其他特殊字符;
15、alert弹出框也叫“模态对话框”,术语“模态”意味着脚本暂时停止运行,页面与用户的交互也被暂停,直到用户关闭对话框为止;
16、confirm()、prompt()也是“模态对话框”;
17、JavaScript在多种情况下使用bull表示空值,作为数值时,它代表0;作为字符串时,它代表“”,作为布尔值时,它代表“假”;
18、HTML的页面元素的id属性要求是唯一的;
19、location.reload()重新加载页面时,用location.reload(),当浏览器的缓存里保存了当前页面时,就会加载缓存的内容,为了避免这种情况,可以使用location.reload(true);,确保从服务器获得页面数据;
20、“JavaScript对象标签-------JSON”,JSON是JavaScript对象的一种简单紧凑的标签;使用JSON表达式时,对象可以方便的转换为字符串来进行存储和转换;
21、JSON数据的表示方法是一系列成对的参数与值,参数与值由冒号分隔,每对之间以逗号分隔;
22、JSON是一种以字符串格式实现数据交换的通用语法,不仅仅是对象,任何能够以系列“参数”:“值”对表示的数据都能够用JSON标签表示;
23、作为一种通用的数据交换语法,JSON的用途有些类似于XML,但它更易于理解和阅读。另外,大型XML文件的解析过程比较慢,而JSON提供的是JavaScrpt对象,随时可以使用。
24、为了还原以JSON字符串编码的数据,需要把字符串转换为JavaScript代码,即字符串的“去序列化”。
25、在数据存储和转换时,“序列化”是指把数据转换为便于通过网络进行存储和传输的形式,稍后再恢复为原始的格式。
26、在JavaScript里,object["property"]和object.property是相同的语法。
27、在JavaScript中,事件处理器优先于默认操作,我们返回false即可禁止HTML元素的默认操作。
28、把Web加载到浏览器所使用的HTTP协议是一种”无状态协议“,也就是说,当服务器把页面发送给浏览器之后,它就认为事务完成了,并不保存任何信息。
29、cookie能改善站点的用户体验。
30、由于许多用户不允许站点在自己的计算机上保存cookie,所以在编程时要注意不要让站点完全依赖于他们;浏览器对于能够保存的cookie数量有限制,通常是几百个或者多一点,一般情况下,一个域名20个cookie是允许的,而每个域最多能保存4KB的cookie,cookie可能因为很多种情况(比如用户清理了cookie,cookie到期、用户换了其他的浏览器等等)而消失不见,因此在编写代码时要考虑到不能获取所期望的cookie时的情况。
31、JavaScript使用document对象的cookie属性存储和获取cookie,每个cookie基本上就是一个由成对的名称和值组成的字符串,每个cookie以分号分隔;其实它并不是字符串,只是在提取cookie信息时,这个属性表现的像字符串而已。
32、某些字符不能在cookie里使用,包括分号、逗号以及空白符号,在把数据存储到cookie之前,需要对数据进行编码,以便实现正确的存储。使用escape()函数进行编码,使用unescape()函数进行解码。
33、escape()函数把字符串里任何非ASCII字符都转换为相应的2位或者4位十六进制格式。
34、除了+、-、*、/、@、_、.之外的特殊字符都会被编码。
35、不能把cookie的domain属性设置为页面所在域之外的域。
36、cookie的domian属性是可选的,默认是设置cookie的页面所在的域;path属性也是可选的,默认值是/,表示cookie可以在整个域内使用;secure属性也是可选的,几乎很少使用,它表示浏览器把cookie发送给服务器时,是否应该使用SSL(SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。)安全标准。
37、每个cookie都有一个失效日期,过期就自动删除了,expires属性要以UTC时间表示。如果没有设置这个属性,cookie的生命期就和当前浏览器的会话一样长,会在浏览器关闭时自动删除。
38,cookie的时间要以UTC格式设置:
var cookieDate=new Date(2014,10,23);
document.cookie=”username=sam;expires=“+cookieDate.toUTCString();
39、代码分离的JavaScript:保持行为层、表现层、内容层的分离;
40、XMLHttpRequest能够建立与服务器的连接,发送HTTP请求而不需要显示相应的页面,XMLHttpRequest对象一般只能调用与当前页面同一个域里的URL,而不能直接调用远程服务器;
41、跨浏览器创建XMLHttpRequest对象
function getXMLHttpRequest(){
try{
try{
return new ActiveXObject("Microsoft.XMLHTTP");
//为了兼容早期IE版本
}catch(e){
return new ActiveXObject("Msxml2.XMLHTTP");
//为了兼容不同版本的XML解析器
}
}catch(e){
return new XMLHttpRequest();
}
}
42、XMLHttpRequest的方法和属性(图片来源于百度)
43、当用户请求访问特定的Web页面时,浏览器首先会尝试从缓存里加载页面,而不是立即提交新的HTTP请求;
44、在Ajax中,使用随机数解决缓存问题,即在请求链接后加一个参数,这个参数的值是一个随机数(也有人使用当前时间);
45、XMLHttpRequest对象的readyState属性的值包括:
0=未初始化;1=正在加载;2=加载完成;3=交互;4完成。 对与特定对象来说,并不是所有的可能值都会出现
46、除了readyState属性可以监视服务器状态外,还可以用下面这种方式查看异步请求的状态:HTTP服务器响应状态代码,200表示OK,404表示未找到页面;
47、Ajax的get请求时,请求的长度不能超过255个字符;如果需要发送较多的数据,应该使用post请求;
48、在AJax中传递参数时要进行必要的编码;POST不会像GET请求那样会受到缓存的影响,故不需要给查询字符串添加随机内容;
49、数据序列化,在数据存储和转换时,“序列化”是指把数据转换为便于通过网络进行存储和传输的形式,稍后再恢复为原始的数据;