獲取元素
document.getElementById(id);
obj.getElementsByTagName(tagName);
obj.getElementsByClassName(class);
getByClass
obj.getElementsByName(name);
變量
var name=value;
不能是數(shù)字
不能是系統(tǒng)保留名
不能是特殊符號
var _this=this;
var $this=this;
$();
show();
函數(shù)
function (){} 匿名函數(shù)
function show(){} 命名函數(shù)
找不到賦值對象默認(rèn)都是window
流程控制語句
if(條件){
語句
}else{
語句
}
if(條件){
語句
}else if(條件){
語句
}
if(條件){
語句
}else if(條件){
語句
}else{
語句
}
if(){}
條件?語句1:語句2;
條件&&語句1;
if()
switch(值){
case :
語句
break;
case :
語句
break;
case :
語句
break;
default:
break;
}
循環(huán)
for(){} 性能較高
for in 性能較低
while(){}
初始化
條件
語句
自增
for(var i=0; i<5; i++){
alert(i);
}
選項(xiàng)卡
清空所有加上當(dāng)前
非表單元素內(nèi)容
innerHTML
document.write()和innerHTML區(qū)別
innerHTML操作非表單元素
write()操作頁面(清空賦值)
檢測數(shù)據(jù)類型
typeof
復(fù)合類型
object
基本類型
number string boolean undefined
function
顯示類型轉(zhuǎn)換/強(qiáng)制類型轉(zhuǎn)換
parseInt? 整數(shù)
parseFloat? 浮點(diǎn)數(shù)
Number 數(shù)字 12abc? ×
NaN
屬于數(shù)字類型
是個(gè)標(biāo)志
和誰都不相等
判斷非數(shù)字
isNaN()
隱式類型轉(zhuǎn)換
- * / % -- ++ ==
運(yùn)算符
+ - * / %
+= -+ /= *= %=
邏輯運(yùn)算符
||? &&? !
比較運(yùn)算符
< > == === <= >= != !==
什么是真和假
真
true 非空字符串 非零數(shù)字 非空對象
假
false 空字符串 數(shù)字0 null undefined
0==false? 1==true
2==true -> false
作用域
全局 所有函數(shù)以外的變量
window.onload下的變量是局部變量
局部 函數(shù)內(nèi)部的變量
閉包 子函數(shù)可以用父函數(shù)的變量
函數(shù)套一層
關(guān)于js
括號和分號什么時(shí)候加济赎?
括號
定時(shí)器不能用括號
setInterval(fn,time);
事件函數(shù)
function fn(){}
oBtn.onclick=fn;
分號
賦值語句
var a=function (){};
執(zhí)行語句
show();
隨機(jī)數(shù)
Math.random();
獲取計(jì)算過后樣式
getStyle
返回值
掉用的時(shí)候只要結(jié)果需要返回值
只要過程不用返回值
eval
把字符串變成可執(zhí)行語句
問題
注入式攻擊
數(shù)組操作
push() pop() shift() unshift() splice() join() concat()
sort() reverse()
var arr=[1,2,3]; ->[3,1,2]
字符串操作
indexOf() lastIndexOf() substring() split() toUpperCase()
toLowerCase() charAt()
Math對象
Math.random()
Math.abs()
Math.max()
Math.min()
Math.pow()
Math.sqrt()
Math.ceil()
Math.floor()
Math.round()
Date對象
var oDate=new Date();
getFullYear();
getMonth()+1;
getDate();
getDay();
getHours();
getMinutes();
getSeconds();
getMilliseconds();
setFullYear(0,0-1,0);
setFullYear(0,0-1);
setFullYear(0);
setHours(0,0,0,0);
i的問題
封閉空間
自定義屬性
封閉空間
i的問題
變量名沖突
匿名函數(shù)自執(zhí)行
;()();
數(shù)組
var arr=[];
json
var json={};
DOM
obj.tagName
父級.children;
父級.childNodes;
obj.parentNode;
第一個(gè)
firstElementChild||firstChild
children[0]
最后一個(gè)
lastElementChild||lastChild
父級.children[父級.children.length-1]
獲取上一個(gè)兄弟節(jié)點(diǎn)
previousElementSibling||previousSibling
獲取下一個(gè)兄弟節(jié)點(diǎn)
nextElementSibling||nextSibling
創(chuàng)建
document.createElement('tagName');
插入
父級.appendChild(obj);
父級.insertBefore(obj,誰);
刪除
父級.removeChild(obj);
innerHTML問題
未來元素加不上事件
獲取位置
obj.offsetLeft/Top; 定位父級距離
obj.offsetWidth/Height; 盒子模型寬高
obj.offsetParent; 定位父級
絕對位置
getPost
getBoundingClientRect().left/top/right/bottom
事件
onclick
onmouseover
onmouseout
onmousedown
onmousemove
onmouseup
onmouseenter
onmouseleave
onmousewheel
DOMMouseScroll
oncontextmenu
ondblclick
onchange
oninput
onblur
onfocus
onkeydown
onkeyup
onload
onerror
onresize
onscroll
document.documentElement.scrollTop||document.body.scrollTop
document.documentElement.clientHeight/Width
內(nèi)容高度
document.documentElement.scrollHeight/Width
事件對象
ev
var oEvent=ev||event;
事件流
obj.addEventListener('click',fn,false);
false 事件冒泡
true 事件捕獲(事件下沉)
只存在高版本瀏覽器上
obj.attachEvent('onclick',fn);
解釋一下IE事件流和chrome事件流
IE 只存在事件冒泡
chrome? 可以是事件冒泡可以是捕獲(true false)
解除事件綁定
removeEventListener()
用同一個(gè)函數(shù)
detachEvent();
事件源
oEvent.target||oEvent.srcElement
DOMReady();
window.onload所有資源加載完
html css img video audio flash..? js
DOMReady
html css js
cookie
在服務(wù)器環(huán)境下辜御,跟隨服務(wù)器發(fā)送
4K
默認(rèn)會話結(jié)束(關(guān)閉瀏覽器)
name=value 成對出現(xiàn)
name不能重復(fù)
ajax交互服務(wù)器環(huán)境下wamp appservexmapp1.創(chuàng)建if(window.XMLHttpRequest){var oAjax=new XMLHttpRequest();}else{var oAjax=new ActiveXObject('Microsoft.XMLHTTP');}2.鏈接oAjax.open('GET',url,true);oAjax.open('POST',url,true);3.發(fā)送oAjax.send();oAjax.setRequestHeader('Content-Type','appliction/x-www-form-urlencoded');4.接收oAjax.onreadystatechange=function (){if(oAjax.readyState==4){if(oAjax.status==200){成功}else{失敗}}};公司里ajax交互后臺寫好接口供你調(diào)用一起開發(fā)自己造假數(shù)據(jù)jsonpajax可以取本地?cái)?shù)據(jù)但是不能跨域蜂绎,那怎么才能讓ajax跨域取數(shù)據(jù)請使用jsonp跨域解釋下jsonp原理利用script src特性去其他服務(wù)器上拿js文件用其他的服務(wù)器上的腳本百度https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=abc&cb=show搜狗https://www.sogou.com/suggnew/ajajjson?key=abc&type=web中搜http://tip.zhongsou.com/ctip?callback=show&w=abc------------------------------------------------------------jquery 庫1.7.21.8.21.9.2選擇器id class tagName * 嵌套 群組d(iv,p)偽類firstlastoddevenltgteqhascontains屬性input[type=button]div[index=1]方法showhideanimateeqindexaddClassremoveClassfideInfideOutslideDownslideUpstop事件clicktoggle(fn,fn,.....)mouseovermouseouthover(fn,fn);jq中沒有mousewheelDOM創(chuàng)建$('
abc
')插入appendTo 內(nèi)部后面prependTo內(nèi)部前面insertAfter 外部后臺insertBefore外部前面刪除$(obj).remove();$(obj).width()/height(); 純寬高$(obj).innerWidth()/innerHeight()寬高+padding$(obj).outerWidth()/outerHeight()盒子模型寬高$(obj).offset().left/top; 絕對位置$(obj).position().left/top; 到定位父級$(window).width()/height() 可視區(qū)插件$.fn.xxx=function (){}$.fn.extend={xxx:function (){},xxx:function (){}};循環(huán)$(arr).each(function (index,element){});$.each('arr',function (index,element){});jq轉(zhuǎn)原生$('div').get(0).style.background='red';原生轉(zhuǎn)jqvar oDiv=document.getElementById('div1');$(oDiv).css({});事件綁定on 加綁定off 解除綁定function fn(){}$('input').on('click',fn);$('input').off('click',fn);事件委托$('ul').on('click','li',function (){});jq里面事件冒泡阻止默認(rèn)事件return false;jq里面ev是兼容的ev.keyCode----------------------------------------正則正則表達(dá)式 規(guī)則表達(dá)式Regular Expression操作字符串更簡單效率高性能高轉(zhuǎn)義\\n\t 制表符\\b 元字符? 占位符\w\d\s\W\D\S? {0,1}+ {1,}* {0,}選項(xiàng)img 忽略大小寫叨叙,多行模式,全局比較重要的任選一個(gè)a[abc]caacabcacca[ab+]caacabca[(ab)+]caacabc排除[^a-z] [^0-9]范圍[a-z][0-9][A-Z][14-79] 1,4,5,6,7,9匹配match數(shù)組測試test布爾值搜索search數(shù)字 索引值--------------------------------------分治冒泡快速歸并選擇二叉樹散列 哈希