js的基礎(chǔ)知識與應(yīng)用(二)


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ù)名字)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容