let n = 0;

創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶提供了成都做網(wǎng)站、網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計(jì),廣告投放平臺(tái),成都做網(wǎng)站選創(chuàng)新互聯(lián)建站,貼合企業(yè)需求,高性價(jià)比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。
let flag = true;
while (n = 10 || n = 0) {
if (flag) {
sleep(1000); // 延時(shí)函數(shù),單位ms
n++;
console.log(n);
} else {
sleep(1000); // 延時(shí)函數(shù),單位ms
n--;
console.log(n);
}
if (n == 10 || n == 0) {
flag = !flag;
}
}
是日期減1還是秒數(shù)什么的減1?
script type="text/javascript"
var d=new Date()
function lessDate(){
alert(new Date(d.setDate(d.getDate()-1)).toLocaleString())
}
/script
input type="button" onclick="lessDate()" value="日期" /
javascript 中的?是屬性。例如:var text={??x:1,y:2?? }? ? ,? 輸出:text.x?????? 那么值就是1?? 如此而已。
javascript的相關(guān)概念:
語(yǔ)句
JavaScript程序是由若干語(yǔ)句組成的,語(yǔ)句是編寫程序的指令。JavaScript提供了完整的基本編程語(yǔ)句,它們是:
賦值語(yǔ)句、switch選擇語(yǔ)句、while循環(huán)語(yǔ)句、for循環(huán)語(yǔ)句、for each循環(huán)語(yǔ)句、do...while循環(huán)語(yǔ)句、break循環(huán)中止語(yǔ)句、continue循環(huán)中斷語(yǔ)句、with語(yǔ)句、try…catch語(yǔ)句、if語(yǔ)句(if..else,if…else if…)。
函數(shù)
函數(shù)是命名的語(yǔ)句段,這個(gè)語(yǔ)句段可以被當(dāng)作一個(gè)整體來(lái)引用和執(zhí)行。使用函數(shù)要注意以下幾點(diǎn):
1)函數(shù)由關(guān)鍵字function定義(也可由Function構(gòu)造函數(shù)構(gòu)造)
2)使用function關(guān)鍵字定義的函數(shù)在一個(gè)作用域內(nèi)是可以在任意處調(diào)用的(包括定義函數(shù)的語(yǔ)句前);而用var關(guān)鍵字定義的必須定義后才能被調(diào)用
3)函數(shù)名是調(diào)用函數(shù)時(shí)引用的名稱,它對(duì)大小寫是敏感的,調(diào)用函數(shù)時(shí)不可寫錯(cuò)函數(shù)名
4)參數(shù)表示傳遞給函數(shù)使用或操作的值,它可以是常量,也可以是變量,也可以是函數(shù),在函數(shù)內(nèi)部可以通過(guò)arguments對(duì)象(arguments對(duì)象是一個(gè)偽數(shù)組,屬性callee引用被調(diào)用的函數(shù))訪問(wèn)所有參數(shù)
5)return語(yǔ)句用于返回表達(dá)式的值。
6)yield語(yǔ)句扔出一個(gè)表達(dá)式,并且中斷函數(shù)執(zhí)行直到下一次調(diào)用next。
一般的函數(shù)都是以下格式:
function myFunction(params){
//執(zhí)行的語(yǔ)句
}
函數(shù)表達(dá)式:
var myFunction=function(params){
//執(zhí)行的語(yǔ)句
}
var myFunction = function(){
//執(zhí)行的語(yǔ)句
}
myFunction();//調(diào)用函數(shù)
匿名函數(shù),它常作為參數(shù)在其他函數(shù)間傳遞:
window.addEventListener('load',function(){
//執(zhí)行的語(yǔ)句
},false);
對(duì)象
JavaScript的一個(gè)重要功能就是面向?qū)ο蟮墓δ埽ㄟ^(guò)基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開發(fā)。
一組包含數(shù)據(jù)的屬性和對(duì)屬性中包含數(shù)據(jù)進(jìn)行操作的方法,稱為對(duì)象。比如要設(shè)定網(wǎng)頁(yè)的背景顏色,所針對(duì)的對(duì)象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍(lán)色。
事件
用戶與網(wǎng)頁(yè)交互時(shí)產(chǎn)生的操作,稱為事件。事件可以由用戶引發(fā),也可能是頁(yè)面發(fā)生改變,甚至還有你看不見的事件(如Ajax的交互進(jìn)度改變)。絕大部分事件都由用戶的動(dòng)作所引發(fā),如:用戶按鼠標(biāo)的按鍵,就產(chǎn)生click事件,若鼠標(biāo)的指針在鏈接上移動(dòng),就產(chǎn)生mouseover事件等等。在JavaScript中,事件往往與事件處理程序配套使用。
而對(duì)事件的處理,W3C的方法是用addEventListener()函數(shù),它有三個(gè)參數(shù):事件,引發(fā)的函數(shù),是否使用事件捕捉。為了安全性,建議將第三個(gè)參數(shù)始終設(shè)置為false
傳統(tǒng)的方法就是定義元素的on…事件,它就是W3C的方法中的事件參數(shù)前加一個(gè)“on”。而IE的事件模型使用attachEvent和dettachEvent對(duì)事件進(jìn)行綁定和刪除。JavaScript中事件還分捕獲和冒泡兩個(gè)階段,但是傳統(tǒng)綁定只支持冒泡事件。
變量
1、常用類型
Object:對(duì)象
Array:數(shù)組
Number:數(shù)
Boolean:布爾值,只有true和false兩個(gè)值,是所有類型中占用內(nèi)存最少的
null:一個(gè)空值,唯一的值是null,表空引用
undefined:沒(méi)有定義或賦值的變量
2、命名形式
一般形式是:
var 變量名表;
其中,var是javascript的保留字,表面接下來(lái)是變量說(shuō)明,變量名表是用戶自定義標(biāo)識(shí)符,變量之間用逗號(hào)分開。和C++等程序不同,在javascript中,變量說(shuō)明不需要給出變量的數(shù)據(jù)類型。此外,變量也可以不說(shuō)明而直接使用。
3、作用域
變量的作用域由聲明變量的位置決定,決定哪些腳本命令可訪問(wèn)該變量。在函數(shù)外部聲明的變量稱為全局變量,其值能被所在HTML文件中的任何腳本命令訪問(wèn)和修改。在函數(shù)內(nèi)部聲明的變量稱為局部變量。只有當(dāng)函數(shù)被執(zhí)行時(shí),變量被分配臨時(shí)空間,函數(shù)結(jié)束后,變量所占據(jù)的空間被釋放。局部變量只能被函數(shù)內(nèi)部的語(yǔ)句訪問(wèn),只對(duì)該函數(shù)是可見的,而在函數(shù)外部是不可見的。
運(yùn)算符
javascript提供了豐富的運(yùn)算功能,包括算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算和連接運(yùn)算。
1.算術(shù)運(yùn)算符
javascript中的算術(shù)運(yùn)算符有單目運(yùn)算符和雙目運(yùn)算符。雙目運(yùn)算符包括:+(加)、-(減)、*(乘)、/(除)、%(取模)、|(按位或)、(按位與)、(左移)、(右移)等。單目運(yùn)算符有:-(取反)、~(取補(bǔ))、++(遞加1)--(遞減1)等。
2.關(guān)系運(yùn)算符
關(guān)系運(yùn)算符又稱比較運(yùn)算,運(yùn)算符包括:(小于)、=(小于等于)、(大于)、=(大于等于)、==(等于)和!=(不等于)以及 ===) 和 !==。
關(guān)系運(yùn)算的運(yùn)算結(jié)果為布爾值,如果條件成立,則結(jié)果為true,否則為false。
3.邏輯運(yùn)算符
邏輯運(yùn)算符有:(邏輯與)、||(邏輯或)、!(取反,邏輯非)、^(邏輯異或)。
4.字符串連接運(yùn)算符
連接運(yùn)算用于字符串操作,運(yùn)算符為+(用于強(qiáng)制連接),將兩個(gè)或多個(gè)字符串連結(jié)為一個(gè)字符串。
5.三目操作符?
三目操作符“?:”格式為:
操作數(shù)?表式1:表達(dá)式2
三目操作符“?:”構(gòu)成的表達(dá)式,其邏輯功能為:若操作數(shù)的結(jié)果為true,則表述式的結(jié)果為表達(dá)式1,否則為表達(dá)式2。例如max=(ab)?a:b;該語(yǔ)句的功能就是將a,b中的較大的數(shù)賦給max。
相關(guān)規(guī)則
在JavaScript中,“==="是全同運(yùn)算符,只有當(dāng)值相等,數(shù)據(jù)類型也相等時(shí)才成立。
等同運(yùn)算符“=="的比較規(guī)則:
當(dāng)兩個(gè)運(yùn)算數(shù)的類型不同時(shí):將他們轉(zhuǎn)換成相同的類型。
1)一個(gè)數(shù)字與一個(gè)字符串,字符串轉(zhuǎn)換成數(shù)字之后,進(jìn)行比較。
2)true轉(zhuǎn)換為1、false轉(zhuǎn)換為0,進(jìn)行比較。
3)一個(gè)對(duì)象、數(shù)組、函數(shù)與 一個(gè)數(shù)字或字符串,對(duì)象、數(shù)組、函數(shù)轉(zhuǎn)換為原始類型的值,然后進(jìn)行比較。(先使用valueOf,如果不行就使用toString)
4)其他類型的組合不相等。
JavaScript想兩個(gè)運(yùn)算數(shù)類型相同,或轉(zhuǎn)換成相同類型后:
1)2個(gè)字符串:同一位置上的字符相等,2個(gè)字符串就相同。
2)2個(gè)數(shù)字:2個(gè)數(shù)字相同,就相同。如果一個(gè)是NaN,或兩個(gè)都是NaN,則不相同。
3)2個(gè)都是true,或者2個(gè)都是false,則相同。
4)2個(gè)引用的是同一個(gè)對(duì)象、函數(shù)、數(shù)組,則他們相等,如果引用的不是同一個(gè)對(duì)象、函數(shù)、數(shù)組,則不相同,即使這2個(gè)對(duì)象、函數(shù)、數(shù)組可以轉(zhuǎn)換成完全相等的原始值。
5)2個(gè)null,或者2個(gè)都是未定義的,那么他們相等。
而“===”是全同運(yùn)算符,全同運(yùn)算符遵循等同運(yùn)算符的比較規(guī)則,但是它不對(duì)運(yùn)算數(shù)進(jìn)行類型轉(zhuǎn)換,當(dāng)兩個(gè)運(yùn)算數(shù)的類型不同時(shí),返回false;只有當(dāng)兩個(gè)運(yùn)算數(shù)的類型相同的時(shí)候,才遵循等同運(yùn)算符的比較規(guī)則進(jìn)行比較。
例如:null==undefined 會(huì)返回真, 但是null===undefined 就會(huì)返回假!
表達(dá)式
表達(dá)式是指將常量、變量、函數(shù)、運(yùn)算符和括號(hào)連接而成的式子。根據(jù)運(yùn)算結(jié)果的不同,表達(dá)式可分為算術(shù)表達(dá)式、字符表達(dá)式、和邏輯表達(dá)式。
腳本語(yǔ)言
不同于服務(wù)器端腳本語(yǔ)言,例如PHP與ASP,JavaScript是客戶端腳本語(yǔ)言,也就是說(shuō)JavaScript是在用戶的瀏覽器上運(yùn)行,不需要服務(wù)器的支持而可以獨(dú)立運(yùn)行。所以在早期程序員比較青睞于JavaScript以減少對(duì)服務(wù)器的負(fù)擔(dān),而與此同時(shí)也帶來(lái)另一個(gè)問(wèn)題:安全性。而隨著服務(wù)器的強(qiáng)壯,雖然程序員更喜歡運(yùn)行于服務(wù)端的腳本以保證安全,但JavaScript仍然以其跨平臺(tái)、容易上手等優(yōu)勢(shì)大行其道。
JavaScript是一種腳本語(yǔ)言,其源代碼在發(fā)往客戶端運(yùn)行之前不需經(jīng)過(guò)編譯,而是將文本格式的字符代碼發(fā)送給瀏覽器由瀏覽器解釋運(yùn)行。解釋語(yǔ)言的弱點(diǎn)是安全性較差,而且在JavaScript中,如果一條運(yùn)行不了,那么下面的語(yǔ)言也無(wú)法運(yùn)行。而且由于每次重新加載都會(huì)重新解譯,加載后,有些代碼會(huì)延遲至運(yùn)行時(shí)才解譯,甚至?xí)啻谓庾g,所以速度較慢。
與其相對(duì)應(yīng)的是編譯語(yǔ)言,例如Java。Java的源代碼在傳遞到客戶端運(yùn)行之前,必須經(jīng)過(guò)編譯,因而客戶端上必須具有相應(yīng)平臺(tái)上的仿真器或解釋器,它可以通過(guò)編譯器或解釋器實(shí)現(xiàn)獨(dú)立于某個(gè)特定的平臺(tái)編譯代碼的束縛。但是它必須在服務(wù)器端進(jìn)行編譯,這樣就拖延了時(shí)間。但因?yàn)橐呀?jīng)封裝,所以能保證安全性。
Javascript庫(kù)
庫(kù),指得是可以方便應(yīng)用到現(xiàn)有開發(fā)體系中的、現(xiàn)成的代碼資源。庫(kù)不僅為大部分日常的DOM腳本編程工作提供了快捷的解決方案,而且也提供了許多獨(dú)特的工具。雖然庫(kù)使用起來(lái)很方便,但它們也并非能解決你所有的問(wèn)題。在使用庫(kù)之前,一定要保證真正理解javascript的DOM原理。
這些庫(kù)一般是一個(gè)(或多個(gè))js(Javascript的縮寫)文件,只要把他們導(dǎo)入你的網(wǎng)頁(yè)就能使用了。
常用的庫(kù)有:
jQuery:javascript庫(kù)中的新成員,提供css和xpath選擇符查找元素、ajax、動(dòng)畫效果等
JSer: 國(guó)人開發(fā)的一款全功能的開源腳本框架. 借助JSer,可以便捷的操作DOM、CSS樣式訪問(wèn)、屬性讀寫、事件綁定、行為切換、動(dòng)態(tài)載入、數(shù)據(jù)緩存、URL與AJAX等眾多功能。
dojo:一個(gè)巨大的庫(kù),包括的東西很多,dijit和dojox是dojo的擴(kuò)展,幾乎你想要的各種javascript程序都包括了。
prototype:一個(gè)非常流行的庫(kù),使用了原型鏈向javascript中添加了很多不錯(cuò)的函數(shù)
YUI:(YahooYUI庫(kù))yahoo!用戶界面,非常實(shí)用,提供各種解決方案。
ExtJs:組件非常豐富,皮膚也很漂亮,動(dòng)畫效果也豐富。
語(yǔ)句
JavaScript程序是由若干語(yǔ)句組成的,語(yǔ)句是編寫程序的指令。JavaScript提供了完整的基本編程語(yǔ)句,它們是:
賦值語(yǔ)句、switch選擇語(yǔ)句、while循環(huán)語(yǔ)句、for循環(huán)語(yǔ)句、for each循環(huán)語(yǔ)句、do...while循環(huán)語(yǔ)句、break循環(huán)中止語(yǔ)句、continue循環(huán)中斷語(yǔ)句、with語(yǔ)句、try…catch語(yǔ)句、if語(yǔ)句(if..else,if…else if…)。
函數(shù)
函數(shù)是命名的語(yǔ)句段,這個(gè)語(yǔ)句段可以被當(dāng)作一個(gè)整體來(lái)引用和執(zhí)行。使用函數(shù)要注意以下幾點(diǎn):
1)函數(shù)由關(guān)鍵字function定義(也可由Function構(gòu)造函數(shù)構(gòu)造)
2)使用function關(guān)鍵字定義的函數(shù)在一個(gè)作用域內(nèi)是可以在任意處調(diào)用的(包括定義函數(shù)的語(yǔ)句前);而用var關(guān)鍵字定義的必須定義后才能被調(diào)用
3)函數(shù)名是調(diào)用函數(shù)時(shí)引用的名稱,它對(duì)大小寫是敏感的,調(diào)用函數(shù)時(shí)不可寫錯(cuò)函數(shù)名
4)參數(shù)表示傳遞給函數(shù)使用或操作的值,它可以是常量,也可以是變量,也可以是函數(shù),在函數(shù)內(nèi)部可以通過(guò)arguments對(duì)象(arguments對(duì)象是一個(gè)偽數(shù)組,屬性callee引用被調(diào)用的函數(shù))訪問(wèn)所有參數(shù)
5)return語(yǔ)句用于返回表達(dá)式的值。
6)yield語(yǔ)句扔出一個(gè)表達(dá)式,并且中斷函數(shù)執(zhí)行直到下一次調(diào)用next。
一般的函數(shù)都是以下格式:
function myFunction(params){
//執(zhí)行的語(yǔ)句
}
函數(shù)表達(dá)式:
var myFunction=function(params){
//執(zhí)行的語(yǔ)句
}
var myFunction = function(){
//執(zhí)行的語(yǔ)句
}
myFunction();//調(diào)用函數(shù)
匿名函數(shù),它常作為參數(shù)在其他函數(shù)間傳遞:
window.addEventListener('load',function(){
//執(zhí)行的語(yǔ)句
},false);
對(duì)象
JavaScript的一個(gè)重要功能就是面向?qū)ο蟮墓δ埽ㄟ^(guò)基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開發(fā)。
一組包含數(shù)據(jù)的屬性和對(duì)屬性中包含數(shù)據(jù)進(jìn)行操作的方法,稱為對(duì)象。比如要設(shè)定網(wǎng)頁(yè)的背景顏色,所針對(duì)的對(duì)象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍(lán)色。
事件
用戶與網(wǎng)頁(yè)交互時(shí)產(chǎn)生的操作,稱為事件。事件可以由用戶引發(fā),也可能是頁(yè)面發(fā)生改變,甚至還有你看不見的事件(如Ajax的交互進(jìn)度改變)。絕大部分事件都由用戶的動(dòng)作所引發(fā),如:用戶按鼠標(biāo)的按鍵,就產(chǎn)生click事件,若鼠標(biāo)的指針在鏈接上移動(dòng),就產(chǎn)生mouseover事件等等。在JavaScript中,事件往往與事件處理程序配套使用。
而對(duì)事件的處理,W3C的方法是用addEventListener()函數(shù),它有三個(gè)參數(shù):事件,引發(fā)的函數(shù),是否使用事件捕捉。為了安全性,建議將第三個(gè)參數(shù)始終設(shè)置為false
傳統(tǒng)的方法就是定義元素的on…事件,它就是W3C的方法中的事件參數(shù)前加一個(gè)“on”。而IE的事件模型使用attachEvent和dettachEvent對(duì)事件進(jìn)行綁定和刪除。JavaScript中事件還分捕獲和冒泡兩個(gè)階段,但是傳統(tǒng)綁定只支持冒泡事件。
變量
1、常用類型
Object:對(duì)象
Array:數(shù)組
Number:數(shù)
Boolean:布爾值,只有true和false兩個(gè)值,是所有類型中占用內(nèi)存最少的
null:一個(gè)空值,唯一的值是null,表空引用
undefined:沒(méi)有定義或賦值的變量
2、命名形式
一般形式是:
var 變量名表;
其中,var是javascript的保留字,表面接下來(lái)是變量說(shuō)明,變量名表是用戶自定義標(biāo)識(shí)符,變量之間用逗號(hào)分開。和C++等程序不同,在javascript中,變量說(shuō)明不需要給出變量的數(shù)據(jù)類型。此外,變量也可以不說(shuō)明而直接使用。
3、作用域
變量的作用域由聲明變量的位置決定,決定哪些腳本命令可訪問(wèn)該變量。在函數(shù)外部聲明的變量稱為全局變量,其值能被所在HTML文件中的任何腳本命令訪問(wèn)和修改。在函數(shù)內(nèi)部聲明的變量稱為局部變量。只有當(dāng)函數(shù)被執(zhí)行時(shí),變量被分配臨時(shí)空間,函數(shù)結(jié)束后,變量所占據(jù)的空間被釋放。局部變量只能被函數(shù)內(nèi)部的語(yǔ)句訪問(wèn),只對(duì)該函數(shù)是可見的,而在函數(shù)外部是不可見的。
運(yùn)算符
javascript提供了豐富的運(yùn)算功能,包括算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算和連接運(yùn)算。
1.算術(shù)運(yùn)算符
javascript中的算術(shù)運(yùn)算符有單目運(yùn)算符和雙目運(yùn)算符。雙目運(yùn)算符包括:+(加)、-(減)、*(乘)、/(除)、%(取模)、|(按位或)、(按位與)、(左移)、(右移)等。單目運(yùn)算符有:-(取反)、~(取補(bǔ))、++(遞加1)--(遞減1)等。
2.關(guān)系運(yùn)算符
關(guān)系運(yùn)算符又稱比較運(yùn)算,運(yùn)算符包括:(小于)、=(小于等于)、(大于)、=(大于等于)、==(等于)和!=(不等于)以及 ===) 和 !==。
關(guān)系運(yùn)算的運(yùn)算結(jié)果為布爾值,如果條件成立,則結(jié)果為true,否則為false。
3.邏輯運(yùn)算符
邏輯運(yùn)算符有:(邏輯與)、||(邏輯或)、!(取反,邏輯非)、^(邏輯異或)。
4.字符串連接運(yùn)算符
連接運(yùn)算用于字符串操作,運(yùn)算符為+(用于強(qiáng)制連接),將兩個(gè)或多個(gè)字符串連結(jié)為一個(gè)字符串。
5.三目操作符?
三目操作符“?:”格式為:
操作數(shù)?表式1:表達(dá)式2
三目操作符“?:”構(gòu)成的表達(dá)式,其邏輯功能為:若操作數(shù)的結(jié)果為true,則表述式的結(jié)果為表達(dá)式1,否則為表達(dá)式2。例如max=(ab)?a:b;該語(yǔ)句的功能就是將a,b中的較大的數(shù)賦給max。
相關(guān)規(guī)則
在JavaScript中,“==="是全同運(yùn)算符,只有當(dāng)值相等,數(shù)據(jù)類型也相等時(shí)才成立。
等同運(yùn)算符“=="的比較規(guī)則:
當(dāng)兩個(gè)運(yùn)算數(shù)的類型不同時(shí):將他們轉(zhuǎn)換成相同的類型。
1)一個(gè)數(shù)字與一個(gè)字符串,字符串轉(zhuǎn)換成數(shù)字之后,進(jìn)行比較。
2)true轉(zhuǎn)換為1、false轉(zhuǎn)換為0,進(jìn)行比較。
3)一個(gè)對(duì)象、數(shù)組、函數(shù)與 一個(gè)數(shù)字或字符串,對(duì)象、數(shù)組、函數(shù)轉(zhuǎn)換為原始類型的值,然后進(jìn)行比較。(先使用valueOf,如果不行就使用toString)
4)其他類型的組合不相等。
JavaScript想兩個(gè)運(yùn)算數(shù)類型相同,或轉(zhuǎn)換成相同類型后:
1)2個(gè)字符串:同一位置上的字符相等,2個(gè)字符串就相同。
2)2個(gè)數(shù)字:2個(gè)數(shù)字相同,就相同。如果一個(gè)是NaN,或兩個(gè)都是NaN,則不相同。
3)2個(gè)都是true,或者2個(gè)都是false,則相同。
4)2個(gè)引用的是同一個(gè)對(duì)象、函數(shù)、數(shù)組,則他們相等,如果引用的不是同一個(gè)對(duì)象、函數(shù)、數(shù)組,則不相同,即使這2個(gè)對(duì)象、函數(shù)、數(shù)組可以轉(zhuǎn)換成完全相等的原始值。
5)2個(gè)null,或者2個(gè)都是未定義的,那么他們相等。
而“===”是全同運(yùn)算符,全同運(yùn)算符遵循等同運(yùn)算符的比較規(guī)則,但是它不對(duì)運(yùn)算數(shù)進(jìn)行類型轉(zhuǎn)換,當(dāng)兩個(gè)運(yùn)算數(shù)的類型不同時(shí),返回false;只有當(dāng)兩個(gè)運(yùn)算數(shù)的類型相同的時(shí)候,才遵循等同運(yùn)算符的比較規(guī)則進(jìn)行比較。
例如:null==undefined 會(huì)返回真, 但是null===undefined 就會(huì)返回假!
表達(dá)式
表達(dá)式是指將常量、變量、函數(shù)、運(yùn)算符和括號(hào)連接而成的式子。根據(jù)運(yùn)算結(jié)果的不同,表達(dá)式可分為算術(shù)表達(dá)式、字符表達(dá)式、和邏輯表達(dá)式。
腳本語(yǔ)言
不同于服務(wù)器端腳本語(yǔ)言,例如PHP與ASP,JavaScript是客戶端腳本語(yǔ)言,也就是說(shuō)JavaScript是在用戶的瀏覽器上運(yùn)行,不需要服務(wù)器的支持而可以獨(dú)立運(yùn)行。所以在早期程序員比較青睞于JavaScript以減少對(duì)服務(wù)器的負(fù)擔(dān),而與此同時(shí)也帶來(lái)另一個(gè)問(wèn)題:安全性。而隨著服務(wù)器的強(qiáng)壯,雖然程序員更喜歡運(yùn)行于服務(wù)端的腳本以保證安全,但JavaScript仍然以其跨平臺(tái)、容易上手等優(yōu)勢(shì)大行其道。
JavaScript是一種腳本語(yǔ)言,其源代碼在發(fā)往客戶端運(yùn)行之前不需經(jīng)過(guò)編譯,而是將文本格式的字符代碼發(fā)送給瀏覽器由瀏覽器解釋運(yùn)行。解釋語(yǔ)言的弱點(diǎn)是安全性較差,而且在JavaScript中,如果一條運(yùn)行不了,那么下面的語(yǔ)言也無(wú)法運(yùn)行。而且由于每次重新加載都會(huì)重新解譯,加載后,有些代碼會(huì)延遲至運(yùn)行時(shí)才解譯,甚至?xí)啻谓庾g,所以速度較慢。
與其相對(duì)應(yīng)的是編譯語(yǔ)言,例如Java。Java的源代碼在傳遞到客戶端運(yùn)行之前,必須經(jīng)過(guò)編譯,因而客戶端上必須具有相應(yīng)平臺(tái)上的仿真器或解釋器,它可以通過(guò)編譯器或解釋器實(shí)現(xiàn)獨(dú)立于某個(gè)特定的平臺(tái)編譯代碼的束縛。但是它必須在服務(wù)器端進(jìn)行編譯,這樣就拖延了時(shí)間。但因?yàn)橐呀?jīng)封裝,所以能保證安全性。
Javascript庫(kù)
庫(kù),指得是可以方便應(yīng)用到現(xiàn)有開發(fā)體系中的、現(xiàn)成的代碼資源。庫(kù)不僅為大部分日常的DOM腳本編程工作提供了快捷的解決方案,而且也提供了許多獨(dú)特的工具。雖然庫(kù)使用起來(lái)很方便,但它們也并非能解決你所有的問(wèn)題。在使用庫(kù)之前,一定要保證真正理解javascript的DOM原理。
這些庫(kù)一般是一個(gè)(或多個(gè))js(Javascript的縮寫)文件,只要把他們導(dǎo)入你的網(wǎng)頁(yè)就能使用了。
常用的庫(kù)有:
jQuery:javascript庫(kù)中的新成員,提供css和xpath選擇符查找元素、ajax、動(dòng)畫效果等
JSer: 國(guó)人開發(fā)的一款全功能的開源腳本框架. 借助JSer,可以便捷的操作DOM、CSS樣式訪問(wèn)、屬性讀寫、事件綁定、行為切換、動(dòng)態(tài)載入、數(shù)據(jù)緩存、URL與AJAX等眾多功能。
dojo:一個(gè)巨大的庫(kù),包括的東西很多,dijit和dojox是dojo的擴(kuò)展,幾乎你想要的各種javascript程序都包括了。
prototype:一個(gè)非常流行的庫(kù),使用了原型鏈向javascript中添加了很多不錯(cuò)的函數(shù)
YUI:(YahooYUI庫(kù))yahoo!用戶界面,非常實(shí)用,提供各種解決方案。
ExtJs:組件非常豐富,皮膚也很漂亮,動(dòng)畫效果也豐富。
你好,可以這樣寫:
div id="test"5/div
script type="text/javascript"
var i = 4;
var t = setInterval(function(){
if (i == 0) {
clearInterval(t);
return;
}
document.getElementById("test").innerHTML = i;
i--;
}, 1000)
/script
望采納
運(yùn)算符就是完成操作的一系列符號(hào),它有七類: 賦值運(yùn)算符(=,+=,-=,*=,/=,%=,=,=,|=,=)、算術(shù)運(yùn)算符(+,-,*,/,++,--,%)、比較運(yùn)算符(,,=,=,==,===,!=,!==)、邏輯運(yùn)算符(||,,!)、條件運(yùn)算(?:)、位移運(yùn)算符(|,,,,~,^)和字符串運(yùn)算符( + )。
所以,~是位移運(yùn)算符。
~~true == 1
~~false == 0
~~"" == 0
~~[] == 0
~~undefined ==0
~~!undefined == 1
~~null == 0
~~!null == 1
一、算術(shù)運(yùn)算符:
1、運(yùn)算符:
“+”:功能:對(duì)數(shù)字進(jìn)行代數(shù)求和;對(duì)字符串進(jìn)行連接操作;將一個(gè)數(shù)值轉(zhuǎn)換為字符串(數(shù)值+空字符串)。
“-”:功能:對(duì)操作數(shù)進(jìn)行取反操作;對(duì)數(shù)字進(jìn)行減法操作;將字符串轉(zhuǎn)換成數(shù)值 (數(shù)值型型字符串-0)。
“*”:功能:對(duì)兩個(gè)運(yùn)算數(shù)進(jìn)行乘法運(yùn)算;同號(hào)得正,異號(hào)得負(fù)。
“/”:功能:對(duì)兩個(gè)運(yùn)算數(shù)進(jìn)行除法運(yùn)算;同號(hào)得正,異號(hào)得負(fù)。
“%”:功能:返回兩個(gè)除數(shù)的余數(shù);和第一個(gè)運(yùn)算數(shù)的符號(hào)相同。
2、復(fù)合賦值運(yùn)算符: +=、-=、*=、/=、%=
3、自增與自減:
功能相反:++ 對(duì)唯一的運(yùn)算數(shù)進(jìn)行遞增操作(每次加1);-- 對(duì)唯一的運(yùn)算數(shù)進(jìn)行遞減操作(每次減1);
規(guī)則相同:運(yùn)算數(shù)必須是一個(gè)變量、數(shù)組的一個(gè)元素或者對(duì)象的屬性;如果運(yùn)算數(shù)是非數(shù)值的,運(yùn)算符會(huì)將它轉(zhuǎn)成數(shù)值;
符號(hào)位置決定運(yùn)算結(jié)果:符號(hào)位于運(yùn)算數(shù)之前(先進(jìn)行遞增火遞減操作,再進(jìn)行求值);符號(hào)位于運(yùn)算數(shù)之后(先求值,再進(jìn)行遞增或者遞減操作)
二、關(guān)系運(yùn)算符:
1、大小關(guān)系檢測(cè):
運(yùn)算符:、=、=、;
操作規(guī)則:數(shù)值與數(shù)值的比較——比較他們的帶數(shù)值;僅一個(gè)運(yùn)算數(shù)是數(shù)值——將另一個(gè)運(yùn)算數(shù)轉(zhuǎn)換成數(shù)值,并比較他們的代數(shù)值;字符串間的比較——逐字符比較他們的Unicode數(shù)值;字符串與非數(shù)值的比較——將運(yùn)算數(shù)轉(zhuǎn)換成字符串并進(jìn)行比較;運(yùn)算數(shù)即非數(shù)字也非字符串——轉(zhuǎn)換為數(shù)值或者字符串進(jìn)行比較;運(yùn)算數(shù)無(wú)法被轉(zhuǎn)換成數(shù)值或者字符串——返回值false;與NaN的比較——返回值為false。
2、等值關(guān)系檢測(cè):
相等比較:操作符有== 和!= ;類型轉(zhuǎn)換(布爾值——true為1,false為0;對(duì)象——調(diào)用valueOf() 得到基本類型;字符串與數(shù)值的比較——字符串轉(zhuǎn)換為數(shù)值);比較原則(null與undefined——相等;NaN ——與任何數(shù)值都不相等包括其自身;對(duì)象——是否屬于同一對(duì)象 是為== 否為!=)。
相同比較:操作符有===和!== 比較兩個(gè)運(yùn)算數(shù)的返回值及數(shù)據(jù)類型是否相同;比較的原則(值類型間比較——只有數(shù)據(jù)類型相同,且數(shù)值相等時(shí)才能夠相同;值類型與引用類型比較——肯定不相同;引用類型間比較——比較它們的引用值即內(nèi)存地址)
三、對(duì)象運(yùn)算符:
in:判斷左側(cè)運(yùn)算數(shù)是否為右側(cè)運(yùn)算數(shù)的成員。
instancesof:判斷對(duì)象實(shí)例是否屬于某個(gè)類或者構(gòu)造函數(shù)。
new:根據(jù)構(gòu)造函數(shù)創(chuàng)建一個(gè)新的對(duì)象,并初始化該對(duì)象。
delete:刪除指定對(duì)象的屬性、數(shù)組元素或者變量。
.及[]:存取對(duì)象和數(shù)組元素。
():函數(shù)調(diào)用,改變運(yùn)算運(yùn)算符優(yōu)先等級(jí)。
四、邏輯運(yùn)算符:
1、!邏輯非:
返回值:true(空字符串、0、null、NaN、undefined),false(對(duì)象、非空字符串、非0數(shù)值);
特性:如果運(yùn)算數(shù)的值為false則返回true,否則返回false;聯(lián)系2次!,可將任意類型轉(zhuǎn)為布爾型值。
2、邏輯與:
規(guī)則:第一個(gè)操作數(shù)是對(duì)象——返回第二個(gè)操作數(shù);第二個(gè)操作數(shù)是對(duì)象——第一個(gè)操作數(shù)值為true時(shí)返回該對(duì)象;兩個(gè)操作數(shù)都是對(duì)象——返回第二個(gè)操作數(shù);一個(gè)操作數(shù)是null——返回null;一個(gè)操作數(shù)是NaN——返回NaN;一個(gè)操作數(shù)是undefined——返回undefined。
特性:當(dāng)且僅當(dāng)兩個(gè)運(yùn)算數(shù)的值都是true時(shí),才返回true,否則返回false;短路操作——當(dāng)?shù)匾粋€(gè)操作數(shù)的值是false則不在對(duì)第二個(gè)操作數(shù)進(jìn)行求值。
3、||邏輯或:
規(guī)則:第一個(gè)操作數(shù)是對(duì)象——返回第一個(gè)操作數(shù);第一個(gè)操作數(shù)值為false——返回第二個(gè)操作數(shù);兩個(gè)操作數(shù)都是對(duì)象——返回第一個(gè)操作數(shù);兩個(gè)操作數(shù)都是null——返回null;兩個(gè)操作數(shù)都是NaN——返回NaN;兩個(gè)操作數(shù)都是undefined——返回undefined。
特性:當(dāng)且僅當(dāng)兩個(gè)運(yùn)算數(shù)的值都是false時(shí),才返回false,否則返回true;如果第一個(gè)操作數(shù)值為true,則不會(huì)對(duì)第二個(gè)操作數(shù)進(jìn)行求值。
五、位運(yùn)算符:
1、基礎(chǔ)知識(shí):
類型——有符號(hào)(數(shù)值位31位,符號(hào)位第32位 0為正1為負(fù)),無(wú)符號(hào)(只能正數(shù),第32為表示數(shù)值,數(shù)值范圍可加大);數(shù)值范圍——-2147483648~2147483648;存儲(chǔ)方式——正(純2進(jìn)制存儲(chǔ),31位中每一位表示2的冪,用0補(bǔ)存無(wú)用位),負(fù)(2進(jìn)制補(bǔ)碼存儲(chǔ),補(bǔ)碼計(jì)算步驟確定該數(shù)字的非負(fù)版本的二進(jìn)制表示求得二進(jìn)制反碼,即要把0替換為1,把1替換為0,在二進(jìn)制反碼上加1);當(dāng)0來(lái)處理的特殊值——NaN和Infinity。
2、邏輯位運(yùn)算:
返回值為1——按位非~(0) ;按位與(對(duì)應(yīng)位全為1);按位或|(任何一位是1);按位異或^(既不同時(shí)為0,也不同時(shí)為1)。
返回值為0——按位非~(1);按位與(任何一位是0);按位或|(對(duì)應(yīng)位全是0);按位異或^(對(duì)應(yīng)位全為0或全為1)。
3、位移操作:
左移——將數(shù)值的所有位左移指定的位數(shù);所有空位用0補(bǔ)存;左移1位對(duì)其乘以2,左移2位對(duì)其乘以4,以此類推。
有符號(hào)右移——將數(shù)值的所有位右移指定的位數(shù);移除的味被舍棄;保留符號(hào)位;右移1位對(duì)其除2,右移2位對(duì)其除4,以此類推。
無(wú)符號(hào)右移——正數(shù)(與有符號(hào)右移結(jié)果相同);負(fù)數(shù)(會(huì)出現(xiàn)無(wú)限大的數(shù)值)
4、復(fù)合賦值運(yùn)算符:位操作符與等號(hào)結(jié)合,復(fù)合賦值不會(huì)有性能方面的提升。
六、其它運(yùn)算符:
?: ——條件運(yùn)算符,簡(jiǎn)介的if else。
typeof——類型判斷運(yùn)算符。
,——逗號(hào),在一行語(yǔ)句中執(zhí)行多個(gè)不同的操作。
void——舍棄運(yùn)算數(shù)的值,返回undefined作為表達(dá)式的值。
$(document).ready(function(){
$("#add").click(function(){
var oldValue=parseInt($(this).val());//取出現(xiàn)在的值,并使用parseInt轉(zhuǎn)為int類型數(shù)據(jù)
oldValue++;//自加1
$(this).val(oldValue);//將增加后的值付給原控件
});
});
PS:attr更新的是組件的屬性(例如可以修改type等),input的控件值要使用val()去修改,當(dāng)然,如果是div的話就得用html()獲取或者修改。
當(dāng)前文章:javascript遞減的簡(jiǎn)單介紹
當(dāng)前鏈接:http://chinadenli.net/article34/dsedhse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制開發(fā)、標(biāo)簽優(yōu)化、品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)