您好,登錄后才能下訂單哦!
這篇文章主要介紹“JavaScript基礎(chǔ)知識點有哪些”,在日常操作中,相信很多人在JavaScript基礎(chǔ)知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript基礎(chǔ)知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
1.什么是javascript
javascript簡稱為js,是一種運行于js解釋器/引擎中的腳本語言 js的運行環(huán)境: 1.獨立安裝的js解釋器(node) 2.嵌入在瀏覽器內(nèi)核中的js解釋器
2.js的發(fā)展史
1.1992年Nombas公司為自己開發(fā)了一款腳本語言SciptEase 2.1995年Netscape(網(wǎng)景)開發(fā)了一款腳本語言LiveScrpt,后來更名javascript 3.1996年Microsoft在IE3.0版本中克隆javascript,JScript 4.1997年,javascript提交給ECMA(歐洲計算機制造商聯(lián)合會)。定義ECMAScript,簡稱ES5,ES6
3.js組成部分
1.核心(ECMAScript) 2.DOM (Document object model)文檔對象模型 3.BOM (Browser object model)瀏覽器對象模型
4.js的特點
1.語法類似于c,java 2.無需編譯,由js解釋器直接運行 3.弱類型語言 4.面向?qū)ο蟮?/pre>2.JavaScript的基礎(chǔ)語法
1.使用javascript
1.搭建運行環(huán)境 1.獨立安裝的JS解釋器-NodeJS 1.在命令行界面:輸入node console.log("你好,世界"); 在控制臺打印輸出 說明:js是可以獨立在js解釋器中運行 2.使用瀏覽器內(nèi)核中嵌的js解釋器 瀏覽器內(nèi)核負(fù)責(zé)頁面內(nèi)容的渲染,由兩部分組成: 內(nèi)容排版引擎-解析:HTML/CSS 腳本解釋引擎-解析:javascript 1.直接在Console(控制臺)中輸入腳本并運行 2.將js腳本嵌入在HTML頁面中執(zhí)行 1.html元素的事件中執(zhí)行js腳本 事件-onclick-鼠標(biāo)單擊時要執(zhí)行的操作 2.在<script>中編寫腳本并執(zhí)行 網(wǎng)頁的任何位置處,嵌入一對<script>標(biāo)記,并且將腳本編寫在<script>標(biāo)記中。 3.使用外部腳本文件(.js為后綴) 1.創(chuàng)建腳本文件(.js)并在文件中編寫腳本 2.在使用的網(wǎng)頁中引用腳本文件 <script src="腳本文件的url"></script> 3.js調(diào)試,F(xiàn)12查看錯誤,出錯時不影響其它代碼塊,后續(xù)代碼繼續(xù)執(zhí)行。 <script> /*這個腳本錯誤*/ document.writ("<h4>周芷若</h4>"); </script> <script> /*繼續(xù)執(zhí)行*/ console.log("金花婆婆"); </script> 3.通過語法規(guī)范 1.語句:可執(zhí)行的最小單元 必須以;結(jié)束 嚴(yán)格區(qū)分大小 所有的符號必須是英文 2.注釋: // :單行注釋 /**/:多行注釋3.變量和常量
1.變量聲明
1.聲明變量 var 變量名; 2.為變量賦值 變量名=值; 3.聲明變量是直接賦值 var 變量名=值; ex: var uname="張無忌"; var age=20; 注意: 1.允許在一條語句中聲明多個變量,用逗號隔開變量名。 var uname="韓梅梅",uage=20; 2.如果聲明變量,但未賦值,則值默認(rèn)為undefined 3.聲明變量時可以不適用var,但不推薦 uname="tom";2.變量名的規(guī)范
1.不允許以數(shù)字開頭 2.不允許使用關(guān)鍵詞和保留關(guān)鍵字 3.最好見名知意 var uname; var uage; 4.允許包含字母,數(shù)字,下劃線(_),$ var $name="Tom"; 5.盡量使用小駝峰命名法 var userName; var uname; var _uname;//下劃線 var user_name;//下劃線 var UserName;//大駝峰命名法4.變量的使用
1.聲明變量未賦值,值默認(rèn)為undefined 2.使用未聲明過的變量 報錯 3.賦值操作 變量名出現(xiàn)在=的左邊,一律是賦值操作 var uname="林妹妹"; 4.取值操作 變量只要沒出現(xiàn)在=的左邊,一律是取值操作 var uage=30; console.log(uage); var num1=uage;5.常量
1.什么是常量 在程序中,一經(jīng)聲明就不允許被修改的數(shù)據(jù)就是常量。 2.語法 const 常量名=值; 常量名在程序中,通常采用大寫形式。 const PI=3.1415926;5.1數(shù)據(jù)類型
1.數(shù)據(jù)類型的作用
規(guī)定了數(shù)據(jù)在內(nèi)存中所占的空間 10.1 64位 8個字節(jié) bit:位 8bit=1byte字節(jié) 1024byte=1KB 1024KB=1MB 1024MB=1G 1024G=1T2.數(shù)據(jù)類型詳解
1.數(shù)據(jù)類型分兩大類 原始類型(基本類型) 引用類型 1.原始類型 1.Number 類型 數(shù)字類型 作用:可以表示32位的整數(shù),也可以表示64位的浮點數(shù)(小數(shù)) 整數(shù): 1.十進制 10 2.八進制 由0-7八個數(shù)字組成,逢八進一 八進制中以0開始 var num=010; 3.十六進制 由0-9和A-f組成,逢十六進一 A:10 B:11 C:12 D:13 E:14 F:15 十六進制中以0X開始 浮點數(shù):又稱小數(shù) 小數(shù)點計數(shù)法:12.58 指數(shù)計數(shù)法:3.4e3(3.4*10的3次方) 2.String類型 字符串類型 作用:表示一系列的文本字符數(shù)據(jù),如:姓名,性別,住址... 字符串中的每個字符,都是由Unicode碼的字符,標(biāo)點和數(shù)字組成。 Unicode碼:每個字符在計算機中都有一個唯一的編碼表示該字符, 該碼就是unicode碼(他是十六進制) 1.查找一個字符的unicode碼: "李".charCodeAt(); //10進制輸出 "李".charCodeAt().toString(2); //二進制輸出 "李".charCodeAt().toString(16); //十六進制 李的unicode碼是:674e 2.如何將674e轉(zhuǎn)換為漢字? 用\u ex: var str="\u674e"; console.log(str);//結(jié)果是“李” 漢字的Unicode碼的范圍: \u4e00~\u9fa5 3.特殊字符需要轉(zhuǎn)義字符 \n: 換行 \t: 制表符(縮進) \": " \': ' \\: \ 3.Boolean類型 布爾類型 作用:在程序中表示真或假的結(jié)果 取值: true或false var isBig=true; var isRun=false; 在參與到數(shù)學(xué)運算時,true可以當(dāng)成1做運算,false可以當(dāng)做0做運算。 var res=25+true; //結(jié)果為26 4.Undefined類型 作用:表示使用的數(shù)據(jù)不存在 Undefined類型只有一個值,即undefined當(dāng)聲明的變量未賦值(未初始化)時, 該變量的默認(rèn)值就是undefined. 5.Null類型 null用于表示不存在的對象。 Null類型只有一個值,即null,如果函數(shù)或方法要返回的是對象, 找不到該對象,返回的就是null。5.2數(shù)據(jù)類型的轉(zhuǎn)換
1.隱式(自動)轉(zhuǎn)換 不同類型的數(shù)據(jù)在計算過程中自動進行轉(zhuǎn)換 1.數(shù)字+字符串:數(shù)字轉(zhuǎn)換為字符串 var num=15; var str="Hello"; var res=num+str; //結(jié)果:15Hello 2.數(shù)字+布爾:將布爾轉(zhuǎn)換為數(shù)字true=1,false=0 var num1=10; var isSun=true; var res1=num1+isSun;//結(jié)果:11 3.字符串+布爾:將布爾轉(zhuǎn)換為字符串 var str1="Hello"; var isSun1=true; var res2=str1+isSun1;//結(jié)果:Hellotrue 4.布爾+布爾:將布爾轉(zhuǎn)換為數(shù)字 true=1,false=0; var isSun2=true; var isSun3=flase; var res=isSun2+isSun3;//結(jié)果1 2.強制轉(zhuǎn)換 -轉(zhuǎn)換函數(shù) 1.toString() 將任意類型的數(shù)據(jù)轉(zhuǎn)換為字符串 語法: var num=變量.toString(); ex: var num=15; var str=num.toString(); console.log(typeof(str)); 2.parseInt() 將任意類型的數(shù)據(jù)轉(zhuǎn)換為整數(shù) 如果轉(zhuǎn)換不成功,結(jié)果為NaN(Not a Number) 語法:var result=parseInt(數(shù)據(jù)); 3.parseFloat() 將任意類型的數(shù)據(jù)轉(zhuǎn)換為小數(shù) 如果轉(zhuǎn)換不成功,結(jié)果為NaN 語法:var result=parseFloat(數(shù)據(jù)); 4.Number() 將任意類型數(shù)據(jù)轉(zhuǎn)為Number類型 注意:如果包含非法字符,則返回NaN 語法:var result=Number(數(shù)據(jù));6.運行符和表達(dá)式
1.什么是表達(dá)式
由運算符連接操作數(shù)所組成的式子就是表達(dá)式。 ex: 15+20 var x=y=40 任何一個表達(dá)式都會有結(jié)果。2.運算符
1.算術(shù)運算符 +,-,*,/,%,++,-- 5%2=1; ++:自增運算,只做+1操作 ++在前:先自增,再運算; ++在后:先運算,再自增; ex: var num=5; console.log(num++);//打印5,變?yōu)? console.log(++num);//變?yōu)?,打印7 ex: var num=5; 5 (6)6 6(7) (8)8 var res=num+ ++num +num++ + ++num +num++ +num; 8(9) 9 結(jié)果:42 2.關(guān)系運算符(比較) >,<,>=,<=,==,===(全等),!=,!==(不全等) 關(guān)系運算的結(jié)果:boolean類型(true,false) 問題: 1. 5 > "10" 結(jié)果:false 關(guān)系運算符兩端,只要有一個是number的話,另外一個會隱式轉(zhuǎn)換為number類型,再進行比較。 2."5">"1 0" 結(jié)果:true "5".charCodeAt(); //53 "1".charCodeAt(); //49 "張三豐" > "張無忌" 結(jié)果:false 19977 > 26080 3."3a" > 10 結(jié)果:false Number("3a")--->NaN 注意: NaN與任何一個數(shù)據(jù)做比較運算時,結(jié)果都是false. console.log("3a">10); false console.log("3a"==10); false console.log("3a"<10); false isNaN()函數(shù): 語法:isNaN(數(shù)據(jù)); 作用:判斷指定數(shù)據(jù)是否為非數(shù)字,如果不是數(shù)字,返回值為true,是數(shù)字的話返回的值為false console.log(isNaN("3")); //false console.log(isNaN("3a")); //ture console.log("3a"!=10);//true 3.邏輯運算符 !,&&,|| !:取反 &&:并且,關(guān)聯(lián)的兩個條件都為true,整個表達(dá)式的結(jié)果為true ||:或者,關(guān)聯(lián)的兩個條件,只要有一個條件為true,整個表達(dá)式的結(jié)果就為true 短路邏輯: 短路邏輯&&: 當(dāng)?shù)谝粋€條件為false時,整體表達(dá)式的結(jié)果就為false,不需要判斷第二個條件 如果第一個條件為true,會繼續(xù)判斷或執(zhí)行第二個條件 短路邏輯||: 當(dāng)?shù)谝粋€條件為true時,就不再執(zhí)行后續(xù)表達(dá)式,整體結(jié)果為true。 當(dāng)?shù)谝粋€條件為false時,繼續(xù)執(zhí)行第二個條件或操作。 4.位運算符 <<,>>,&,|,^ 右移是把數(shù)變小,左移是把數(shù)變大 &:按位與,判斷奇偶性 任意數(shù)字與1做按位與,結(jié)果為1,則為奇數(shù),結(jié)果為0,則為偶數(shù)。 var num=323; var result=num & 1 console.log(result); //結(jié)果為1 |:按位或,對小數(shù)取整 將任意小數(shù)與0做按位或,結(jié)果則取整數(shù)部分。 ^:按位異或,用于交換兩個數(shù)字 二進制位數(shù),逐位比較,不同則為1,相同則為0 a=a^b; b=b^a; a=a^b; 5.賦值運算符和擴展賦值運算符 1.賦值運算 = var uname="TOM"; 2.擴展賦值運算符 +=,-=,*=,/=,%=,^=... a=a+1 a+=1;a++;++a a=a^b a^=b 6.條件(三目)運算符 單目(一目)運算符,只需要一個操作數(shù)或表達(dá)式 ex: a++,b--,!isRun 雙目(二元)運算符,需要兩個操作數(shù)或表達(dá)式 +,-,*,/,%,>,<,>=,<=,==,!=,===,!==,&&,||,&,|,^ 三目(三元)運算符,需要三個操作數(shù)或表達(dá)式 條件表達(dá)式?表達(dá)式1:表達(dá)式2; 先判斷條件表達(dá)式的值, 如果條件為true,則執(zhí)行表達(dá)式1的操作 如果條件為false,則執(zhí)行表達(dá)式2的操作 ex:成績大于60及格,否則,輸出不及格7.函數(shù)-function
1.什么是函數(shù)
函數(shù),function,也稱為方法(method) 函數(shù)是一段預(yù)定義好,并可以被反復(fù)執(zhí)行的代碼塊。 預(yù)定義:提前定義好,并非馬上執(zhí)行。 代碼塊:可以包含多條可執(zhí)行的語句 反復(fù)執(zhí)行:允許被多次調(diào)用 函數(shù)-功能 parseInt(); parseFloat(); Number(); console.log(); alert(); document.write();2.定義和使用函數(shù)
1.普通函數(shù)的聲明和調(diào)用(無參數(shù)無返回值) 1.聲明 function 函數(shù)名(){ //函數(shù)體 若干可執(zhí)行的語句 } 2.調(diào)用函數(shù) 在任意javascript合法的位置處通過 函數(shù)名(); 對函數(shù)進行調(diào)用。 2.帶參函數(shù)的聲明和調(diào)用 1.聲明 function 函數(shù)名(參數(shù)列表){ //函數(shù)體 } 參數(shù)列表:可以聲明0或多個參數(shù),多個參數(shù)間用逗號隔開 聲明函數(shù)時,聲明的參數(shù),稱之為“形參” 2.調(diào)用 函數(shù)名(參數(shù)值列表); 注意:調(diào)用函數(shù)時,傳遞的參數(shù)數(shù)值,稱之為“實參”。 盡量按照聲明函數(shù)的格式進行調(diào)用 3.帶返回值函數(shù)聲明和調(diào)用 1.聲明 function 函數(shù)名(參數(shù)){ //函數(shù)體 return 值; //return關(guān)鍵字,程序碰到return關(guān)鍵詞,就立馬跳出并且把值帶出去 } 注意:最多只能返回一個值 2.調(diào)用 允許使用一個變量接收函數(shù)的返回值 var result=函數(shù)名(實參);8.作用域
1.什么是作用域 作用域表示的是變量或函數(shù)的可訪問范圍。 JS中的作用域分兩種: 1.函數(shù)作用域 只在函數(shù)范圍內(nèi)有效 2.全局作用域 代碼的任何位置都有效2.函數(shù)作用域中變量
又稱為局部變量,只在聲明的函數(shù)中有效 ex: function test(){ var num=10; }3.全局作用域中的變量
又稱為全局變量,一經(jīng)聲明,任何位置都能用 1.不在function中聲明的變量,為全局變量 2.聲明變量不使用var,無論任何位置聲明,都是全局變量(不推薦) 注意: 全局變量和局部變量沖突時,優(yōu)先使用局部變量。 3.變量的聲明提前 1.什么是聲明提前 在JS程序正式執(zhí)行之前,function聲明的函數(shù), 會將所有var聲明的變量,都預(yù)讀(聲明)到所在作用域的頂部,但賦值還是保留在原位。9.按值傳遞
1.什么是按值傳遞
原始(基本)類型的數(shù)據(jù)(number,string,bool),在做參數(shù)傳遞時, 都是按照“值傳遞”的方式進行傳參的。 值傳遞:真正傳遞參數(shù)時,實際上傳遞的是值的副本(復(fù)制出來一個值), 而不是原始值。2.函數(shù)的作用域
1.分為兩種 1.局部函數(shù) 在某個function中聲明的函數(shù)。 2.全局函數(shù) 在最外層(<script>中)定義的函數(shù)就是全局函數(shù),全局函數(shù)一經(jīng)定義, 任何位置處都能調(diào)用。10.ECMAScript提供一組全局函數(shù)
1.parseInt()
2.parseFloat()
3.isNaN()
4.encodeURI()URL:uniform resource locator路徑 URI:uniform resource Identifier 作用:對統(tǒng)一資源標(biāo)識符進行編碼,并返回編碼后的字符串 所謂的進行編碼,就是將地址中的多字節(jié)文字編成單字節(jié)的文字 (英文數(shù)字:單字節(jié),漢字2-3字節(jié)不等)5.decodeURI()
作用:對已經(jīng)編碼的URI進行解碼,并返回解碼后的字符串。6.encodeURIComponent()
在encodeURI的基礎(chǔ)上,允許對特殊符號進行編碼。7.decodeURIComponent()
解碼特殊符號8.eval()
作用:執(zhí)行以字符串表示的js代碼11.遞歸調(diào)用
遞歸:在一個函數(shù)的內(nèi)部再一次調(diào)用自己
問題:1*2*3*4*5 5*4*3*2*1 求5!(5*4*3*2*1) 4!(4*3*2*1) 3!(3*2*1) 2!(2*1) 1!(1*1) 5!=5*4! 4!=4*3! 3!=3*2! 2!=2*1! 1!=1 通過一個函數(shù),求數(shù)字n的階乘 10!=10*(10-1)! 效率: 在本次調(diào)用還未結(jié)束時,就開始下次的調(diào)用,本次調(diào)用就會被掛起, 直到所有的調(diào)用都完成之后,才會依次返回,調(diào)用的次數(shù)越多,效率越低。12.分支結(jié)構(gòu)
1.if結(jié)構(gòu)
if(條件){ 語句塊; } 注意: 條件盡量是boolean的,如果不是boolean,以下情況會當(dāng)做false處理 if(0){...} if(0.0){...} if(""){...} if(undefined){...} if(null){...} if(NaN){...} 注意:if后的{}可以省略,但是不推薦,只控制if后的第一句話。2.if...else...結(jié)構(gòu)
語法: if(條件){ 語句塊 }else{ 語句塊 }3.if....else if...else...
語法: if(條件1){ 語句塊1 }else if(條件2){ 語句塊2 }else if(條件3){ 語句塊3 }else{ 語句塊n }4.switch...case
1.作用:(使用場合) 等值判斷 2.語法 1.switch(值/表達(dá)式){ case 值1: 語句塊1; break;//結(jié)束switch結(jié)構(gòu),可選的 case 值2: 語句塊2; break; ... default: 語句塊n; break; } 2.特殊用法 執(zhí)行相同操作時: switch(值/表達(dá)式){ case 值1: case 值2: case 值3: 語句塊; }12.循環(huán)結(jié)構(gòu)
1.特點
1.循環(huán)條件:循環(huán)的開始和結(jié)束 2.循環(huán)操作:要執(zhí)行的相同或相似的語句2.循環(huán)-while
語法: while(條件){ //循環(huán)體-循環(huán)操作 //更新循環(huán)條件 }3.循環(huán)的流程控制
1.break 作用:終止整個循環(huán)的運行 2.continue 作用:終止本次循環(huán)的運行,繼續(xù)執(zhí)行下一次循環(huán) ex: 循環(huán)從彈出框中錄入信息,并且打印,直到輸入exit為止。4.循環(huán)-do...while
1.語法 do{ //循環(huán)體 }while(條件); 執(zhí)行流程: 1.先執(zhí)行循環(huán)體 2.再判斷循環(huán)條件 如果條件為真,則繼續(xù)執(zhí)行循環(huán)體 如果條件為假,則跳出循環(huán)操作5.循環(huán)-for
語法: for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ //循環(huán)操作 } 表達(dá)式1:循環(huán)條件的聲明 表達(dá)式2:循環(huán)條件的判斷 表達(dá)式3:更新循環(huán)變量 執(zhí)行流程: 1.先執(zhí)行表達(dá)式1 2.判斷表達(dá)式2的結(jié)果(boolean類型) 3.如果2條件為真,則執(zhí)行循環(huán)體,否則退出 4.執(zhí)行完循環(huán)體后,再執(zhí)行表達(dá)式3 5.判斷表達(dá)式2的結(jié)果 ex: for(var i=1;i<=10;i++){ console.log(i); }13.for的特殊用法
1.for(表達(dá)式1;表達(dá)式2;表達(dá)式3;){}
1.省略表達(dá)式 三個表達(dá)式可以任意省略,分號不能省 但一定在循環(huán)的內(nèi)部或外部將表達(dá)式補充完整 2.表達(dá)式1和表達(dá)式3 允許寫多個表達(dá)式,用逗號隔開表達(dá)式14.循環(huán)嵌套
1.循環(huán)嵌套
在一個循環(huán)的內(nèi)部,又出現(xiàn)一個循環(huán) for(var i=1;i<100;i++){ //外層循環(huán) for(var j=1;j<=10;j++){ //內(nèi)層循環(huán) } } 外層循環(huán)走一次,內(nèi)層循環(huán)走一輪15.數(shù)組
1.什么是數(shù)組
在一個變量中保存多個數(shù)據(jù)。 數(shù)組是按照線型順序來排列的-線型結(jié)構(gòu) 數(shù)組中:除了第一個元素外,每個元素都有一個直接的"前驅(qū)元素"。 數(shù)組中:除了最后一個元素外,每個元素都有一個會直接的"后繼元素"。2.聲明數(shù)組
1.語法 1.var 數(shù)組名=[]; var names=[]; 2.var 數(shù)組名=[元素1,元素2,元素3...]; var names=["孫悟空","豬八戒","沙和尚"]; 3.var 數(shù)組名=new Array(); var names=new Array(); 4.var 數(shù)組名=new Array(元素1,元素2...); var names=new Array("林黛玉","賈寶玉","王熙鳳");3.數(shù)組的使用
1.取值和賦值操作 取值: 數(shù)組名[下標(biāo)] var newArr=["tom","lilei"]; newArr[0] 賦值: 數(shù)組名[下標(biāo)]=值; newArr[2]="韓梅梅"; 2.獲取數(shù)組的長度 數(shù)組長度:數(shù)組中元素的個數(shù) 屬性:length 語法:數(shù)組名.length 3.配合循環(huán),遍歷數(shù)組中的每個元素 for(var i=0;i<names.length;i++){ i:表示數(shù)組中每個元素的下標(biāo) names[i]:每個元素 } length表示數(shù)組中即將要插入的元素的下標(biāo) var names=["tom","lili","lucy"]; names[names.length]="lilei";16.關(guān)聯(lián)數(shù)組
1.關(guān)聯(lián)數(shù)組 以字符串作為元素的下標(biāo)的數(shù)組,就是關(guān)聯(lián)數(shù)組。 以數(shù)字作為下標(biāo)的數(shù)組,就是索引數(shù)組。 $array=["name"=>"tom"] 2.js中的關(guān)聯(lián)數(shù)組 var array=[]; array["字符串下標(biāo)"]=值; 注意: 1.關(guān)聯(lián)數(shù)組中,字符串下標(biāo)的內(nèi)容是不記錄到length中的 2.只能通過 字符串 做下標(biāo)取值 3.for...in 遍歷出任意數(shù)組中的字符串下標(biāo) 以及 索引下標(biāo) 語法:for(var 變量 in 數(shù)組名){ //變量:字符串下標(biāo) 或 索引下標(biāo) }17.冒泡排序
1.什么是冒泡 排序算法之一,將一組數(shù)據(jù)進行排序,小的數(shù)字往前排,大的數(shù)字往后排。 兩兩比較,小的靠前。 var arr=[9,23,6,78,45]; 5個數(shù) 比4輪 第一輪:比較了4次 第二輪:比較了3次 第三輪:比較了2次 第四輪:比較了1次 1.n個數(shù)字,則比較n-1輪 for(var i=1;i<arr.length;i++) 2.輪數(shù)增加,比較的次數(shù)較少 for(var j=0;j<arr.length-i;j++) 第一輪 5 -1=4次 第二輪 5 -2=3次 第三輪 5 -3=2次 第四輪 5 -4=1次 兩兩比較 小的靠前 if(arr[j]>arr[j+1]) arr[j]^=arr[j+1]; arr[j+1]^=arr[j]; arr[j]^=arr[j+1]18.數(shù)組的常用方法
1.toString();
作用:將數(shù)組轉(zhuǎn)換為字符串,并返回轉(zhuǎn)換后的結(jié)果。 語法: var str=數(shù)組對象.toString();2.join()
作用:將數(shù)組的元素通過指定的字符連接到一起,并返回連接后字符串 語法:var str=數(shù)組對象.join("字符");3.concat()
作用:拼接兩個或更多的數(shù)組,并返回拼接后的結(jié)果 語法:var res=數(shù)組對象.concat(數(shù)組1,數(shù)組2,...);19.數(shù)組的函數(shù)
1.slice()
作用:截取子數(shù)組,從指定的數(shù)組中,截取幾個連續(xù)的元素組成一個新的數(shù)組 語法:var arr=數(shù)組名.slice(start,[end]); start:從哪個下標(biāo)位置處開始截取,取值為正,從前向后算; 取值為負(fù),從后向前算 0 1 2 var arr=["中國","美國","俄羅斯"]; -3 -2 -1 end:指定結(jié)束位置處的下標(biāo)(不包含自己),該參數(shù)可以省略, 如果省略的話,就是從strat開始一直截取到尾。2.splice()
作用:允許從指定數(shù)組中,刪除一部分元素,同時再添加一部分元素 語法:arr.splice(start,count,e1,e2...); start:指定添加或刪除元素的起始下標(biāo) count:指定要刪除元素的個數(shù),取值為0表示不刪除 e1:要增加的新元素,可以多個 返回值:返回一個由刪除元素所組成的數(shù)組3.reverse()
作用:將一個數(shù)組反轉(zhuǎn) 語法:數(shù)組名.reverse(); 注意:該函數(shù)會改變當(dāng)前數(shù)組的內(nèi)容4.sort()
作用:排序,默認(rèn)情況下按照數(shù)組元素們的Unicode碼進行升序排序。 語法:數(shù)組名.sort(); 特殊: 允許自定義排序函數(shù),從而實現(xiàn)對數(shù)字的升序或降序的排序 ex: var arr=[12,6,4,115,78]; //排序函數(shù)(升序) function sortAsc(a,b){ return a-b; } arr.sort(sortAsc); 原理: 1.指定排序行數(shù)sortAsc,定義兩個參數(shù)a和b,表示數(shù)組中相鄰的兩個數(shù)字 2.將排序函數(shù)指定給數(shù)組sort()函數(shù),數(shù)組會自動傳遞數(shù)據(jù)到sortAsc()中, 如果sortAsc()的返回值>0,則交互兩個數(shù)字的位置,否則不變。 使用函數(shù)完成升序排序: arr.sort( function(a,b){ //匿名函數(shù) return a-b; } )20.進出棧操作
JS是按照標(biāo)準(zhǔn)的“棧式操作”來訪問數(shù)組
所有的“棧式操作”的特點就是“后進先出”
1.push()入棧,在棧頂添加指定的元素,并返回新數(shù)組的長度 var arr=[10,20,30]; //向棧頂增加新的數(shù)據(jù)40 var len=arr.push(40); //42.pop()
出棧,刪除(刪除棧頂數(shù)據(jù))并返回刪除元素 注意:改變原來數(shù)組3.shift()
刪除數(shù)組頭部(第一個)的元素并返回刪除元素 語法:數(shù)組名.shift();4.unshift()
在數(shù)組的頭部(第一個)元素的位置處,增加元素,返回的是數(shù)組的長度。 語法:數(shù)組名.unshift(增加的數(shù)據(jù));3.二維數(shù)組
1.什么是二維數(shù)組在一個數(shù)組中的元素又是一個數(shù)組,也可以稱為:數(shù)組的數(shù)組。2.二維數(shù)組的使用
var names=[ ["孫悟空","豬八戒","沙和尚"], ["大喬","小喬","曹操"], ["林黛玉","賈寶玉","薛寶釵"] ]; //打印輸出“小喬” console.log(names[1][1]);到此,關(guān)于“JavaScript基礎(chǔ)知識點有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。