版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2015年6月份達(dá)內(nèi)web前端就業(yè)班培訓(xùn)JS部分前端三大基礎(chǔ)知識(shí):HTML:專(zhuān)門(mén)編寫(xiě)網(wǎng)頁(yè)內(nèi)容CSS:專(zhuān)門(mén)設(shè)計(jì)網(wǎng)頁(yè)樣式JavaScript:專(zhuān)門(mén)設(shè)計(jì)網(wǎng)頁(yè)交互的語(yǔ)言(9天)=Day1JavaScript:專(zhuān)門(mén)設(shè)計(jì)網(wǎng)頁(yè)交互的語(yǔ)言交互:輸入數(shù)據(jù),程序處理數(shù)據(jù),返回結(jié)果什么是JavasCript:1. 專(zhuān)門(mén)設(shè)計(jì)網(wǎng)頁(yè)交互的語(yǔ)言2. 運(yùn)行在javaScript解釋器中3. “解釋”執(zhí)行4. 互聯(lián)網(wǎng)第一大語(yǔ)言:JSerECMAScript標(biāo)準(zhǔn):JavaScript核心語(yǔ)法微軟:JscriptW3C:DOM標(biāo)準(zhǔn):專(zhuān)門(mén)操作HTML元素,CSS樣式,事件的統(tǒng)一標(biāo)準(zhǔn)!BOM:專(zhuān)門(mén)操作瀏覽器窗口的工具。沒(méi)標(biāo)準(zhǔn),由瀏覽器
2、廠(chǎng)商自行實(shí)現(xiàn)JavaScript=ECMAScript+DOM+BOMJSer最大挑戰(zhàn):瀏覽器兼容性問(wèn)題JavaScript典型用途:1. 客戶(hù)端數(shù)據(jù)計(jì)算2. 客戶(hù)端表單驗(yàn)證3. 動(dòng)畫(huà)JavaScript特點(diǎn):純文本;解釋執(zhí)行;弱類(lèi)型;基于對(duì)象如何使用:1. 使用瀏覽器自帶的js解釋器;F12- ->控制臺(tái)光標(biāo)處寫(xiě)腳本代碼,回車(chē)執(zhí)行。Console:指代控制臺(tái):專(zhuān)門(mén)調(diào)試程序輸出結(jié)果的窗口。log:控制臺(tái)console提示的一個(gè)功能:向控制臺(tái)輸入一行日志多行:shift+enterà換行*JavaScript中區(qū)分大小寫(xiě)!*字符串單雙引號(hào)都行*2.單獨(dú)安裝專(zhuān)門(mén)解釋器軟件:node
3、.js Chrome V8Win鍵+Ràcmdànode退出:兩次ctrl+c執(zhí)行.js文件:1.先到cd到.js文件所在路徑 2.node文件名 回車(chē)3.隨網(wǎng)頁(yè)一同運(yùn)行:瀏覽器包含兩種工具:排版引擎:專(zhuān)門(mén)加載HTML內(nèi)容和css樣式解釋引擎:專(zhuān)門(mén)運(yùn)行Js腳本<script>中腳本塊何時(shí)運(yùn)行?隨網(wǎng)頁(yè)加載,解釋執(zhí)行<script>中都要用js語(yǔ)法!Html元素的事件屬性中:什么是事件?元素可以根據(jù)鼠標(biāo)或鍵盤(pán)的不同操作響應(yīng)不同的交互行為<html><head><title></title></head
4、><body><script> alert("hello from script");</script> <button onclick="alert('hello from onclick')">按鈕</button></body></html><script>解釋執(zhí)行,讀到才執(zhí)行。先讀到先執(zhí)行,后讀到后執(zhí)行。<script>放置的先后順序影響程序結(jié)構(gòu)。優(yōu)化:放在body后;待網(wǎng)頁(yè)全部加載完在實(shí)現(xiàn)功能,用戶(hù)體驗(yàn)效果更佳。一次
5、定義,處處使用;一次修改,處處生效!解決:凡是重復(fù)編寫(xiě)的代碼塊,都要封裝為一個(gè)方法:方法:執(zhí)行一個(gè)專(zhuān)門(mén)功能的一組代碼的序列。定義在<head>下的<script>中語(yǔ)法:function方法名()重用的代碼塊調(diào)用:方法名()à調(diào)用后立即執(zhí)行。*不調(diào)用不執(zhí)行*只要沒(méi)反應(yīng)或效果沒(méi)有出來(lái)就是出錯(cuò)!àF12調(diào)試查看錯(cuò)誤原因à定位錯(cuò)誤位置!<script>腳本塊中的錯(cuò)誤,僅影響“當(dāng)前腳本塊”中出錯(cuò)位置之后的腳本執(zhí)行。不影響<script>之外的其他元素加載或腳本塊執(zhí)行。Function中的錯(cuò)誤:只有調(diào)用方法時(shí)才觸發(fā)!頁(yè)面內(nèi)部腳
6、本塊問(wèn)題:僅當(dāng)前頁(yè)面可用!解決:外部.js文件!什么是.js文件:專(zhuān)門(mén)保存js腳本源代碼的文件。源代碼都要放到j(luò)s解釋器才能執(zhí)行。如何使用.js文件?2 步:1.創(chuàng)建.js文件,編寫(xiě)源代碼。2.在頁(yè)面中引入外部.js文件。ECMAScript(核心語(yǔ)法)*區(qū)分大小寫(xiě)*字符串必須用引號(hào)(單雙都行)包裹*每條語(yǔ)句結(jié)尾都建議有分號(hào)*語(yǔ)句:讓程序可以做一件事的一行命令腳本塊:多行語(yǔ)句的序列程序:讓計(jì)算機(jī)模擬執(zhí)行人類(lèi)的想法!注釋?zhuān)翰粫?huì)被解釋執(zhí)行或顯示的代碼說(shuō)明給程序員看的注釋也占網(wǎng)頁(yè)流量!生產(chǎn)環(huán)境必須去掉!提高加載速度。HTML注釋?zhuān)?lt;!->CSS注釋?zhuān)?*/Js注釋?zhuān)?單行注釋 /*多行注
7、釋*/*變量*什么是變量??jī)?nèi)存中專(zhuān)門(mén)存儲(chǔ)數(shù)據(jù)的空間程序都是在內(nèi)存中運(yùn)行任何程序包括三個(gè)部分:IPO: input process output 即:輸入數(shù)據(jù) 處理數(shù)據(jù) 輸出數(shù)據(jù)何時(shí)使用變量?只要在程序中臨時(shí)存儲(chǔ)數(shù)據(jù),都要放在變量中怎么使用變量?聲明,命名,初始化和使用聲明:在內(nèi)存中開(kāi)辟一個(gè)存儲(chǔ)空間怎么聲明?var 變量名;賦值:將等號(hào)右邊的數(shù)據(jù),裝入等號(hào)左邊的變量中!如果未賦值:js默認(rèn)賦值為undefined命名規(guī)則:見(jiàn)名知意 保留字/關(guān)鍵字不能當(dāng)變量名保留字:js中已經(jīng)占用的特殊意義的關(guān)鍵字使用:使用變量名等效于直接使用變量中存儲(chǔ)的數(shù)據(jù)+:拼接多段文字為一句話(huà)!常量:一旦創(chuàng)建,值不可改變的
8、特殊變量如何使用常量:const 常量名=常量值;前后返回值一樣,因?yàn)镻I是常量,沒(méi)法改變。強(qiáng)調(diào):只有等號(hào)可以向變量中存入新值。普通運(yùn)算不會(huì)改變變量的值。只是使用變量的值。只要帶var就是聲明,只要聲明就會(huì)開(kāi)辟內(nèi)存空間呢。Js中新同名變量的空間會(huì)替換舊變量的空間。有幾個(gè)var,就會(huì)創(chuàng)建幾個(gè)存儲(chǔ)空間。數(shù)據(jù)類(lèi)型:變量中存儲(chǔ)的數(shù)據(jù)的類(lèi)型。Js是弱類(lèi)型:變量本身沒(méi)有類(lèi)型。只有變量中的值才有類(lèi)型。一個(gè)變量,可以反復(fù)保存不同類(lèi)型的數(shù)據(jù)為什么要有數(shù)據(jù)類(lèi)型:現(xiàn)實(shí)中所有數(shù)據(jù)根據(jù)用途不同,都分為不同數(shù)據(jù)類(lèi)型。原始類(lèi)型:數(shù)據(jù)保存在變量本地!Number string Boolean undefined nullNu
9、mber類(lèi)型:表示一切用于比較或數(shù)學(xué)計(jì)算的數(shù)字原始類(lèi)型大?。篘umber:整數(shù)4字節(jié),浮點(diǎn)數(shù)8字節(jié)String:每個(gè)字符2字節(jié)程序中數(shù)字分整數(shù)、浮點(diǎn)數(shù)(現(xiàn)實(shí)中的小數(shù))Js中一切數(shù)字都用number保存,不分整數(shù)類(lèi)型和小數(shù)類(lèi)型如何定義number類(lèi)型值?不帶引號(hào)的數(shù)字字面量程序中數(shù)字類(lèi)型的舍入誤差:程序中不能準(zhǔn)確表示1/10,就好像現(xiàn)實(shí)中不能準(zhǔn)確表示1/3一樣!如何修正:按指定位數(shù)四舍五入:數(shù)字.toFixed(小數(shù)位數(shù))今后計(jì)算結(jié)果小數(shù)位數(shù)超長(zhǎng),說(shuō)明碰到舍入誤差,按位四舍五入。String類(lèi)型:一串字符的序列!Unicode:對(duì)所有語(yǔ)言文字中的字符編號(hào);如:張(24352)、東(19996);
10、why:因?yàn)橛?jì)算機(jī)只能處理數(shù)字,無(wú)法處理文字。計(jì)算機(jī)處理unicode,就等效于處理編號(hào)對(duì)應(yīng)的文字。轉(zhuǎn)義字符:專(zhuān)門(mén)表示非打印字符以及特殊符號(hào)如何使用轉(zhuǎn)義字符:特殊符號(hào) 比如:n換行 t tab健如果字符串中包含于語(yǔ)法相沖突的特殊字符,用轉(zhuǎn)義為原文字符串變量的內(nèi)容一旦創(chuàng)建不可改變!如果改變,只能創(chuàng)建新字符串,拋棄舊字符串。鄙視題(面試題)var str=”Hello”;Str=str+”world”;創(chuàng)建了三個(gè)字符串。Boolean類(lèi)型:僅有兩個(gè)值的特殊數(shù)據(jù)類(lèi)型:true,false何時(shí)使用boolcan?只要一個(gè)值只有真假兩種情況,就用boolean類(lèi)型Undefined類(lèi)型:表示一個(gè)變量?jī)H聲
11、明過(guò),但從未賦值。所有未賦值的變量,默認(rèn)值都是undefined。Undefined類(lèi)型的值還是undefined!Day02數(shù)據(jù)類(lèi)型間的轉(zhuǎn)換:隱式類(lèi)型轉(zhuǎn)換:程序自動(dòng)轉(zhuǎn)換數(shù)據(jù)類(lèi)型弱類(lèi)型:1.變量聲明時(shí)不必限定數(shù)據(jù)類(lèi)型,今后可能保存任何類(lèi)型數(shù)據(jù)。 2.數(shù)據(jù)類(lèi)型間可以自動(dòng)類(lèi)型轉(zhuǎn)換僅考慮+:只要有字符串參與,一切類(lèi)型都加”變字符串 如果沒(méi)有字符串,都轉(zhuǎn)為數(shù)字計(jì)算: 其中:true>1 false>0;強(qiáng)制轉(zhuǎn)換:程序員通過(guò)調(diào)用專(zhuān)門(mén)函數(shù)手動(dòng)轉(zhuǎn)換類(lèi)型1 string:x.toString()>將x轉(zhuǎn)為字符串類(lèi)型2 Number:Number(x)>將任意類(lèi)型轉(zhuǎn)為number類(lèi)型St
12、ringnumber:轉(zhuǎn)為整數(shù):var num=parseInt(”str”)讀取字符串中的整數(shù)部分從第一個(gè)字符向后讀。如果碰到第一個(gè)數(shù)字字符,開(kāi)始獲取數(shù)字,再次碰到不是數(shù)字的字符,停止讀取如果開(kāi)頭碰到空格,忽略如果碰到的第一個(gè)非空格字符,不是數(shù)字,說(shuō)明不能轉(zhuǎn)NaN:Not aNumber什么是NaN:不是數(shù)字(內(nèi)容)的數(shù)字(類(lèi)型)讀取浮點(diǎn)數(shù):var num=parseFloat(“str”)讀取了浮點(diǎn)數(shù)部分用法和parseInt完全相同唯一差別:parseFloat認(rèn)識(shí)小數(shù)點(diǎn),僅認(rèn)第一個(gè)Console.log(parseFloat(“22.0”);/22;parseFloat可將小數(shù)點(diǎn)后占用
13、字節(jié)但無(wú)意義的部分去掉。Prompt(“提示信息”):專(zhuān)門(mén)用于請(qǐng)求用戶(hù)輸入數(shù)據(jù),收集數(shù)據(jù)的對(duì)話(huà)框!Var str=prompt(“提示信息”);*凡是從頁(yè)面上獲得的數(shù)據(jù),都是字符串!必須先來(lái)轉(zhuǎn)換再計(jì)算*數(shù)據(jù)類(lèi)型轉(zhuǎn)換綜合圖:什么是運(yùn)算符:程序模擬人類(lèi)運(yùn)算的特殊符號(hào)算數(shù)運(yùn)算:任意類(lèi)型數(shù)據(jù)做運(yùn)算,都會(huì)被轉(zhuǎn)為數(shù)字類(lèi)型,如果有參數(shù),不能自動(dòng)轉(zhuǎn)為數(shù)字,則返回NaN如果除數(shù)為0:Infinity無(wú)窮大typeof(x):判斷任意數(shù)據(jù)的類(lèi)型被除數(shù)%除數(shù) 模運(yùn)算:被除數(shù)/除數(shù),取除不盡的余數(shù)何時(shí)用:限制一個(gè)數(shù)不能超過(guò)某個(gè)最大范圍時(shí)遞增/遞減運(yùn)算:+:i+ài=i+1;只要遇到對(duì)變量+1,就用i+i+單
14、獨(dú)用:+放前放后,效果一樣:i+=+i;前+,先+1,再參與表達(dá)式后+,先用舊值參與表達(dá)式,表達(dá)式之后再+1;關(guān)系運(yùn)算:判斷大??!條件判斷中使用結(jié)果:成立:true,不成立:false*自帶隱式類(lèi)型轉(zhuǎn)換*字符串參與關(guān)系運(yùn)算:從第一個(gè)字符開(kāi)始,取出每個(gè)字符PK Unicode編號(hào)”Hello” H e(101) “Hi” H i(105)“hello”<”Hi”Hello” H e “HI” H I“hello”>”HI”所有小寫(xiě)字母的Unicode都大于大寫(xiě)字母關(guān)系運(yùn)算中:任何類(lèi)型和數(shù)字比較,都轉(zhuǎn)為數(shù)字,再比較/與字符串和其他相加區(qū)別布爾類(lèi)型參與關(guān)系運(yùn)算,始終轉(zhuǎn)為數(shù)字比較實(shí)際中,關(guān)
15、系運(yùn)算:先將參與判斷的數(shù)據(jù),強(qiáng)轉(zhuǎn)為相同類(lèi)型,在比較字符串比較:Undefined做比較Undefined類(lèi)型,從null類(lèi)型繼承來(lái)的Undefined值被自動(dòng)轉(zhuǎn)換為null!Undefined=null=true=嚴(yán)格相等:不帶自動(dòng)類(lèi)型轉(zhuǎn)換的相等比較!要求類(lèi)型和值必須都相等!才返回true。只要不確定比較的類(lèi)型,又不希望自動(dòng)類(lèi)型轉(zhuǎn)換時(shí),就用=; NaN做比較:NaN和任何數(shù)字做比較,永遠(yuǎn)返回false NaN=NaN=falseisNsN(x):專(zhuān)門(mén)用來(lái)判斷一個(gè)數(shù)據(jù)是否是NaN 如果是NaN返回true;如果不是NaN返回false 是數(shù)字返回false;如果不是數(shù)字返回true;只要不能自動(dòng)
16、轉(zhuǎn)換為數(shù)字的,都返回true只要能自動(dòng)轉(zhuǎn)換為數(shù)字的,都返回false關(guān)系運(yùn)算總結(jié):1.普通數(shù)據(jù),先轉(zhuǎn)為相同類(lèi)型,再比較2.undefined,就用=3.NaN,就用isNaN(x)邏輯運(yùn)算:基于多組關(guān)系運(yùn)算,得出一個(gè)結(jié)論&&:而且; 所有條件為true,才返回true;只要一個(gè)為false就返回false。|:或者; 只要任意一個(gè)為true,就返回true;只有所有條件都為false時(shí),才返回false。?。悍?;顛倒true和false;今后只要顛倒判斷結(jié)果,就用! !true=false !false=true 短路邏輯:只要前一個(gè)判斷足以得出最終結(jié)論,則后續(xù)條件不執(zhí)行!位移
17、:左移幾位就乘幾個(gè)2;右移幾位就除幾個(gè)2;左移n<<m=>n*(2的m次方);右移:n>>m=>n/(2的m次方) 賦值運(yùn)算:賦值運(yùn)算結(jié)果就是等號(hào)右邊表達(dá)式的結(jié)果擴(kuò)展的賦值表達(dá)式:對(duì)已有數(shù)據(jù)計(jì)算同時(shí),將結(jié)果再存回變量三目運(yùn)算:根據(jù)不同條件,動(dòng)態(tài)返回不同結(jié)果!三目:至少需要3個(gè)表達(dá)式。語(yǔ)法:一個(gè)條件,二選一:條件?當(dāng)條件滿(mǎn)足時(shí)返回的值:當(dāng)條件不滿(mǎn)足時(shí)返回的值多個(gè)條件,多選一:條件1?條件1滿(mǎn)足時(shí)的值:條件2?條件2滿(mǎn)足時(shí)的值:條件n?條件n滿(mǎn)足時(shí)的值: 默認(rèn)值;典型用法:注意:后一個(gè)條件中不用包含否定前一個(gè)條件的關(guān)系判斷。因?yàn)?,進(jìn)入后一個(gè)條件隱含的條件就是前一
18、個(gè)條件不滿(mǎn)足。例子:Day03函數(shù):(方法)封裝執(zhí)行一項(xiàng)專(zhuān)門(mén)任務(wù)的步驟的代碼序列何時(shí)定義方法?只要發(fā)現(xiàn)一段代碼重復(fù)使用,就封裝為方法。語(yǔ)法:聲明 Function 方法名(參數(shù)列表) 方法體:步驟清單 return 返回值;調(diào)用:方法名(參數(shù)值列表);參數(shù):方法內(nèi)獨(dú)有的變量,接收傳入數(shù)據(jù),在方法內(nèi)處理。參數(shù)讓方法變靈活!如何聲明方法參數(shù):不用var!參數(shù)何時(shí)被創(chuàng)建?只有方法被調(diào)用時(shí)才自動(dòng)創(chuàng)建。返回值:方法執(zhí)行完成后,由方法返回的一個(gè)數(shù)據(jù)定義返回值:不用再聲明變量,直接用return值!為什么定義返回值:因?yàn)檎{(diào)用方法的人需要明確的返回結(jié)果。返回值主要給調(diào)用者使用。return:本意退出方法! 退
19、出同時(shí),可返回?cái)?shù)據(jù)!可以在任何需要的地方,調(diào)用方法執(zhí)行;帶返回值的方法,使用時(shí),等效于直接使用返回值數(shù)據(jù)例子:比較找到三個(gè)數(shù)之間的最大值作用域:一個(gè)變量的可用范圍?。ê苤匾┤肿饔糜颍褐苯勇暶髟谌肿饔糜蛑械淖兞浚腥肿兞拷窈笾灰M凶饔糜蚬玫淖兞慷家暶髟谌肿饔糜蚓植浚ê瘮?shù))作用域:聲明在方法內(nèi)部的變量或方法的參數(shù)變量都叫局部變量值傳遞:將一個(gè)變量的值賦值給另一個(gè)變量,其實(shí)將原變量中的值,復(fù)制一份給新變量。JS中一切賦值都是值傳遞!對(duì)未聲明的變量賦值:js會(huì)自動(dòng)在全局創(chuàng)建該變量!函數(shù)作用域和變量作用域完全一樣函數(shù)作用域在調(diào)用方法時(shí)創(chuàng)建,方法執(zhí)行完立刻銷(xiāo)毀!問(wèn)題:方法參數(shù):依據(jù)方法
20、內(nèi)部的處理邏輯至少需要幾個(gè)數(shù)據(jù)才可正常執(zhí)行。方法參數(shù)和外部定義了哪些變量沒(méi)有任何關(guān)系。方法參數(shù)作用:1.接收外部傳入數(shù)據(jù),在方法內(nèi)處理 2.規(guī)定調(diào)用方法的人必須提供哪些參數(shù)!方法返回值:根據(jù)方法調(diào)用者的需要!如果方法調(diào)用者需要明確返回一個(gè)結(jié)果,就定義返回值!否則,可以不定義返回值!有返回值的方法,可以當(dāng)做一個(gè)值用!何時(shí)必須用變量接???方法的返回值,后續(xù)程序可能反復(fù)使用!自定義函數(shù):全局函數(shù):ECMScript定義了標(biāo)準(zhǔn),由各瀏覽器廠(chǎng)商已經(jīng)實(shí)現(xiàn)的函數(shù)。咱們直接調(diào)用! isNaN(x) parseInt/Float(x)encodeURI:將url中的非法字符轉(zhuǎn)為單字節(jié)符號(hào)編碼decodeURI:
21、將encodeURI轉(zhuǎn)后的字符串,轉(zhuǎn)換回原文解碼返回如下:unicode編碼:每個(gè)字符2個(gè)字節(jié);字母單字節(jié)。utf-8編碼:字母、數(shù)字單字節(jié) 漢子3字節(jié)url規(guī)定參數(shù)值中,再次出現(xiàn)保留字,就是非法:保留字:/ ? $ : encodeURIComponent:即能對(duì)多字節(jié)非法字符編碼,又能對(duì)單字節(jié)非法字符編碼今后只要使用component就夠了何時(shí)使用?將數(shù)據(jù)通過(guò)url發(fā)送時(shí),都要先編碼再發(fā)送decondeURIComponent:對(duì)encodeURIComponent編碼的字碼。收到編碼后的字符串后,都要先解碼,再處理。返回:程序結(jié)構(gòu):3種:順序;分支;循環(huán)分支結(jié)構(gòu):程序運(yùn)行過(guò)程中,可以根據(jù)
22、不同的條件執(zhí)行不同的任務(wù)。分支結(jié)構(gòu):if結(jié)構(gòu) :一件事,要么做,要么不做 ifelse結(jié)構(gòu):2件事,二選一執(zhí)行else if結(jié)構(gòu):多件事,多選一執(zhí)行語(yǔ)法:if(條件1)/滿(mǎn)足條件1,執(zhí)行的代碼else if(條件2)/滿(mǎn)足條件2,執(zhí)行的代碼else if(條件n)/滿(mǎn)足條件n,執(zhí)行的代碼else/以上條件都不滿(mǎn)足時(shí),默認(rèn)執(zhí)行的代碼如果前一個(gè)條件已經(jīng)滿(mǎn)足,則后續(xù)else if不再執(zhí)行!分支結(jié)構(gòu)中的條件,可以不是邏輯表達(dá)式!*如果不是,js會(huì)自動(dòng)轉(zhuǎn)換為Boolean類(lèi)型:*0,null,undefined,NaN,”都轉(zhuǎn)為false;其余,都轉(zhuǎn)為true!*Day04switchcase多條分支,
23、根據(jù)條件判斷,選擇執(zhí)行語(yǔ)法:switch(表達(dá)式)case 表達(dá)式1:/ 如果表達(dá)式的值=表達(dá)式1的值 代碼段1;Case 表達(dá)式n:代碼段n;default:/如果表達(dá)式的值和所有case都不相等, 默認(rèn)代碼段;運(yùn)行機(jī)制:如果找到與表達(dá)式值匹配的case,不但執(zhí)行當(dāng)前case下的代碼,而且之后所有代碼都被觸發(fā)! 返回值:break:退出當(dāng)前結(jié)構(gòu);返回值> 多個(gè)條件共用同一套執(zhí)行邏輯時(shí),不加break!循環(huán)結(jié)構(gòu):程序反復(fù)執(zhí)行同一套代碼段。遇到結(jié)束條件,會(huì)結(jié)束執(zhí)行。沒(méi)有循環(huán)結(jié)束條件,永遠(yuǎn)循環(huán)執(zhí)行死循環(huán)循環(huán)三要素:1.循環(huán)條件:循環(huán)繼續(xù)執(zhí)行的條件。 一旦循環(huán)條件不滿(mǎn)足,循環(huán)立刻退出! 2.循
24、環(huán)變量:用于循環(huán)條件中做判斷的變量 循環(huán)變量都會(huì)向循環(huán)退出的趨勢(shì)變化(不滿(mǎn)足循環(huán)條件的趨勢(shì))循環(huán)計(jì)數(shù)器3.循環(huán)體:每次循環(huán)要做的事情while循環(huán):當(dāng)滿(mǎn)足條件時(shí),就繼續(xù)循環(huán)做事語(yǔ)法:var 循環(huán)變量while(循環(huán)條件) 循環(huán)體;迭代變化循環(huán)變量;break:退出當(dāng)前結(jié)構(gòu)while中何時(shí)用break:循環(huán)條件不滿(mǎn)足之前,希望強(qiáng)行退出循環(huán)。如何使用break?可以放在任何需要退出循環(huán)的位置。隨機(jī)數(shù):Math.random():0<=n<1任意minmax之間取隨機(jī)數(shù)公式:parseInt(Math.random()*(max-min+1)+min)例子:do-while循環(huán):先執(zhí)行一
25、次循環(huán)體,再判斷是否繼續(xù)!如果第一次循環(huán)條件不滿(mǎn)足,循環(huán)體至少可以執(zhí)行1次!變量聲明提前:相同作用域內(nèi),var無(wú)論出現(xiàn)在什么位置。解析時(shí),優(yōu)先提取到j(luò)s開(kāi)始位置聲明!while vs do while:如果第一次條件就可能不成,也想執(zhí)行一次,必須用do while如果第一次條件一定滿(mǎn)足,do while等效于whilefor循環(huán):完全等效于while循環(huán)。循環(huán)變量變化規(guī)律固定,循環(huán)次數(shù)已知/固定for(聲明并初始化循環(huán)變量;循環(huán)條件;迭代循環(huán)變量;)循環(huán)體continue:跳過(guò)本輪循環(huán),繼續(xù)執(zhí)行下一輪循環(huán)Day05 數(shù)組:存儲(chǔ):連續(xù)存儲(chǔ)多個(gè)數(shù)據(jù)的存儲(chǔ)空間 使用:相當(dāng)于多個(gè)變量的集合why?現(xiàn)實(shí)
26、中數(shù)據(jù)都是批量分類(lèi)管理何時(shí)使用:只要批量管理多個(gè)數(shù)據(jù),就要用數(shù)組保存如何使用:創(chuàng)建,初始化,訪(fǎng)問(wèn)數(shù)組中的數(shù)據(jù)創(chuàng)建:數(shù)組都是用創(chuàng)建出來(lái)的。var arr=;à創(chuàng)建了一個(gè)數(shù)組對(duì)象,數(shù)組中包含0個(gè)元素var arr=95,61,95;à創(chuàng)建了一個(gè)數(shù)組對(duì)象,數(shù)組中連續(xù)存儲(chǔ)3個(gè)元素:91,61,95兩個(gè)不限制:1.不限制元素個(gè)數(shù)!2.不限制元素?cái)?shù)據(jù)類(lèi)型*數(shù)組是引用類(lèi)型的對(duì)象*原始類(lèi)型:數(shù)據(jù)保存在變量本地引用類(lèi)型:數(shù)據(jù)不保存變量本地!保存在“堆”中。由地址指向?qū)嶋H數(shù)據(jù)引用類(lèi)型特點(diǎn):可以保存多個(gè)數(shù)據(jù),而且數(shù)據(jù)個(gè)數(shù)隨時(shí)可變why?原始類(lèi)型中只能保存一個(gè)值,1個(gè)值無(wú)法精確描述一個(gè)東西,現(xiàn)實(shí)中
27、,都是用多個(gè)屬性共同描述一個(gè)東西只要是對(duì)象,一定在堆里,對(duì)象一定有地址。對(duì)象:凡是存儲(chǔ)在堆中的,都是對(duì)象!使用引用類(lèi)型的對(duì)象:使用變量,等效于使用對(duì)象的地址 使用對(duì)象地址,等效于使用對(duì)象本身數(shù)組對(duì)象支持直接輸出數(shù)組內(nèi)容其他數(shù)組創(chuàng)建語(yǔ)法:var arr=new Array(num); New:要在堆中開(kāi)辟空間! Array:ECMAScript標(biāo)準(zhǔn)中的內(nèi)置類(lèi)型 new Array:在堆中創(chuàng)建一個(gè)數(shù)組類(lèi)型的存儲(chǔ)區(qū)域 (num):初始創(chuàng)建num個(gè)元素var arr=new Array(7);undefined, undefined, undefined, undefined, undefined,
28、undefined, undefinedundefined輸出時(shí),變?yōu)橐粋€(gè)空字符var arr=new Array(元素1,元素2,元素3,.元素n);null:一個(gè)變量沒(méi)有指向任何對(duì)象何時(shí)使用null:主動(dòng)釋放對(duì)象!主動(dòng)釋放的對(duì)象不能被找回為什么原始類(lèi)型不適用null?原始類(lèi)型占用的空間很小,堆中的數(shù)據(jù)是海量的,占用空間很大null vs undefined:null 專(zhuān)用于主動(dòng)釋放對(duì)象!undefined:專(zhuān)用于自動(dòng)初始化任何未賦值的變量垃圾回收:js引擎自動(dòng)銷(xiāo)毀不再被引用的對(duì)象!垃圾回收程序:隨js程序運(yùn)行而后臺(tái)同時(shí)運(yùn)行只要對(duì)象還有變量引用,就不回收。訪(fǎng)問(wèn)數(shù)組:數(shù)組:一組變量的集合。如何
29、獲得其中一個(gè)變量/數(shù)據(jù):下標(biāo),數(shù)組中唯一標(biāo)識(shí)一個(gè)元素的序號(hào)。從0開(kāi)始。最后一個(gè)元素的下標(biāo)是“元素個(gè)數(shù)-1”js內(nèi)置對(duì)象不但封裝存儲(chǔ),而且封裝常用APIAPI:已經(jīng)實(shí)現(xiàn)的方法!可以直接調(diào)用!Array API:1. arr.length屬性:數(shù)組中的元素個(gè)數(shù)訪(fǎng)問(wèn)任意數(shù)組的最后一個(gè)元素:arrarr.length-1length屬性值,隨數(shù)組長(zhǎng)度變化而自動(dòng)變化!js中數(shù)組可以根據(jù)程序的需要,自動(dòng)擴(kuò)容,保證程序正常執(zhí)行數(shù)組擴(kuò)容和縮容:都是設(shè)置length屬性的值。如果length屬性值>舊值,會(huì)擴(kuò)容。;反之,縮容(截?cái)啵┍唤財(cái)嗟脑?,不能被找到,不?huì)被回收。只能隨數(shù)組對(duì)象一起回收。固定用法:在
30、任意數(shù)組結(jié)尾追加一個(gè)新元素:arrarr.length=新值;例子:一次輸入員工姓名直到輸入exit退出,輸出所有員工姓名:調(diào)用完函數(shù)后出棧 什么是數(shù)組遍歷:對(duì)數(shù)組中每個(gè)元素執(zhí)行相同的操作for(var i=0;i<arr.length;i+) arrià當(dāng)前元素返回:關(guān)聯(lián)數(shù)組:數(shù)組下標(biāo)可以自定義名稱(chēng)!key/value對(duì)兒何時(shí)使用關(guān)聯(lián)數(shù)組:數(shù)組元素的內(nèi)容無(wú)法描述自己的意義時(shí) 使用關(guān)聯(lián)數(shù)組為每個(gè)元素起名關(guān)聯(lián)數(shù)組的.length屬性作廢了!所以用for(var key in arr)for in:專(zhuān)門(mén)遍歷關(guān)聯(lián)數(shù)組用的!for(var key in arr)/從第一個(gè)元素開(kāi)始,將元
31、素的key賦值給臨時(shí)變量keyarrkeyà當(dāng)前正在遍歷的元素的值(value)例子:返回:關(guān)聯(lián)數(shù)組直接量定義方式:“key1”:”value1”, “key2”:”value3”,還是上面的例子改下:返回:冒泡排序:數(shù)組常用方法:x.toString()方法:任何對(duì)象都有toString方法,默認(rèn)用逗號(hào)(,)分隔每個(gè)元素將對(duì)象轉(zhuǎn)為字符串,一般不主動(dòng)調(diào)用,js在需要時(shí)自動(dòng)調(diào)用x.valueof()方法:同toString()var arr=arr.join(“分隔符”):將數(shù)組轉(zhuǎn)為字符串??勺远x分隔符!用法:將字符拼接為單詞或句子 固定用法:chars.join(”);例子:返回值
32、:var newArr=arr.concat(元素值,數(shù)組,):將參數(shù)拆散成單個(gè)元素,追加到數(shù)組中。*不會(huì)修改原數(shù)組,只能返回新數(shù)組對(duì)象*返回值:var subArr=arr.slice(start,end+1):截取數(shù)組下標(biāo)從start開(kāi)始到end位置的元素,生產(chǎn)子數(shù)組對(duì)象。*含頭不含尾*返回值:arr.splice:刪除!插入!替換!刪除數(shù)組元素:arr.splice(start,count);替換元素:arr.splice(start,count,值1,值2,)插入元素:arr.splice(start,0,值1,值2,)à從下標(biāo)為2的數(shù)組開(kāi)始刪除2個(gè)元素,然后插入16,6,2
33、2三個(gè)新的 的元素,刪除兩個(gè)插入三個(gè),比原來(lái)多了一個(gè)元素,數(shù)組自動(dòng)擴(kuò)容一個(gè)。arr.reverse():顛倒所有數(shù)組元素 arr.sort():默認(rèn)升序排列。默認(rèn)都轉(zhuǎn)為字符串排序! Day06排序:arr.sort():默認(rèn)按字符串升序排列自定義排序:2步:Step1:定義比較器函數(shù)!什么是比較器函數(shù)?定義任意兩值比較策略的方法比如:num1-num2>0 ànum1>num2 num1-num2<0 ànum1<num2function compare(a,b) return a-b;/如果返回>0數(shù),a>b; 如果返回<0數(shù),a
34、<b; 如果返回<0數(shù),a<b;如果剛好=0,a=b;Steb2:將比較器函數(shù)傳遞給sort方法!如何將方法作為參數(shù)傳遞?Js中方法也是一個(gè)對(duì)象!方法名就是指向方法對(duì)象的變量名!function compare(a,b)return a-b;/可以定義在使用前后的任何位置/原因:var聲明和function聲明自動(dòng)提前!相當(dāng)于:var compare=new Function(“a”,”b”,return a-b);/必須定義在使用之前!原因僅聲明提前,賦值不提前。這里的Function中的F必須大寫(xiě),可能選擇題會(huì)考。arr.sort(compare);注意!將方法作為對(duì)象傳
35、遞時(shí),僅使用方法名,后不加圓括號(hào)。返回值:降序:顛倒比較結(jié)果的正負(fù),可以導(dǎo)致升序變降序升序:Function compareASC(a,b)return a-b;顛倒(*-1):Function compareDESC(a,b)return -(a-b);例子:棧和隊(duì)列:什么是棧?后進(jìn)的先出?。↙IFO-last in fist out)棧其實(shí)就是數(shù)組,只不過(guò)用一對(duì)兒方法模擬了棧的操作!入棧:arr.push() 出棧:var last=arr.pop()只能從數(shù)組一端出棧,入棧。另一端封閉!棧和隊(duì)列:js中,其實(shí)就是數(shù)組! 棧:只能從一端插入/彈出元素,另一端封閉。棧操作:結(jié)尾入棧出棧:入棧
36、:arr.push(值1,.) 出棧:var last=arr.pop();/給個(gè)變量接住出來(lái)的 開(kāi)頭入棧出棧:所有元素下標(biāo)隨入棧出棧操作而變化 入棧:arr.unshift(值1,) 出棧:var first=arr.shift()隊(duì)列:FIFO 先到先得 入隊(duì)列:arr.push(值1.) 出隊(duì)列:var first=arr.shift()二維數(shù)組:數(shù)組的元素又是另一個(gè)數(shù)組對(duì)象!創(chuàng)建二維數(shù)組:創(chuàng)建普通數(shù)組,完全一樣! 只不過(guò)將普通元素,換為一個(gè)數(shù)組對(duì)象而已比如:var arr=1,2,3; var arr2=1,2,3,4,5,6,7,8; arr23=11,12,13;如何訪(fǎng)問(wèn)二維數(shù)組中
37、的任意元素: arr父數(shù)組中的下標(biāo)子數(shù)組中的下標(biāo)何時(shí)使用二維數(shù)組:數(shù)據(jù)包含明顯上下級(jí)關(guān)系內(nèi)置對(duì)象:10個(gè)內(nèi)置對(duì)象要記住,筆試string包裝類(lèi)型:*字符串內(nèi)容一旦創(chuàng)建,不能改變 str.length:返回str字符串中的字符個(gè)數(shù) 比如:var str=”Hello馬里奧”; str.length/8 str的length只管個(gè)數(shù),不管字節(jié)大小寫(xiě)轉(zhuǎn)換:都轉(zhuǎn)小寫(xiě):str=str.toLowerCase()都轉(zhuǎn)大寫(xiě):str=str.toUpperCase()何時(shí)使用:希望大小寫(xiě)一視同仁時(shí),就要先轉(zhuǎn)換,再處理Day7轉(zhuǎn)義字符:代替字符串中的非打印字符:n t如果字符串內(nèi)容中包含和語(yǔ)法沖突的特殊字符,可
38、用轉(zhuǎn)為普通字符!比如:console.log(”js是互聯(lián)網(wǎng)”第一大語(yǔ)言”);字符串內(nèi)容一旦創(chuàng)建不可改變!如果修改。都要?jiǎng)?chuàng)建新字符串,保存新結(jié)果,替換舊字符串var str=”Hello”;str.toUpperCase();console.log(str);*規(guī)律:所有字符串API ,都需要變量接收返回值!*字符串的字符個(gè)數(shù):str.length屬性字符串類(lèi)型底層其實(shí)都是用字符數(shù)組實(shí)現(xiàn)的比如:stri大小寫(xiě)轉(zhuǎn)換:大小寫(xiě)字母一視同仁時(shí),先轉(zhuǎn)化,再處理比如:重名驗(yàn)證,重復(fù)郵箱,驗(yàn)證碼獲取指定位置字符:var char=str.charAt(index); 在index位置的char獲取指定位置字
39、符的unicode編號(hào):var num=str.charCodeAt(index);字符串三大操作:1.查找關(guān)鍵字!2.替換關(guān)鍵字3.獲取子字符串查找關(guān)鍵字:var index=str.indexOf(”關(guān)鍵字”);返回關(guān)鍵字所在位置!*如果沒(méi)找到,返回-1!*IndexOf:懶:只找第一個(gè)關(guān)鍵字的位置!蠢:默認(rèn)只能從位置0開(kāi)始!var index=str.indexOf(”關(guān)鍵字”,from);from:開(kāi)始查找的位置。從from開(kāi)始向后查找從最后一個(gè)字符,向前找:只要關(guān)鍵字離結(jié)尾近,就用lastvar index=str.lastIndexOf(“關(guān)鍵字”,from);from:開(kāi)始查找的
40、位置,從from開(kāi)始向前查找*返回的index完全相同!因?yàn)樽址跀?shù)組中的下標(biāo)是固定的!所以與查找方向無(wú)關(guān)*2. 獲取子字符串:var subStr=str.slice(start,end+1)Str.substring(start,end+1)用法同slice!唯一差別:不支持負(fù)值作為參數(shù)!str.substr (start,count) count表示個(gè)數(shù)以上三個(gè)方法省略第二個(gè)參數(shù),默認(rèn)都是取到結(jié)尾!按規(guī)律分割字符串:var subs=str.split(“分隔符”,count)à中括號(hào)表示可加可不加,加count表示要切的個(gè)數(shù)鄙視題:把no zuo no die每個(gè)單詞第一個(gè)字
41、母變大寫(xiě),輸出返回:課堂練習(xí):判斷字符的種類(lèi):unicode范圍:48-57: 0-9數(shù)字字符65-90: A-Z 大寫(xiě)字母97-122: a-z 小寫(xiě)字母19968-40869:漢字其他字符什么是模式匹配:可以設(shè)置查找或替換的規(guī)則!何時(shí)使用模式匹配:要查找的關(guān)鍵字可能發(fā)生有規(guī)律的變化。如何使用模式匹配:1.先定義模式:/關(guān)鍵字/模式比如:var reg=/no/i; no是要查找的關(guān)鍵字原文,不管是不是字符串,都不加”i表示忽略大小寫(xiě)!String類(lèi)型中,提供了專(zhuān)門(mén)支持模式匹配的API!按模式替換關(guān)鍵字:str=str.replace(reg,”新值”);默認(rèn)replace僅替換第一個(gè)關(guān)鍵字
42、!要想全局替換,要在模式中定義“g”獲得*所有*關(guān)鍵字的*內(nèi)容*:var kwords=str.match(reg);只能取得關(guān)鍵字的內(nèi)容,無(wú)法確定每個(gè)關(guān)鍵字的位置!kwords.length:找到的關(guān)鍵字個(gè)數(shù)!*如果未找到,返回null!*只要有可能返回null!都要先判斷!=null,再處理!var index=str.search(reg);和indexOf完全相同!IndexOf不支持模式查找!search其實(shí)是indexOf的模式查找版*正則表達(dá)式:*重點(diǎn)什么是正則表達(dá)式:字符串中字符出現(xiàn)的規(guī)則何時(shí)使用正則表達(dá)式?驗(yàn)證字符串格式,查找關(guān)鍵字,替換關(guān)鍵字比如:銀行卡查詢(xún)密碼:6位數(shù)字
43、用戶(hù)名:字母,數(shù)字,_的組合正則表達(dá)式:選擇符號(hào):所有備選字符:必須多選一使用一個(gè),只能代表1位字符的規(guī)則!xxxx:表示除了xxxx都行!注意必須放在中的第一個(gè)位置,否則,變?yōu)槠胀ㄗ址ヅ洹?符號(hào):字符的范圍:備選字符連續(xù)的范圍!比如:0-9 a-z A-Z a-zA-Z/-可以局部使用漢字范圍:u4e00-u9fa5預(yù)定義字符集:使用簡(jiǎn)化的符號(hào),定義字符集比如:0-9- ->d a-zA-Z0-9- ->w 空字符- ->s如果規(guī)則正文中出現(xiàn)特殊符號(hào),用轉(zhuǎn)為原文比如:”.” 表示一個(gè)任意字符!. 表示愿意.數(shù)量詞:規(guī)定前邊一個(gè)字符出現(xiàn)次數(shù)的量詞語(yǔ)法:min,max num
44、:固定長(zhǎng)度 min,:至少min個(gè),多了不行手機(jī)號(hào):86s13578d9用戶(hù)名:w8,16Day8比如 :驗(yàn)證座機(jī)號(hào)碼:d3,4-d7,8特殊數(shù)量詞:+ * ? 如果正文中出現(xiàn)+*?,都要用轉(zhuǎn)義?:可有可無(wú)用?,如果有,最多只能出現(xiàn)一次*:也是表示可有可無(wú),但不限制出現(xiàn)次數(shù)+:至少出現(xiàn)一次!不限制出現(xiàn)次數(shù)():分組:改變模式的匹配順序比如:驗(yàn)證身份證號(hào):d15(d20-9xX)?比如:驗(yàn)證手機(jī)號(hào):(+86)?s*134578d9:整個(gè)正則表達(dá)式的開(kāi)頭,表示以xxx開(kāi)始$:整個(gè)正則表達(dá)式的結(jié)尾,表示以xxx結(jié)束?=:預(yù)判,前一個(gè)字符之后,必須緊跟xxx?!:預(yù)判,前一個(gè)字符之后,必須不能跟xxx
45、課堂練習(xí):中文姓名:u4e00-u9fa52,6電子郵件:w+w+(-w+)*(.w+)+其中:w+(-w+)* - -匹配域名一個(gè)以上的字母,后可跟“-字母”,可有可無(wú)(.w+)+ “.字母”組合至少出現(xiàn)1次。RegExp對(duì)象:專(zhuān)門(mén)封裝一條正則表達(dá)式,提供使用正則表達(dá)式的常用API如何使用RegExp對(duì)象:1.創(chuàng)建 2.調(diào)用API如何創(chuàng)建正則表達(dá)式對(duì)象:var regExp=/正則表達(dá)式/ig;API:var boolcan=regExp.test(“被檢查的字符串”)如果驗(yàn)證通過(guò):返回true;否則返回false驗(yàn)證要求完整匹配!查找要求部分匹配!test方法默認(rèn):只要找到就返
46、回true!如何讓test完全匹配:正則表達(dá)式前加,正則表達(dá)式后加$;查找:exec:查找關(guān)鍵字的位置,又能找到關(guān)鍵字的內(nèi)容indexOf不支持正則,search支持正則,每次只能找1個(gè)match所有內(nèi)容,但得不到位置!var arr=regExp.exec(”被查找的內(nèi)容”)arr0:找到的關(guān)鍵字內(nèi)容arr.index屬性:找到的關(guān)鍵字的位置exec方法每次也只能找一個(gè),但是每次自動(dòng)修改regExp對(duì)象的lastIndext屬性!regExp對(duì)象的lastIndex屬性:表示下次開(kāi)始匹配的位置!查找:僅判斷有沒(méi)有,或者僅查找位置:indexOf 支持正則表達(dá)式:search() 僅找所有關(guān)鍵
47、字的內(nèi)容:match() 既找位置,又找內(nèi)容:excc()從正則表達(dá)式匹配的內(nèi)容中,取一部分:RegExp.$nn:正則表達(dá)式中第n個(gè)分組,其實(shí)就是第n個(gè)圓括號(hào)強(qiáng)調(diào):分組從1開(kāi)始必須通過(guò)RegExp類(lèi)型,直接調(diào)用$n,不能使用對(duì)象!string對(duì)象與正則表達(dá)式str.replace(/正則表達(dá)式/ig,”替換值”)str.match(/正則表達(dá)式/ig) str.search() str.split(/正則表達(dá)式/)trim功能:去除字符串開(kāi)始和結(jié)尾的空格。中間空格不去掉!對(duì)輸入字符串的處理,多數(shù)要先清除開(kāi)頭和結(jié)尾空格,再處理IE8不支持trim()方法!自定義一個(gè)trim方法解決IE8不支持
48、的問(wèn)題:String總結(jié):所有API都無(wú)法修改原字符串,都會(huì)返回新字符串,所有stringAPI都需要用變量保存結(jié)果!str.length字符個(gè)數(shù)str=str.toLowerCase()/toUpperCase()查找關(guān)鍵字:var index=str.indexOf(“關(guān)鍵字”,from) var arr=str.match(/正則表達(dá)式/g)獲得子字符串:var substr=str.slice(start,end+1); str.substring(start,end+1); str.substr(start,count);替換:str=str.replace(/正則表達(dá)式/g,”替換
49、值”);獲得指定位置的字符:var char=str.charAt(index) strindex字符編碼轉(zhuǎn)碼:var code=str.charCodeAt(index); var char=string.fromCharCode(code);RegExp對(duì)象總結(jié):var reg=/正則表達(dá)式/ig;var reg=new RegExp(“正則表達(dá)式”,ig);其中所有都要改為!*驗(yàn)證str中是否包含reg匹配的關(guān)鍵字:var boolean=reg.test(str);*強(qiáng)調(diào):完整驗(yàn)證,都需要在正則表達(dá)式前加后加$*同時(shí)查詢(xún)所有關(guān)鍵字的內(nèi)容和位置while(arr=reg.exec(str
50、)!=null) arr0- ->找到的一個(gè)關(guān)鍵字 arr.index- ->當(dāng)前關(guān)鍵字的位置RegExp.$n:獲得正則表達(dá)式中第n個(gè)分組(圓括號(hào))匹配的子字符串Math類(lèi)型:封裝了所有數(shù)學(xué)計(jì)算有關(guān)的API不能new!Math.PI取整:Math.round(num)- ->四舍五入取整Math.ceil(num)- ->向上取整Math.floor(num)- ->向下取整var n=22.16Math.round(n)- ->22Math.ceil(n)- ->23Math.floor(n)- ->22Math.pow(底數(shù),冪)Math.
51、sqrt(num)/開(kāi)平方根!var n=9;Mat.pow(n,3);Math.sqrt(n)/3絕對(duì)值:Math.abs(num)Math.max/min(值1,值2)取數(shù)組中的最大值:var max=Math.max.apply(Math,arr)取數(shù)組中的最小值:var min=Math.min.apply(Math,arr)找出數(shù)組中的最大值,固定用法:把max改成min找出的是最小值隨機(jī)數(shù):Math.random():0<=r<1任意min-max:Math.floor(Math.random()*(max-min+1)+min)練習(xí):隨機(jī)生成4位驗(yàn)證碼完整驗(yàn)證碼代碼如
52、下:var codes=;/數(shù)字:48-57for(var i=48;i<=57;codes.push(i),i+);/大寫(xiě)字母:65-90for(var i=65;i<=90;codes.push(i),i+);/小寫(xiě)字母:97-122for(var i=97;i<=122;codes.push(i),i+);function getCode()var arr=;for(var i=0;i<4;i+)/從0-61之間取隨機(jī)數(shù) var index=Math.floor(Math.random()*(61-0+1)+0); var char=String.fromCharCode(codesindex); arr.push(char);return arr.join("");function trim
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 5G通信設(shè)備制造行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 云物流服務(wù)行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 建筑風(fēng)能利用行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 寵物用首飾產(chǎn)品供應(yīng)鏈分析
- 牙科用貴金屬合金商業(yè)機(jī)會(huì)挖掘與戰(zhàn)略布局策略研究報(bào)告
- 假發(fā)粘貼膠水產(chǎn)品供應(yīng)鏈分析
- 醫(yī)用拐杖產(chǎn)品供應(yīng)鏈分析
- 卸妝霜產(chǎn)品供應(yīng)鏈分析
- 制飲料用機(jī)器人出租行業(yè)經(jīng)營(yíng)分析報(bào)告
- 墊席產(chǎn)品供應(yīng)鏈分析
- 杭州本級(jí)公共租賃住房資格續(xù)審申請(qǐng)表Ⅴ
- 建筑垃圾外運(yùn)施工方案
- 上海市青浦區(qū)上海五浦匯實(shí)驗(yàn)學(xué)?!?2024-2025學(xué)年上學(xué)期六年級(jí)數(shù)學(xué)期中試卷(無(wú)答案)
- 2024年擴(kuò)大“司機(jī)之家”覆蓋范圍工作策劃方案
- 課內(nèi)閱讀(專(zhuān)項(xiàng)訓(xùn)練)-2024-2025學(xué)年統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)
- 蘇教版數(shù)學(xué)五年級(jí)上冊(cè)《解決問(wèn)題的策略》
- 2024光伏電站質(zhì)量驗(yàn)收項(xiàng)目劃分表(分部分項(xiàng))
- 2024中國(guó)東方航空技術(shù)限公司全球校園招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 2024年人教版八年級(jí)數(shù)學(xué)(上冊(cè))期中試卷及答案(各版本)
- 消化系統(tǒng)常見(jiàn)疾病課件(完美版)
- 浙江省2024年性選拔干部工作歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
評(píng)論
0/150
提交評(píng)論