JS的基礎(chǔ)應(yīng)用
? ? ? ?傳參:
? ? ? ? ? ? ? ? ?1. ? (一個(gè)參數(shù)) 聲明:function 名字(參數(shù)){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //code
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //參數(shù)
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? 調(diào)用:名字(參數(shù))
? ? ? ? ? ? ? ?2. ? (多個(gè)參數(shù)) 聲明:function 名字(參數(shù)1,參數(shù)2){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //code
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//參數(shù)1,參數(shù)2
? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ?調(diào)用:名字(參數(shù)1,參數(shù)2)
? 標(biāo)示符和表達(dá)式:
? ? ? ? ? ? ? .? 標(biāo)示符
? ? ? ? ? ? ? [] 表達(dá)式
? ? ? ? ? ? ? 只要 . 能干的? [] 都能干
? ? ? ? ? ? ?.只能操作已有屬性
? ? ? ? ? ? ? undefind? 未定義
數(shù)據(jù)類型:
? ? ? ? ? ? ? ? Number? ? 123
? ? ? ? ? ? ? ? String? ? '123'? 只要加單引號就是字符串
字符串和變量:
? ? ? ? ? ? ? ? var? a='123';
? ? ? ? ? ? ? ? ? ? ? a是變量? '123'是字符串
?window.onload:
? ? ? ? ? 寫js
? ? ? ? ? ? ? ? ? ?1.window.onload
? ? ? ? ? ? ? ? ? ?2.獲取元素
? ? ? ? ? ? ? ? ? ?3.加事件....
獲取一組元素:
? ? ? ? ? ? ? ? ? ?document.getElementsByTagName('標(biāo)簽')
數(shù)組(Array):
? ? ? ? ? ? ? ? ? ?[1,2,3,4,5]
? ? ? ? ? ? ? ? ? ?length:數(shù)組的個(gè)數(shù)? 從1開始
? ? ? ? ? ? ? ? ? 下標(biāo): 從0開始
this:
? ? ? ? ? ? ? ? ? 誰觸發(fā)的事件? this就是誰
循環(huán):
? ? ? ? ? ? ? ?自增:
? ? ? ? ? ? ? ?i=i+1;
? ? ? ? ? ? ? ?i+=1;
? ? ? ? ? ? ? ?i++;
?while(條件){
//code
}
for(初始值;條件;自增){
//code
}
自定義屬性? 高級瀏覽器第一遍 過濾掉
web分離? 樣式? 結(jié)構(gòu)? 行為
字符號拼接 :兩個(gè)單引號 兩個(gè)加號 加號里寫 i
=================================================
選項(xiàng)卡封裝:
? ? ? ? ? ? ? ?index? 索引
操作表單元素:
? ? ? ? ? ? ? ?獲取:元素.value
? ? ? ? ? ? ? ?設(shè)置:元素.value='值';
操作非表單元素:
? ? ? ? ? ? ? ?獲取:元素.innerHTML
? ? ? ? ? ? ? 設(shè)置:元素.innerHTML='內(nèi)容';? ? ? 內(nèi)容可以是任何東西(包括標(biāo)簽)
document.write? 頁面輸出內(nèi)容
字符串連接:
? ? ? ? ? ? ?**字符串不能換行
? ? ? ? ? ? ? 1.換行可以? 加號 拼起來
? ? ? ? ? ? ? 2. \? 每換行尾部加
? ? ? ? ? ? ? 3. ``引號 直接加? ? 第一個(gè)ES6的語法
? ? ? ? ? ? ? ()提高優(yōu)先級? (this.index+1)
秘訣:兩個(gè)單引號 兩個(gè)加號 里面放變量
字符串和數(shù)字相加? 會(huì)變成字符串? 字符串不會(huì)運(yùn)算
調(diào)試:
? ? ? ? ? ? ? 工具:F12
? ? ? ? ? ? ? alert()
? ? ? ? ? ? ? console.log()
? ? ? ? ? ? ? 快捷鍵:ctrl+shift+j
? ? ? ? ? ? ? ?FF(firefox) :安裝一個(gè) firebug(重新刷新)
? ? ? ? ? ? ? ?IE:打開錯(cuò)誤的調(diào)試的工具
? ? ? ? ? ? ? ?工具--Internet選項(xiàng)--高級--禁用腳本本調(diào)試(其它)
數(shù)據(jù)類型:
基本數(shù)據(jù)類型(不可分)
? ? ? ? ? ? ? ? string? 字符串
? ? ? ? ? ? ? ? number? ? 數(shù)字
? ? ? ? ? ? ? ? boolean? ? ? ? 布爾值
? ? ? ? ? ? ? ? undefined? ? ? ? 未定義
? ? ? ? ? ? ? ? object? 對象(可分的)? object里面可以包數(shù)組也可以包對象
? ? ? ? ? ? ? ?function? ? ? ? 函數(shù) ?有爭議
? ? ? ? ? ? ? ?global? ** ES6? 頂層對象
typeof? 檢測數(shù)據(jù)類型
undefined什么時(shí)候會(huì)出現(xiàn)?
? ? ? ? ? ? ? ?1.變量聲明了,但是沒有賦值.
? ? ? ? ? ? ? ?2.訪問一個(gè)不存在的屬性.
? ? ? ? ? ? ? ?3.當(dāng)參數(shù)沒有值
字符串轉(zhuǎn)成數(shù)字
? ? ? ? ? ? ? 顯式類型轉(zhuǎn)換:? 強(qiáng)制類型轉(zhuǎn)換
? ? ? ? ? ? ? ? ? ? ? parseInt(字符串)? 把字符串轉(zhuǎn)變成整數(shù)? ? ? '12.5px'? 12 ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? parseFloat(字符串)? 把字符串轉(zhuǎn)變成小數(shù)(浮點(diǎn)數(shù))? ? ? ? '12.5px'? 12.5
? ? ? ? ? ? ? ? ? ? ? Number(字符串) 把字符串轉(zhuǎn)變成數(shù)字? 比較嚴(yán)格。? ? ? '12.5px'? 非數(shù)字是NaN
?isNaN(x) 函數(shù)用于檢查其參數(shù)是否是非數(shù)字值。
? ? ? ? ? ? ? ? 如果 x 是特殊的非數(shù)字值 NaN(或者能被轉(zhuǎn)換為這樣的值)返回的值就是 true。
? ? ? ? ? ? ? ? 如果 x 是其他值,則返回 false。
隱式轉(zhuǎn)換:
? ? ? ? ? ? ? ? ?-? *? /? % ==? ><? ? 隱式轉(zhuǎn)換,盡量別用。
? ? ? ? ? ? ? ? alert('10'*2)? ('10'+2)? ? 加號 做了字符串 拼接
====================================================
事件:
? ? ? ? ? ? ? onmouseover
? ? ? ? ? ? ? onmouseout
? ? ? ? ? ? ? onclick
? ? ? ? ? ? ? onchange? select的value 改變的時(shí)候用? ? 99%
?select里面的option的value怎么獲取
? ? ? ? ? ? ? option的value=oS.value
作用域:
? ? ? ? ? ? 局部變量:只能在函數(shù)內(nèi)部使用
? ? ? ? ? ? 全局變量:在哪里都能使用
? ? ? ? ? ? 閉包:子函數(shù)可以去使用父函數(shù)局部變量(如果函數(shù)內(nèi)部的變量和全局同名? 不會(huì)覆蓋)
匈牙利命名法:前面有類型前綴后面跟單詞首字母大寫
? ? ? ? ? **必須要遵守
? ? ? ? ? o object? oBtn 一個(gè)對象
? ? ? ? ? a array aBtn 多個(gè)東西
? ? ? ? ? **可以遵守
? ? ? ? ? i int iNum 整數(shù)
? ? ? ? ? s string sName 字符串
? ? ? ? ? b boolean bOk 布爾值
流程控制語句:
? ? ? ? ? ?if..else..
? ? ? ? ? ?switch(條件){
? ? ? ? ? ? ? ? ? ? case 情況1: 語句
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ?case 情況2:
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ?}
break? 打斷執(zhí)行? 后面代碼不執(zhí)行
continue? 跳過本次執(zhí)行
return:返回值
? ? ? ? ? ? 1.可以返回任何東西
? ? ? ? ? ? 2.阻斷后面代碼執(zhí)行
? ? ? ? ? ? 3.沒有返回值 返回undefined
簡寫:? ? ? 條件&&語句1
? ? ? ? if(條件){
? ? ? ? ? ? ? ? 語句1
? ? ? ? ?}
? ? ? ?條件?語句1:語句2;? (三目運(yùn)算符)
? ? ? ? ? ? ?if(條件){
? ? ? ? ? ? ? ? ? ? ? 語句1
? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ? ? ?語句2
? ? ? ? ? ? ?}
什么是真
? ? ? ? ? ? ?true? 非空對象 非0數(shù)字 非空字符串
什么是假
? ? ? ? ? ? ?false 0 '' null undefined NaN
獲取行間樣式 :obj.style.xxx
獲取非行間樣式(生效的樣式)
? ? ? ? ? ? ? obj.currentStyle.樣式名? ? ? ? IE (低級瀏覽器)
? ? ? ? ? ? ? getComputedStyle(obj,false).樣式名? IE9+ chrome FF? ? (高級瀏覽器)
? ? ? ? ? ? ? false 是兼容老版本火狐瀏覽器
處理兼容? if...else{}
? ? ? ? ? ? ? if(obj.currentStyle){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? obj.currentStyle.樣式名
? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?getComputedStyle(obj,false).樣式名
? ? ? ? ? ? ? }
未定義的屬性undefind
未定義的函數(shù)報(bào)錯(cuò)
? ? ? ? ? ? ? ? ? ? function getStyle(obj.sName){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return
? ? ? ? ? ? ? ? ? ? ? obj.currentStyle?obj.currentStyle[sName]:getComputedStyle(obj,false)[sName];
? ? ? ? ? ? ? ? ? ? }
=======================================================
隨機(jī)數(shù)
? ? ? ? ? ? ? ? Math.random()? 0-1的隨機(jī)數(shù)不包括
范圍隨機(jī)數(shù)
? ? ? ? ? ? ? ? parseInt(Math.random()*(m-n))+n
eval:注入攻擊
? ? ? ? ? ? ? ?eval把字符串解析成js能理解的程序
運(yùn)算符:
? ? ? ? ? ? ? ? 算術(shù)運(yùn)算:+ - * /
? ? ? ? ? ? ? ? 莫? %? 取余
賦值運(yùn)算符
? ? ? ? ? ? ? ? = += -= *= /= %=
比較運(yùn)算符
? ? ? ? ? ? ? ?> < >= <=
? ? ? ? ? ? ? ?== !=
? ? ? ? ? ? ? ?=== 全等
? ? ? ? ? ? ? ?!== 不全等
= 賦值
== 判斷是否相等,只要值一樣就ok
=== 判斷是否全等,值要一樣,類型也要一樣。
邏輯運(yùn)算符
? ? ? ? ? ? ?&& 與(并且) 兩邊的條件必須都滿足才算真的。
? ? ? ? ? ? ?|| 或(或者) 兩邊的條件滿足一個(gè)就是真的。
? ? ? ? ? ? ?! 非(取反)
雙色球:
? ? ? ? ? arr.push? 往數(shù)組里面添加
? ? ? ? ? 1 隨機(jī)1-34
? ? ? ? ? 2.不重復(fù)
? ? ? ? ? 3.6個(gè)
不重復(fù):找數(shù)組里面的重復(fù)的? 找到返回true 找不到返回false
? ? ? ? ? ? ? ? ?補(bǔ)0:? return n<10?'0'+n:''+n;
定時(shí)器:
? ? ? ? ? ? ? setInterval(函數(shù),時(shí)間)
? ? ? ? ? ? ? ? ? ? ? ?setInterval(function(){JS代碼},時(shí)間)
時(shí)間:毫秒? ? 1000? ? 1s
***只要用定時(shí)器 一定要先關(guān) 再開
setTimeout(函數(shù)名字,時(shí)間)? 只執(zhí)行一次
clearTimeout(函數(shù)名字)