javascript基礎(chǔ)知識(shí)
1、var msg;//聲明一個(gè)變量,在沒(méi)有給此變量賦值以前,該變量名為:undefined
2、msg = "hello";//不適用var則可以聲明一個(gè)全局變量,但是此變量因?yàn)槭侨值?,所以容易引起其他調(diào)用的一些問(wèn)題,故不推薦
3、javaScript有5種基本數(shù)據(jù)類型,Undefined、Null、Boolean、Number和String;以及一種復(fù)雜數(shù)據(jù)類型:Object
4、var num=076;//代表的八進(jìn)制,以0開(kāi)頭,假如后面的數(shù)值超出8的范圍,例:08、079等,則按十進(jìn)制解析
5、var num=0x22;//代表十六進(jìn)制
6、NaN->Not a Number;//非數(shù)字,NaN不和任何值相等,包托它自己;判斷一個(gè)值是否可以轉(zhuǎn)換為數(shù)值的方式:isNaN(*),*為所要進(jìn)行轉(zhuǎn)化的數(shù)據(jù)
7、向Number轉(zhuǎn)化時(shí),false->0;true->1;""->0;"00022"->22;"helloworld"->NaN;注:采用的是Number()方式
8、假如采用parseInt()方式進(jìn)行轉(zhuǎn)化則與7(對(duì)字符串來(lái)說(shuō))不同,基本原理如下:
1)對(duì)String的第一個(gè)非空格字符進(jìn)行解析,若是空格則跳過(guò),假如是非數(shù)字或者負(fù)號(hào),則直接返回NaN;
2)對(duì)接下去的字符繼續(xù)解析,直到遇到非數(shù)字或者解析完成,返回已經(jīng)解析的內(nèi)容;
3)如果解析到字符串的非空格字符以0x開(kāi)頭且后面加16進(jìn)制字符則轉(zhuǎn)換成16進(jìn)制,若是0開(kāi)頭且后面加8進(jìn)制字符則轉(zhuǎn)換為8進(jìn)制;
例:"1234blue"->1234;""->NaN;"0xA"->10;"070"->56;" 22.5"->22;" 12 457 blue"->12;解析時(shí)只跳過(guò)1)中出現(xiàn)的空格
9、還可以采用parseInt(*,*)方式,后面一個(gè)變量代表的是所要轉(zhuǎn)換的進(jìn)制;可選16,10,8,2等,例parseInt("10",16)->16,此時(shí)不需要再添加0x或者0
10、toString()方法一般不必使用參數(shù),true->"true",都是按照字符串來(lái)轉(zhuǎn)換,但是當(dāng)由數(shù)字轉(zhuǎn)換為String時(shí),可以添加參數(shù),用于設(shè)置進(jìn)制
例:var num = 10->String-------num.toString()->"10";num.toString(2)->"1010";num.toString(8)->"12";
11、在JavaScript中以32位數(shù)據(jù)表示一個(gè)數(shù),左移<<不會(huì)改變符號(hào)位,例:2<<5;-->64即:10->1000000
12、右移分為兩種:有符號(hào)右移和無(wú)符號(hào)右移:
1)有符號(hào)右移:>>只移動(dòng)數(shù)據(jù)位,不移動(dòng)符號(hào)位:-64>>5 ---->-2
2)無(wú)符號(hào)右移:>>>所有的都要移動(dòng),因此負(fù)數(shù)移動(dòng)之后會(huì)變?yōu)檎龜?shù),且此正數(shù)一般非常大
12、switch語(yǔ)句中的case非常強(qiáng)大,可以是數(shù)值,也可以是字符串甚至表達(dá)式
13、javaScript中function()中可以不添加參數(shù),對(duì)于其來(lái)說(shuō)其實(shí)是由arguments[]接收的
14、javascript沒(méi)有塊級(jí)作用域,如下例子:
{
var color = "blue";
}
alert(color);
會(huì)打印出blue出來(lái),這個(gè)僅限于alert語(yǔ)句是位于全局環(huán)境中,但是在類C語(yǔ)言中則不會(huì)出現(xiàn)此種情況,一般都會(huì)銷毀for函數(shù)等循環(huán)函數(shù)除外,在javascript中也會(huì)銷毀。
15、instance of 語(yǔ)句用于判斷是否屬于某種數(shù)據(jù)類型,或者某種對(duì)象:person instanceof Object //變量person是Object?若是則返回true
16、將變量值設(shè)置為null可以解除對(duì)此變量的引用,javascript的垃圾收集器在下次運(yùn)行時(shí)會(huì)將其回收
17、引用類型與類相似,但是不是一碼事!創(chuàng)建一個(gè)引用類型有兩種方法:
1)
person.name = "zhangsan";
person.age = 30;
2)
name : "zhangsan",
age : 30 //注意此處沒(méi)有","!
};
3) 是2)與1)的結(jié)合
person.name = "zhangsan";
person.age = 30;
上述3種方法中第二種是最常用的
18、對(duì)象有三種:user-defined-object(用戶自定義對(duì)象),native-object(內(nèi)置對(duì)象)和host-object(宿主對(duì)象)
其中native-object是內(nèi)置在javascript中的對(duì)象,如Array、Math和Date等,而host-object是瀏覽器提供的對(duì)象。
19、JavaScript中打開(kāi)一個(gè)新的窗口用:window.open(url,name,features),這三個(gè)參數(shù)都是可選擇的,說(shuō)明如下:
1)url是要打開(kāi)的窗口的地址
2)name是新窗口的名字,可以通過(guò)name與新窗口進(jìn)行通訊
3)features是一個(gè)以","分割的字符串,如"height:300,width:200",其內(nèi)容是新窗口的各種屬性
20、可以在html文檔中直接調(diào)用javascript功能,這個(gè)得使用javascript:xxxxxx的方式,其中javascript被稱為javascript偽協(xié)議
例,有某方法:function test(){}
<a href="javascript:test()">test</a>//此種方法就是使用javascript偽協(xié)議進(jìn)行調(diào)用javascript方法,此種方法非常不提倡,因?yàn)椴煌瑸g覽器對(duì)此種偽協(xié)議的支持是不一樣的。
21、很多節(jié)點(diǎn)的內(nèi)容并不在其value中,如:<p id="desc">Hello world</p>,此時(shí)可以用var text = document.getElementById("desc").firstChild.nodeValue;
此處text得到的值為:Hello World
22、在html文檔中插入一個(gè)新元素的方法:
1)創(chuàng)建一個(gè)新的元素(包括其內(nèi)容等)
2)把這個(gè)新元素插入節(jié)點(diǎn)數(shù)
說(shuō)明:1)創(chuàng)建新元素的方法:var para = document.createElement("p");//創(chuàng)建一個(gè)<p></p>
此時(shí)這個(gè)元素已經(jīng)具有了<p>的所有屬性,但是里面還沒(méi)有內(nèi)容,并且并未插入到文檔中
然后用var txt = document.createTextNode(text)方法創(chuàng)建一個(gè)文本節(jié)點(diǎn)內(nèi)容,將這個(gè)文本節(jié)點(diǎn)內(nèi)容插入到<p>中
2)parent.appendChild(child)//方法可以將某個(gè)child元素插入到parent元素下
包括兩部分的工作:1-將文本節(jié)點(diǎn)插入到<p>節(jié)點(diǎn)下,para.appendChild(txt);2-將<p>節(jié)點(diǎn)插入到其他節(jié)點(diǎn)下
23、set和get方法也可以為一個(gè)對(duì)象設(shè)置屬性,稱之為存儲(chǔ)器屬性,它可以實(shí)現(xiàn)比較復(fù)雜的運(yùn)算,如:
x : 1,//數(shù)據(jù)屬性
y : 1,
get r() {return Math.sqrt(this.x*this.x + this.y*this.y);},//存儲(chǔ)器屬性,此種屬性寫法:set(或get) 屬性名稱(param(set方法有)) {函數(shù)體}
set r(newvalue) {
var oldvalue = Math.sqrt(this.x*this.x + this.y*this.y);
var radio = newvalue/oldvalue;
this.x *= ratio;
this.y *= ratio;
}
}
24、數(shù)組的操作:
1)length屬性表示長(zhǎng)度
2)join()方法:
a.join()----->"1,2,3"
a.join(" ");----->"1 2 3"
a.join("");----->"123"
3)reverse()//將數(shù)組中的元素顛倒順序
4)sort()//將數(shù)組中的元素排序并返回排序后的數(shù)組
sort()//按照字母表的順序進(jìn)行排序
if(a>b)
{
return 1;
}
else if()
{
return -1
}
else
{
return 0;
}
}
)//此種方法可以自由定義自己所需要的排序方式
5)concat()//創(chuàng)建并返回一個(gè)新的數(shù)組,它用于連接數(shù)組,它連接的是數(shù)組中的元素而不是數(shù)組本身
a.concat(4,5)----->[1,2,3,4,5]
a.concat([4,5])----->[1,2,3,4,5]
a.concat([4,5],[6,7])----->[1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]])----->[1,2,3,4,5,[6,7]]
6)slice()返回指定數(shù)組的一個(gè)片段,可以寫兩個(gè)參數(shù)或者一個(gè)參數(shù),一個(gè)參數(shù)代表是從參數(shù)當(dāng)前位置開(kāi)始一直到結(jié)尾,兩個(gè)參數(shù)是指從第一個(gè)參數(shù)到第二個(gè)參數(shù)
參數(shù)-1,指定了最后一個(gè)元素,即倒數(shù)第一個(gè)元素,而-3則指定了倒數(shù)第三個(gè)元素
a.slice(0,3);----->[1,2,3]
a.slice(3);----->[4,5]
a.slice(1,-1);----->[2,3,4]
a.slice(-3,-2);----->[3]
25、window.location = "http://www.dbjr.com.cn/";//可以用于打開(kāi)網(wǎng)頁(yè)
26、setTimeout()//兩個(gè)參數(shù),一為回調(diào)函數(shù),二為回調(diào)時(shí)間,說(shuō)明是多少毫秒之后調(diào)用此回調(diào)函數(shù),如:
clearTimeout(h);//用于取消setTimeout的調(diào)用,var h = setTimeout(func,time);
27、某個(gè)元素的單擊事件:var tempelement = document.getElementById("xx");tempelement.onclick = function(){alert("Hello");};
28、var nowtime = new Date();nowtime.toLocaleTimeString();可以顯示當(dāng)前時(shí)間(注:是時(shí)間而不包含日期)
29、setInterval(func,time);//它用來(lái)注冊(cè)指定的時(shí)間之后重復(fù)調(diào)用的函數(shù),func是重復(fù)調(diào)用的函數(shù),time是指定的時(shí)間,單位毫秒
而clearInterval(h);是用于取消注冊(cè)的事件,其中的h是var h = setInterval(func,time);
30、無(wú)論是setTimeout還是setInterval放time設(shè)定為0時(shí),都不是立即執(zhí)行,而是將這個(gè)方法放入到隊(duì)列中,等待前面的狀態(tài)執(zhí)行完畢之后才執(zhí)行
31、window.location.href//可以獲得當(dāng)前document載入的URL地址,window.location.search//可以得到當(dāng)前文檔中?字符后面的內(nèi)容,一般用于
檢測(cè)鍵值對(duì)即name=value的情況
32、window的navigator屬性可以包含多個(gè)屬性:
1)appName----->Web瀏覽區(qū)的全稱
2)appVersion----->瀏覽器廠商和版本
3)userAgent----->通常包含appVersion和其他的信息,沒(méi)有一定的格式
4)platfrom----->在其運(yùn)行瀏覽器的操作系統(tǒng),甚至有可能使硬件
5)onLine----->此屬性如果存在的話表示當(dāng)前瀏覽器是否連接到網(wǎng)絡(luò)
6)geolocation----->用于確定用戶地理位置信息的接口
33、Screen對(duì)象可以獲得有關(guān)窗口顯示的大小和可用的顏色數(shù)量的信息
34、window提供了三種對(duì)話框
1)alert-->提示對(duì)話框
2)confirm()----->也是顯示一條信息,但是要求用戶確定或者取消,例:var correct = confirm("hello world"); if(correct){return true}
3)prompt()----->顯示一條信息,等待用戶輸入并返回那個(gè)字符串
35、window提供了模態(tài)對(duì)話框的顯示方案:showModalDialog(param1,param2,param3)//
參數(shù)一:用以指定提供對(duì)話框HTML內(nèi)容的URL
參數(shù)二:可以是一個(gè)任意值,這個(gè)值在對(duì)話框里的腳本中可以通過(guò)window.dialogArguments屬性的值訪問(wèn)。
參數(shù)三:是一個(gè)非標(biāo)準(zhǔn)列表,包含以分號(hào)隔開(kāi)的name=value對(duì),如果提供了這個(gè)參數(shù)就可以配置對(duì)話框的尺寸和其他屬性,用dialogwidth和dialogheight來(lái)
設(shè)置對(duì)話框窗口的大小,用"resizable = yes"來(lái)允許用戶改變窗口大小
36、name屬性也可以用來(lái)獲得某些元素,但是name屬性只在少數(shù)html元素中有效:表單<form>,表單元素,<iframe>和<img>元素
document.getElementsByName();//獲得所有name屬性組成的數(shù)組
37、由于歷史原因,只有<form>,<img>和那些有href屬性的<a>,才有document.forms.id//name為form標(biāo)簽的id,其他元素是不可以的
38、getElementsByClassName();可以取得parent節(jié)點(diǎn)下的相同的className的子節(jié)點(diǎn)
39、Node節(jié)點(diǎn)的重要屬性說(shuō)明如下:
1)parentNode----->給節(jié)點(diǎn)的父節(jié)點(diǎn),假如是document對(duì)象則它的父節(jié)點(diǎn)是null
2)childNodes----->只讀的類數(shù)組節(jié)點(diǎn),它是該節(jié)點(diǎn)的子節(jié)點(diǎn)
3)firstChild和lastChild,該節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)和最后一個(gè)子節(jié)點(diǎn)
4)nextSibling、previoursSibling,該節(jié)點(diǎn)的兄弟節(jié)點(diǎn)的前一個(gè)和后一個(gè)
5)nodeType----->該節(jié)點(diǎn)的節(jié)點(diǎn)類型,是返回一個(gè)數(shù)值,9代表document節(jié)點(diǎn),1代表Element節(jié)點(diǎn),3代表Text節(jié)點(diǎn),8代表Comment節(jié)點(diǎn),11代表DocumentFragment節(jié)點(diǎn)
6)nodeValue----->text節(jié)點(diǎn)或Comment節(jié)點(diǎn)的文本內(nèi)容
7)nodeName----->元素的標(biāo)簽名,以大寫形式表示
40、在Html中可以創(chuàng)建一個(gè)可編輯的區(qū)域元素,方法:
var editor = document.getElementById("editor"); alert(editor.innerHTML);//顯示所有內(nèi)容,包括<br>等
41、window.onload中加載兩個(gè)function的方法window.onload=function(){
//此處寫兩個(gè)function
func1();
func2();
}
42、對(duì)Element設(shè)置css屬性的方法:
tip.style.cssText = "position:absolute;bottom:0;height:20px;width:380px;padding:10px;color:#fff;background:#fff;";//設(shè)置元素的css屬性
查看更多JavaScript的語(yǔ)法,大家可以關(guān)注:《JavaScript 參考教程》、《JavaScript代碼風(fēng)格指南》,也希望大家多多支持腳本之家。
相關(guān)文章
詳解JS-- 浮點(diǎn)數(shù)運(yùn)算處理
本篇文章主要介紹了JS--浮點(diǎn)數(shù)運(yùn)算處理,現(xiàn)在分享給大家,也給大家做個(gè)參考。感興趣的小伙伴們可以參考一下。2016-11-11Javascrip基礎(chǔ)之for循環(huán)和數(shù)組
這篇文章主要為大家介紹了Javascrip之for循環(huán)和數(shù)組,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12window.parent與window.openner區(qū)別介紹
今天總結(jié)一下js中幾個(gè)對(duì)象的區(qū)別和用法,對(duì)這幾個(gè)概念混淆的朋友可以看看2012-04-04JavaScript入門教程(10) 認(rèn)識(shí)其他對(duì)象
對(duì)于需要更好的控制html的一些元素,就需要了解這些了。大家知道就行,有需要時(shí)可以再看。2009-01-01在JavaScript中用getMinutes()方法返回指定的分時(shí)刻
這篇文章主要介紹了在JavaScript中用getMinutes()方法返回指定的分時(shí)刻,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之集合(Set)
JavaScript集合(set) 可以使用集合對(duì)象 Map、Set 和WeakMap 存儲(chǔ)值和對(duì)象。通過(guò)這些對(duì)象,可以使用鍵或值而非索引來(lái)輕松添加和檢索成員。2016-01-01Javascript基礎(chǔ)教程之?dāng)?shù)組 array
Array是JavaScript中常用的類型,并且JavaScript中的數(shù)組和其他語(yǔ)言的數(shù)組有比較大的區(qū)別。JavaScript中數(shù)組中存放的數(shù)據(jù)類型不一定相同,而且數(shù)組的長(zhǎng)度也是可改變的。2015-01-01javascript彈出窗口 window.open使用方法以及參數(shù)說(shuō)明分析篇
window.open是網(wǎng)頁(yè)中經(jīng)常遇到的彈出窗口代碼,不是網(wǎng)絡(luò)中比較反感的那類彈出代碼。用于新頁(yè)面?zhèn)髦?,回傳等?/div> 2009-12-12最新評(píng)論