運(yùn)算符的優(yōu)先級
- 要心如明鏡:運(yùn)算符有優(yōu)先級(先后順序)問題。
- 括號最優(yōu)先棺耍,等號(賦值)最落后贡未。
- 先乘除后加減
- 想不清楚或用不明白的,使用括號來解決
- 括號只有小括號,可以一層層嵌套俊卤。
數(shù)據(jù)的傳值方式
在js中嫩挤,基本數(shù)據(jù)類型使用 “拷貝傳值”——傳值的時候直接就出現(xiàn)了一份新的數(shù)據(jù)(當(dāng)然同時也是另一個變量所代表)
復(fù)合數(shù)據(jù)類型(數(shù)組和對象)使用“引用傳值”——傳值的時候只是做了一個地址指向,數(shù)據(jù)仍然只有一份消恍,兩個變量就指向這同一份數(shù)據(jù)俐镐。
- 注意: 基本(簡單)數(shù)據(jù)類型的變量名和數(shù)據(jù)是直接存在“快速內(nèi)存”(棧內(nèi)存)中,而復(fù)合數(shù)據(jù)類型(對象和數(shù)組)的存儲分兩個部分:實際數(shù)據(jù)存在“慢速內(nèi)存”(堆內(nèi)存)中哺哼,棧內(nèi)存中只存變量名和數(shù)據(jù)在堆內(nèi)存中的位置(地址)佩抹。
if分支結(jié)構(gòu)
控制結(jié)構(gòu):就是使用一定的語法來控制我們程序執(zhí)行的流程——也可以叫“流程控制結(jié)構(gòu)”
分支就是“多條路徑,走一條”取董。
最簡形式:
//如果此條件滿足(即條件判斷的結(jié)果是true)棍苹,則會執(zhí)行其中的語句塊,否則什么也不做茵汰。
if( 條件判斷語句 )
{
//要執(zhí)行的語句塊——語句塊其實就是一種表示“n條語句”泛泛說法枢里。
}二選一分支形式:含義是兩條路,必走一條蹂午。
if( 條件判斷語句 )
{
//要執(zhí)行的語句塊1——前面條件成立時執(zhí)行
}
else
{
//要執(zhí)行的語句塊2——前面條件不成立時執(zhí)行
}多選一分支結(jié)構(gòu):多條路根據(jù)條件的滿足情況走其中一條栏豺,但也可能一條都不走:
if( 條件判斷1 ) //如果此條件滿足,則執(zhí)行語句塊1豆胸,然后if就結(jié)束了
{
//語句塊1
}
else if ( 條件判斷2 ) //如果條件1不滿足奥洼,則判斷條件2:如果滿足,則執(zhí)行語句塊2晚胡,并結(jié)束if
{
//語句塊2
}
else if ( 條件判斷3 ) //如果條件2不滿足灵奖,則判斷條件3:如果滿足,則執(zhí)行語句塊3估盘,并結(jié)束if
{
//語句塊3
}
…………………… //依此類推瓷患。。遣妥。擅编。。箫踩。如果沒有一個條件滿足爱态,則其實到最后什么也不會執(zhí)行,if結(jié)束班套。綜合型式:
if( 條件判斷1 ) //如果此條件滿足肢藐,則執(zhí)行語句塊1故河,然后if就結(jié)束了
{
//語句塊1
}
else if ( 條件判斷2 ) //如果條件1不滿足吱韭,則判斷條件2:如果滿足,則執(zhí)行語句塊2,并結(jié)束if
{
//語句塊2
}
else if ( 條件判斷3 ) //如果條件2不滿足理盆,則判斷條件3:如果滿足痘煤,則執(zhí)行語句塊3,并結(jié)束if
{
//語句塊3
}
……………. //依此類推猿规。衷快。。姨俩。蘸拔。。
else
{
//最后的else語句塊环葵。 //此語句塊會在前面條件都不滿足的時候去執(zhí)行调窍。
}
注意:綜合型式中是必有一條分支(語句塊)會得到執(zhí)行。
switch分支結(jié)構(gòu):
switch的分支結(jié)構(gòu)整體含義跟if類似张遭,也是表示“多條路走一條”邓萨,其使用形式:
switch ( 一個變量或表達(dá)式 ) //不管是變量還是表達(dá)式,最終都代表一個“值”菊卷,我們用v1來說話
{
case 固定值1: //如果v1等于本值1缔恳,則會執(zhí)行語句塊1
//語句塊1;
break洁闰; //退出此switch結(jié)構(gòu)
case 固定值2: 如果v1不等于前面值1歉甚,則繼續(xù)判斷是否等于這里的值2,如果相等扑眉,執(zhí)行語句2
//語句塊2铃芦;
break; //退出此switch結(jié)構(gòu)
case ………………………………
襟雷。刃滓。。耸弄。咧虎。。计呈。砰诵。。捌显。茁彭。。扶歪。理肺。。。妹萨。
default: //如果前面各個判斷都不成立(也就是不相等)年枕,則會執(zhí)行此語句塊。
//注意:switch中此default語句塊可以沒有乎完。
//默認(rèn)語句塊
}
- 特別注意:if語句其實是可以使用非常靈活的條件判斷熏兄,比如 > >= < <= == != === ,但树姨,switch這里case的判斷摩桶,只能有一種判斷:相等判斷。
while循環(huán)結(jié)構(gòu):
循環(huán)的基本觀念:
- 循環(huán)就是讓某些程序(語句塊)反復(fù)執(zhí)行
- 循環(huán)必須能夠有辦法停止——計算機(jī)沒有自己的判斷能力去決定“累了帽揪,不做了”
while循環(huán)的基本語法形式:
while ( 條件判斷 ) //如果條件判斷滿足了典格,則會執(zhí)行其中的語句塊,否則while結(jié)束台丛。
{
//要執(zhí)行的語句塊
} //如果此語句塊執(zhí)行完了耍缴,會立即回到前面while的位置繼續(xù)判斷。
上述形式只是語法上的基本要求挽霉,但防嗡,在“實用”中,通常會需要遵照如下模式:
【循環(huán)變量初始化】
while ( 【循環(huán)變量作為條件判斷】 )
{
//循環(huán)體侠坎,就是要反復(fù)執(zhí)行的語句塊
【循環(huán)變量值的改變】
}
do while循環(huán)結(jié)構(gòu):
do while循環(huán)是一種會先執(zhí)行一次蚁趁,然后再根據(jù)判斷條件來決定是否繼續(xù)執(zhí)行并循環(huán)的一種循環(huán)結(jié)構(gòu)。
do while的實用形式如下:
【循環(huán)變量初始化】
do
{
//循環(huán)體实胸,就是要反復(fù)執(zhí)行的語句塊
【循環(huán)變量值的改變】
} while ( 【循環(huán)變量作為條件判斷】 ) ;
- 描述: 先執(zhí)行do后面打括號中的語句塊他嫡,然后再進(jìn)行while語句中的條件判斷,如果判斷成立(true)庐完,則繼續(xù)回到上面do后面的大括號中執(zhí)行語句塊钢属,否則就結(jié)束。
for循環(huán)結(jié)構(gòu)——推薦使用:
for循環(huán)基本形式:
for( 【循環(huán)變量初始化A】门躯; 【循環(huán)變量作為條件判斷B】淆党; 【循環(huán)變量值的改變C】 )
{
//循環(huán)體D,也就是要反復(fù)執(zhí)行的語句塊
}
for循環(huán)的執(zhí)行邏輯(順序):
A ==> B==>true ==> D ==> C ==>B==>true ==> D ==> C ==> B==>
┗==>false==>for循環(huán)結(jié)束 ┗==>false==>for循環(huán)結(jié)束
var a = new Date(); //new Date() 就是指“系統(tǒng)時間”讶凉,該時間其實就是一個“復(fù)合數(shù)據(jù)”染乌,其中包括了時間(日期)中的各項值,比如年份數(shù)懂讯,月份數(shù)荷憋,時分秒,星期等等褐望。其中每個數(shù)據(jù)都是一個“數(shù)字”而已勒庄。
var week = a.getDay(); //獲取今天系統(tǒng)時間對應(yīng)的星期串前,這里獲取的星期只是一個0到6的數(shù)而已。0代表禮拜天锅铅,1代表禮拜一。