javascript笔记

1、严格的全等操作符 ===    严格不相等!==  不仅比较值,还会比较变量类型
2、函数名  驼峰命名法   , 变量 小写和下划线。  这样容易区分出来哪些是变量 哪些是函数
3、宿主对象:向浏览器提供的预定义对象。包括from,element,image等。还有一种宿主对象也能获得网页上任何一个元素的信息,就是document对象。
4、

sibling 纠错

英 ['sɪblɪŋ]  美 ['sɪblɪŋ] 

  • n. 兄弟姊妹;民族成员
5、getElementById返回一个对象,对应文档里的一个特定的节点
getElementsByName和getElementByclassName返回一个对象数组,分别对应着文档里的一组特定元素节点。
6、通过setAttribute对文档做出修改后,再通过浏览器的查看源代码,发现仍然是改变前的属性值,所以,setAttribute做出的修改不会反映在文档本身的源代码里,这种“表里不一”的现象就是因为DOM的工作模式,先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。这就是DOM的真正威力,对页面内容进行刷新却不需要在浏览器刷新页面。
7、五个基础的DOM方法:getElementById,getElementsByTagName, getElementByClassName,getAttribute,setAttribute
8、DOM的几个属性 chileNodes   nodeType   nodeValue  firstChild  lastChild
9、

pseudo 纠错

英 ['sjuːdəʊ]  美 ['sʊdo] 

  • n. 伪君子;假冒的人adj. 冒充的,假的
10、 分离javascript
本来是这样的:
<a href="http://www.example.com/" οnclick="popUp(this.href); return false; ">Example</a>
可以通过分离javascript,使得原代码只需要这样:
<a href="http://www.example.com/" class="popup">example</a>
javascript代码如下:
window.οnlοad=prepareLinks;
function prepareLinks(){
if(!document.getElementsByTagName) return false;//渐进增强,向后兼容,确保在古老的浏览器里也能正常浏览
var links= document.getElementsByTagName("a");
for(var i=0;i<links.length;i++){
if(links[i].getAttribute("class")=="popup"){
links[i].onclick = function(){
popUp(this.getAttribute("href"));
return false;
}
}
}
}
function popUp(winURL){
window.open(winURL,"popup","width=320,height=480");
}
11、

sniffing 纠错

[snɪf] 

  • n. 嗅探v. 嗅闻;用鼻吸气;发觉;嗤之以鼻地说(sniff的ing形式)
12、性能考虑
尽量少访问DOM(只要查询DOM中的某些元素,浏览器就会搜索整个DOM树)
尽量减少标记(过多不必要的元素会增加DOM树的规模,进而增加遍历DOM树以查找特定元素的时间)
众多js文件合并到一个脚本文件中(减少加载页面时发送的请求数量)
script标签放到文档末尾,</body>之前(可以让页面变得更快) 这个建议正确吗?(这一点还不是太理解==|||||)
压缩脚本(多数情况下,应该有两个脚本,一个是工作副本,一个是精简副本,为了区分,通常在精简副本前加上min字样。这个老版本书里推荐的几个代码压缩工具,不知道现在还流行不,先mark在这了:Douglas crockfrod的JSMin,雅虎的YUI Compressor,谷歌的closure compiler )
13、 页面加载完毕时执行多个函数,使用经典解决的函数:addLoadEvent
通用型函数,可以用于许多场合
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.οnlοad=func;
}else{ 
window.οnlοad=function(){
oldonload();
func();
}
}
}
这个函数把那些页面加载完毕时执行的函数创建为一个队列。然后,如果想把某个函数添加到这个队列里,就写:
addLoadEvent(firstFunction);
addLoadEvent(secondFunction);
14、DOM core方法
getElementById   getElementsByTagName   getAttribute  setAttribute
它们并不专属于javascript,支持DOM的任何一种语言都可以使用它们。用途也并非仅限于处理网页,可以用来处理任何一种标记语言(比如XML)编写出来的文档。
15、动态创建标记 传统技术:document.write    innerHTML
DOM方法:createElement创建元素节点   createTextNode创建文本节点  appendChild   insertBefore
16、在DOM看来,一个文档就是一棵节点树。要从DOM的角度去思考问题。
17、元素节点—取值:1      属性节点      文本节点
18、 编写一个insertAfter(DOM木有提供这个方法)
通用型函数,可以用于许多场合
function insertAfter(newElement,targetElement){
var parent = targetElement.parentNode;
if(parent.lastChild==targetElement){
parent.appendChild(newElement);
}else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
19、Ajax技术的核心是XMLHttpRequest对象,服务器在向XMLHttpRequest对象发回响应时,浏览器会在不同阶段更新readyState的值,有5个:
0 未初始化
1 正在加载
2 加载完毕
3 正在交互
4 完成
只要readyState属性的值变为4,就可以访问服务器发送回来的数据了。
20、Ajax应用主要依赖于服务器端处理,而不是客户端处理。Hijax就指的是 渐进增强地使用Ajax。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值