算法
希尔
var arr = [4,2,3,2,3,5,1,0,7,6];
Array.prototype.shellSort = function(){
var len = this.length,
temp,
gap = 1;
while(gap < len/3){
gap = gap * 3 + 1;
}
for(gap; gap>0; gap=parseInt(gap/3, 10)){
for(var i=gap; i<len; i++){
var temp = this[i];
for(var j=i-gap; j>0 && this[j] > temp; j-=gap){
this[j+gap] = this[j];
}
this[j+gap] = temp
}
}
return this;
}
归并排序
var arr = [4,2,3,2,3,5,1,0,7,6];
Array.prototype.mergeSortRec = function(){
if (this.length === 1) return this;
var mid = parseInt(this.length / 2),
left = this.slice(0, mid),
right = this.slice(mid);
return this.merge(left.mergeSortRec(), right.mergeSortRec());
}
Array.prototype.merge = function(left, right){
var il = 0,
ir = 0,
result = [];
while(il < left.length && ir < right.length){
if(left[il] < right[ir]){
result.push(left[il++])
}else{
result.push(right[ir++])
}
}
while(il < left.length){
result.push(left[il++])
}
while(ir < right.length){
result.push(right[ir++])
}
return result
}
正则
获取 version 号:/[^_]*(?=\.(js|css))/
舍去两位小数之后: replace(/(^\d*\.\d{2})(\d*)/, '$1')
DOM 基础
nodeType
可能产生的值如下:
// IE 下无效
if(node.nodeType == Node.ELEMENT_NODE)
// 任何浏览器下都有效
if(node.nodeType == 1)
- 1 ELEMENT_NODE
- 2 ATTRIBUTE_NODE
- 3 TEXT_NODE
- 4 CDATA_SECTION_NODE
- 5 ENTITY_REFERENCE_NODE
- 6 ENTITY_NODE
- 7 PROCESSING_INSTRUCTION_NODE
- 8 COMMENT_NODE
- 9 DOCUMENT_NODE
- 10 DOCUMENT_TYPE_NODE
- 11 DOCUMENT_FRAGMENT_NODE
- 12 NOTATION_NODE
节点间的关系

操作节点
- 插入最后一个子节点:
node.appendChild() - 插入最后一个子节点:
node.insertBefore(node, null) - 插入某个子节点前:
node.insertBefore(node, someNode) - 替换某个子节点:
node.replaceChild(node, someNode) - 溢出某个子节点:
node.removeChild(someNode) - 复制某个节点:
node.cloneNode - 赋值某个节点:
node.innerHTML = 'INFO' - 创建节点:
document.createElement
查询节点
- document.getElementById(‘ID’)
- document.getElementByTagName(‘DIV’)
- document.querySelector()
- document.querySelectotAll()
属性操作
- node.getAttribute()
- node.setAttribute()
- node.removeAttribute()
- node.attributes 的属性
注:node.attributes是一个类数组,会有一堆方法获取属性的节点,
- getNamedItem(‘id’)
- removeNamedItem()
- setNamedItem()
- item()