JS學(xué)習(xí)筆記:三種使用方式,數(shù)組,調(diào)試,二維數(shù)組,創(chuàng)建對(duì)象,訪問(wèn)對(duì)象中屬性和功能等

1.JS的三種使用方式:
1.內(nèi)部引入(常用)
2.外部引入(一個(gè)js文件可以被多個(gè)頁(yè)面共同使用)
3.行內(nèi)(少用)
區(qū)別:內(nèi)部引入只能夠使用單頁(yè)面,外部引入可以應(yīng)用到多個(gè)頁(yè)面,行內(nèi)是直接在html標(biāo)簽內(nèi)寫(xiě)(少用)
html代碼是按照從上到下進(jìn)行解釋的,如果js獲取到網(wǎng)頁(yè)中還沒(méi)有進(jìn)行解釋的內(nèi)容,就會(huì)出現(xiàn)js??DOM堵塞
解決js堵塞的方式有兩種:
1.將js代碼寫(xiě)在網(wǎng)頁(yè)的最下面
2.使用window.onload(網(wǎng)頁(yè)加載完畢執(zhí)行)
js發(fā)生錯(cuò)誤時(shí)的堵塞,js代碼一旦發(fā)生錯(cuò)誤,錯(cuò)誤后的代碼將不會(huì)執(zhí)行,但不會(huì)影響發(fā)生錯(cuò)誤前的代碼情況
alert("111");//警告框
prompt("請(qǐng)輸入你的名稱(chēng)","王菲");//提示對(duì)話框
console.log(value);//用來(lái)進(jìn)行調(diào)試,只能夠在瀏覽器中進(jìn)行調(diào)試,點(diǎn)擊F12,console下會(huì)顯示調(diào)試的內(nèi)容
document.write("內(nèi)容可以是普通文字和html代碼,css樣式")
第一種調(diào)試的方式:
使用alert()去打印變量的值進(jìn)行縮小范圍調(diào)試
第二種調(diào)試方式:
在瀏覽器中點(diǎn)擊F12去看錯(cuò)誤信息
js中變量都是弱類(lèi)型的,不管聲明什么數(shù)據(jù)類(lèi)型都使用var進(jìn)行聲明,如果你要判斷這個(gè)類(lèi)型到底是聲明類(lèi)型,可以使用typeof關(guān)鍵字進(jìn)行查看。
js中的數(shù)據(jù)類(lèi)型包含6種,5種基本數(shù)據(jù)類(lèi)型和一種復(fù)雜數(shù)據(jù)類(lèi)型
number:所有的數(shù)字都屬于number,不管小數(shù)還是整數(shù)
boolean:true? false
string:可以使用""和‘’進(jìn)行聲明,但是不要混著用
null:代表空
undefined:聲明了變量未賦值的空
//聲明的是什么類(lèi)型就是什么類(lèi)型,確定死就是強(qiáng)類(lèi)型
//聲明的類(lèi)型不確定這個(gè)是什么類(lèi)型,就是弱類(lèi)型
//如果做一種結(jié)果不是數(shù)字,也不是字符串,就得到NaN(不是數(shù)字)
Object是所有引用數(shù)據(jù)類(lèi)型的統(tǒng)稱(chēng),包含元素節(jié)點(diǎn),其他類(lèi)型
下載谷歌(用的最多,調(diào)試方便)或者火狐瀏覽器(調(diào)試的時(shí)候提示是中文的,調(diào)試方便)
函數(shù)(方法):代碼塊,將具有特定功能的代碼塊封裝為一個(gè)函數(shù)
js的函數(shù)分為系統(tǒng)函數(shù)和自定義函數(shù):
自定義函數(shù)分為定義函數(shù)和函數(shù)表達(dá)式
定義函數(shù)語(yǔ)法:
function? ? ? 函數(shù)名(參數(shù)列表){
函數(shù)體
}
調(diào)用時(shí)調(diào)用函數(shù)名??
函數(shù)表達(dá)式語(yǔ)法:
var? 變量名接收=function(參數(shù)列表){
函數(shù)體
}
調(diào)用時(shí)調(diào)用變量名即可??
不管有沒(méi)有聲明返回值,都可以返回,也可以不返回
參數(shù):不管我定義沒(méi)有定義參數(shù),都可以傳參,也可以不傳參
將字符串轉(zhuǎn)為數(shù)字類(lèi)型:
Number(參數(shù)就是需要轉(zhuǎn)型的內(nèi)容);
轉(zhuǎn)為Boolean類(lèi)型:
Boolean(參數(shù)就是需要轉(zhuǎn)型的內(nèi)容);
轉(zhuǎn)為字符串類(lèi)型:
需要轉(zhuǎn)型的內(nèi)容.toString();
形參:只是聲明一下,并沒(méi)有具體的值,值需要通過(guò)其他調(diào)用的地方進(jìn)行傳過(guò)來(lái)
實(shí)參:具體傳入的內(nèi)容
isNaN(內(nèi)容):是不是非數(shù)值
arguments:對(duì)于參數(shù)過(guò)多的時(shí)候,它可以得到參數(shù)列表,返回的結(jié)果是一個(gè)數(shù)組形式,可以使用下標(biāo)進(jìn)行訪問(wèn)其內(nèi)容
數(shù)組:
js中的數(shù)組創(chuàng)建使用的是[],下標(biāo)也是從0開(kāi)始
由于js是弱類(lèi)型語(yǔ)言,所以其數(shù)組不會(huì)規(guī)定必須放什么類(lèi)型,可以放入任何類(lèi)型,甚至是數(shù)組,對(duì)象
數(shù)組的數(shù)據(jù)類(lèi)型為Object數(shù)組的創(chuàng)建:
第一種?:隱式方式創(chuàng)建數(shù)組
?var? b=['11',22,'你好',['大家好',11]];
js中的數(shù)組和java中的list集合很像,不限制輸入的長(zhǎng)度(自動(dòng)增長(zhǎng))。
第二種:使用構(gòu)造函數(shù)創(chuàng)建數(shù)組
var? b=new? Array('你好',11,'快開(kāi)學(xué)啦!');
?console.log(b);
第三種:使用下標(biāo)索引給數(shù)組賦值
?var? v=new? Array(2);//數(shù)組的默認(rèn)長(zhǎng)度為2
v[0]='你好很好';
?v[1]=11;
v[2]='快開(kāi)學(xué)啦';
console.log(v);
數(shù)組的初始值基本沒(méi)有什么意義,在實(shí)際賦值的時(shí)候數(shù)值的長(zhǎng)度可以大于數(shù)組的初始個(gè)數(shù)修改數(shù)組的內(nèi)容,是使用下標(biāo)進(jìn)行修改。
第一種? ? ? ? 遍歷數(shù)組? ? for循環(huán)進(jìn)行遍歷
for(var? i=0;i<v.length;i++){
document.write(v[i]+"<br>");
}
//第二種? ? for? in? 進(jìn)行遍歷數(shù)組
for(var? i? in? v){
document.write(i+"<br>");
}
?//第三種遍歷? ? ? ? for? ? of
for(var? i? of? v){
document.write(i+"<br>");
}
//創(chuàng)建二維數(shù)組的語(yǔ)法:
var? v=[["張三","李四"],["王五","馬六"],["秦叔寶","尉遲恭"]]; 遍歷二維數(shù)組
for(var? i? of? erwei){
for(var? j? of? i){
document.write(j+"<br>");
}
}
js創(chuàng)建對(duì)象的兩種方式:
//第一種,直接創(chuàng)建:
var? v={'bianhao':1,'name':'香蕉','price':3,'num':3};
//第二種? 使用new創(chuàng)建
var? v1=new? Object();
v1.bianhao=2;
v1.name='橘子';
v1.price=4;
v1.num=2;
定義對(duì)象的功能使用匿名函數(shù)進(jìn)行定義
v1.gongneng=function(){
alert(內(nèi)容);
}
訪問(wèn)對(duì)象中屬性和功能:
對(duì)象名稱(chēng)['屬性的鍵']? ? ? 對(duì)象名稱(chēng).屬性的鍵
第一種使用變量名[“屬性名”]
添加 v[“name”]=”王五”;
第二種使用變量名.屬性名添加 v.name=”王五”;修改對(duì)象的屬性也是使用變量名[“屬性名”]或者是 v.name
刪除對(duì)象的屬性:
delete? 對(duì)象的屬性名
在js中變量不是易變的,但是對(duì)象是易變的, js對(duì)象在進(jìn)行重新賦值的時(shí)候不會(huì)重新創(chuàng)建一個(gè)對(duì)象內(nèi)存,而是在原內(nèi)存上添加一個(gè)新的名詞。
遍歷對(duì)象的時(shí)候使用for? ? in? ? 進(jìn)行遍歷:for(? var? i? in? a){ document.write(a[i]); }?
js的構(gòu)造函數(shù)和普通函數(shù)創(chuàng)建類(lèi)似,主要的區(qū)別在于js構(gòu)造方法用于創(chuàng)建對(duì)象
JS中的隨機(jī)數(shù)Math.Random()*30,
0到1之間的小數(shù),取整數(shù)部分。
Math.floor()document.getElementById("div1"):得到頁(yè)面中的ID元素
docum?ent.createElement("標(biāo)簽名稱(chēng)"):創(chuàng)建一個(gè)頁(yè)面元素
creatediv.style.width=100px:設(shè)置創(chuàng)建的這個(gè)div的css樣式
div1.appendChild(creatediv):將創(chuàng)建的元素添加到元素div1中