2018-11-02day05JS基礎(chǔ)

1.JS基礎(chǔ)語(yǔ)法

//1.注釋,單行
/*多行注釋
*多行注釋
/
//2.標(biāo)識(shí)符
//js標(biāo)識(shí)符就是用來(lái)命名的(給變量命名懊直,函數(shù)命名饥努,對(duì)象命名)
//js中要求標(biāo)識(shí)符是字母數(shù)字下劃線外加$組成筷登,數(shù)字還是不能開(kāi)頭
//js中大小寫(xiě)敏感
var abc = 100
console.log(abc)
// console.log 在控制臺(tái)打印括號(hào)中的內(nèi)容仑扑,和print一樣
//3.常用的數(shù)據(jù)類(lèi)型
/

a.數(shù)字類(lèi)型(Number)桶略、布爾(Boolean)、字符串類(lèi)型(String)妇汗、數(shù)組Array()、對(duì)象Object()说莫,函數(shù)founction()
數(shù)字類(lèi)型(Number)---包含所有的數(shù)字杨箭,整數(shù)和小數(shù) ,支持科學(xué)計(jì)數(shù)法,不支持復(fù)數(shù)

    100,13.5,-99
    console.log(4e2)
    //布爾.
    true
    false
    //字符串(String)雙引號(hào)或者單引號(hào)都可以
    'abc'
    "abc"
    //數(shù)組(Array),相當(dāng)于python的列表
    var p2=[2,43]
    console.log(p2)
    //(object):python中對(duì)象和字典的結(jié)合,不一樣的是這里的name储狭,age是對(duì)象互婿,值是屬性

    var p1= {
        name:'小明',
        age:99          
    }
    console.log(p1)
    //founction(函數(shù)):相當(dāng)于python中的函數(shù)
    function hanshu1(){
        console.log('我是函數(shù)')
    }
        hanshu1()
    /*
    b.typeof(數(shù)據(jù))- 查看數(shù)據(jù)類(lèi)型
    
    c. new 類(lèi)型名(數(shù)據(jù))--將數(shù)據(jù)轉(zhuǎn)換成指定的類(lèi)型
    
    d.常用的特殊值underfined(相當(dāng)于python中的none) null(一般用來(lái)清空變量)
    */
    
    //4.格式 :js沒(méi)有縮進(jìn)的要求

2.JS中的變量

js變量
語(yǔ)法:
var 變量名
變量名 = 值

說(shuō)明 :
var -是js關(guān)鍵字,聲明變量的時(shí)候可以要var辽狈,也可以不用慈参,但如果不要var變量就必須賦值,否則報(bào)錯(cuò)刮萌。
如果寫(xiě)了var變量可以不賦值,會(huì)返回underfined

變量名--標(biāo)識(shí)符,不能是關(guān)鍵字先口。駝峰式命名規(guī)范 除了首單詞首字母多個(gè)單詞命名首字母大寫(xiě)

//聲明變量
    var name1 = '小明'
    var name2
    name3 = '小花'
    
    //同時(shí)聲明多個(gè)變量
    var age,sex='男',score=100
    console.log(sex,age,score)
    
    //變量中的值:可以賦任何其他類(lèi)型的值樟澜。字符串,數(shù)字等等....
    age,name = '老年人','小花'
    console.log(age,name)

3.運(yùn)算符

//js支持:數(shù)學(xué)運(yùn)算符涮阔,比較運(yùn)算符猜绣,邏輯運(yùn)算符,賦值運(yùn)算符澎语,位運(yùn)算符
    //1.數(shù)學(xué)運(yùn)算符:+,-,*,%,++,--,**  -->不支持整除// 
    //++ (自加1)途事,--(自減1)
    //變量++,變量--擅羞,++變量尸变,--變量(變量必須要有值)符號(hào)在前在后都一樣
    //注意賦值的時(shí)候++和--寫(xiě)在變量的前面和變量的后面對(duì)應(yīng)的效果不一樣

    var number = 10
    number++
    ++number
    --number
    console.log(number)

    //2.比較運(yùn)算符:>,<,==,!=,>=,<=,===,!==,<==,>==
    //比較運(yùn)算的返回值都是Boolean
    // ==(相等)----判斷值是否相等
    //===(完全相等)----判斷值和類(lèi)型是否相等
    console.log(5==5)//T
    console.log(5=='5')//T
    
    console.log(5===5)  //T
    console.log(5==='5')//F

    //3.邏輯運(yùn)算符:&&(與),||(或),!(非)
    //運(yùn)算規(guī)則和python中的and减俏、or召烂、not一模一樣
    
    //4.賦值運(yùn)算符: = ,+= , -=  ,*= ,/= ,%=
    //和python一樣
    
    //5.位運(yùn)算符:&與 , |或 , ^異或 , ~取反,>>,<<
    //和python一樣
    
    //6.符合運(yùn)算:數(shù)學(xué)>比較>邏輯>賦值
    //可以通過(guò)加()來(lái)改變運(yùn)算順序

4.分之結(jié)構(gòu)

JS中的分之結(jié)構(gòu)有兩種,分別是if結(jié)構(gòu)和switch結(jié)構(gòu)
1.if語(yǔ)句
結(jié)構(gòu):
if(條件語(yǔ)句):{
代碼段1
}
說(shuō)明:
if--關(guān)鍵字
(){}----固定寫(xiě)法
執(zhí)行過(guò)程:
判斷條件語(yǔ)句是否為true娃承,為true就執(zhí)行大括號(hào){}中的內(nèi)容奏夫。不管縮進(jìn)問(wèn)題怕篷。

b.if-else結(jié)構(gòu)
if(條件1){
代碼段1
}else{
代碼段2}
和python中的執(zhí)行過(guò)程一樣
c.else if 結(jié)構(gòu)和python中的elif節(jié)后一樣
if(條件1){
代碼段1
}else if(條件2){
}else if(條件3){
}else{
}
2.switch語(yǔ)句
switch(變量或者有值的表達(dá)式){
case 值1:{代碼段1}
case 值2:{代碼段2}
case 值3:{代碼段3}
case 值4:{代碼段4}
...
default:{代碼段5}
}
執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值,然后從上往下一一和case后面的值進(jìn)行比較酗昼,找到第一個(gè)和表達(dá)式的值相等的case的值
然后將執(zhí)行后面所有case的代碼段廊谓,直到執(zhí)行完或者遇到break為止。
如果沒(méi)有值和表達(dá)式的值一樣麻削,就執(zhí)行default后面的代碼段

 num =10
    switch(num){
        case 1:console.log('1')
        case 2:console.log('2')
        case 3:console.log('3')
        case 10:console.log('正確')
        case 11:console.log('我是11')
        break
        
        default:console.log('我是default')
    }
    //練習(xí):輸入0-6輸出1-7
    
    switch (week){
        case 0:console.log('周一')break
        case 1:console.log('周二')break
        case 2:console.log('周三')break
        case 3:console.log('周四')break
        case 4:console.log('周五')break
        case 5:console.log('周六')break
        case 6:console.log('周日')            
    }

5.循環(huán)結(jié)構(gòu)

for in 結(jié)構(gòu)和python中的循環(huán)結(jié)構(gòu)一樣蒸痹,不過(guò)這里的for in取出來(lái)的是序列元素的下標(biāo),如果是對(duì)象取出來(lái)的則是對(duì)象的key(屬性名)
結(jié)構(gòu):
for 變量 in 序列{
循環(huán)體
}

for (x in 'abc'){
        console.log('abc'[x])
    }
    取出來(lái)的x是下標(biāo)呛哟,在通過(guò)下標(biāo)取 出來(lái)元素

b. C語(yǔ)言的for循環(huán)結(jié)構(gòu)
for(表達(dá)式1叠荠;表達(dá)式2條件語(yǔ)句;表達(dá)式3){
循環(huán)體
}
直到思想:語(yǔ)句塊之間要用分號(hào)隔開(kāi)扫责!語(yǔ)句塊1里面寫(xiě)循環(huán)開(kāi)始前的準(zhǔn)備工作榛鼎,例如聲明變量,語(yǔ)句塊1可以省略也可以設(shè)置多個(gè)值用逗號(hào)隔開(kāi)鳖孤。語(yǔ)句塊2里面寫(xiě)執(zhí)行循環(huán)體的條件者娱。用來(lái)控制執(zhí)行循環(huán)體的次數(shù)。語(yǔ)句塊3用來(lái)改變初始變量的值淌铐,改變循環(huán)次數(shù)
執(zhí)行過(guò)程:
先進(jìn)入語(yǔ)句塊1肺然,判斷條件2是否為true,如果為true就執(zhí)行循環(huán)體腿准,執(zhí)行完成后進(jìn)入語(yǔ)句塊3际起,執(zhí)行完語(yǔ)句塊3后在判斷2是否為true,如果為true就繼續(xù)執(zhí)行循環(huán)體吐葱,再進(jìn)入3...以此類(lèi)推直到2位false街望。循環(huán)就結(jié)束~

c. while循環(huán)和python中的while循環(huán)一樣
結(jié)構(gòu):
while(條件){
循環(huán)體}
d. do while循環(huán)結(jié)構(gòu)--->先執(zhí)行一次循環(huán)體,在判斷條件是否為true弟跑,為true就繼續(xù)執(zhí)行灾前,直到false為止,至少能執(zhí)行一次循環(huán)體
do{
循環(huán)體
}while(條件)
3.js中的break和continue和python中一樣

6.函數(shù)

函數(shù)還是分為聲明和調(diào)用孟辑,聲明的時(shí)候不會(huì)執(zhí)行函數(shù)體哎甲,調(diào)用的時(shí)候才會(huì)執(zhí)行函數(shù)體
1.函數(shù)的聲明,和python中一樣
function 函數(shù)名(參數(shù)列表){
函數(shù)體
return 返回值
}
說(shuō)明:
function是聲明函數(shù)的關(guān)鍵字饲嗽,
函數(shù)名 --駝峰式命名炭玫,見(jiàn)名知意
參數(shù)列表--如果沒(méi)有設(shè)置默認(rèn)值,相當(dāng)于默認(rèn)值為undefined
返回值--return或者undefined(none)

b.以聲明變量的方式聲明函數(shù) 這種相當(dāng)于把函數(shù)名字放在前面貌虾。函數(shù)名 =吞加。。。
函數(shù)名 = function (參數(shù)列表){
函數(shù)體
return 返回值
}

function sum(m,n){
        return m+n
    }
    console.log(sum(2,3))

調(diào)用:函數(shù)名(實(shí)參列表)
調(diào)用的時(shí)候參數(shù)少傳多傳不會(huì)報(bào)錯(cuò)衔憨,但還是保證每個(gè)都有就可以了叶圃。
只能通過(guò)位置參數(shù)傳參,關(guān)鍵字參數(shù)無(wú)效践图,還是按照位置傳參
js中不支持不定長(zhǎng)參數(shù)

7.字符串

由單引號(hào)或者雙引號(hào)括起來(lái)的
1.轉(zhuǎn)義字符:和python中的一樣
2.字符串長(zhǎng)度: 字符串.length
3.獲取單個(gè)字符:字符串[下標(biāo)]
注意: 下標(biāo)取值范圍是0 ~ 長(zhǎng)度-1掺冠;超出范圍取到的是undefined;
js中沒(méi)有切片語(yǔ)法

    //轉(zhuǎn)義字符
    console.log('abc\n123')
    console.log('\tabc\'123')
    
    //字符串長(zhǎng)度
    console.log('123abc'.length)
    
    //獲取單個(gè)字符
    str1 = 'hello world'
    console.log(str1[1])

2.相關(guān)運(yùn)算符
+ - 將兩個(gè)字符串拼接在一起產(chǎn)生一個(gè)新的字符串
(注意如果是一個(gè)字符串加上其他的數(shù)據(jù),會(huì)先將其他數(shù)據(jù)轉(zhuǎn)換成字符串再相加)
js不支持*運(yùn)算符
比較運(yùn)算(>, <. ==, !=, ===, !==)
>码党、< - 和python一樣赫舒,還是比字符編碼值的大小

    console.log('abc'+'hnm')
    console.log('abc'+100, 'abc'+true, 'abc'+[1,2,3])
//  str1 = new String([10, 20, 30])
//  console.log(str1)

//  console.log('abc'*3)   // NaN -> not a number
//  console.log(10/0)   // Infinity -> 無(wú)窮大
    console.log('abc' > 'abaaaa')

js的正則表達(dá)式寫(xiě)在//兩個(gè)斜杠之間。

8.數(shù)組

數(shù)組就是python中的列表
1.數(shù)組是有序闽瓢,可變的,里面的元素可以是任意類(lèi)型的數(shù)據(jù)
2.增刪改查

a.查(獲取數(shù)組中的元素) - 不支持切片
數(shù)組[下標(biāo)]
數(shù)組.slice(開(kāi)始下標(biāo), 結(jié)束下標(biāo)) - 切片

    arr1 = [1, 2, 3, 'abc']
    console.log(arr1[3])
    //獲取數(shù)組的長(zhǎng)度
    console.log(arr1.length)
    
    
    result = arr1.slice(0, 2)
    console.log(result, arr1)
    
    /*
     b.增(添加元素)
     數(shù)組.push(元素) - 將元素添加到數(shù)組的最后
     */
    arr1.push('hello')
    console.log(arr1)
    
    /*
     c.刪(刪除元素)
     數(shù)組.pop() - 刪除最后一個(gè)元素
     
     數(shù)組.splice(開(kāi)始刪除的下標(biāo), 刪除的個(gè)數(shù))  - 從數(shù)組指定的下標(biāo)開(kāi)始刪除指定個(gè)數(shù)元素
     */
    arr1.pop()
    console.log(arr1)
    
    arr1.splice(2, 1)
    console.log(arr1)
    
    /*
     d.改(修改元素的值)
     數(shù)組[下標(biāo)] = 新值  - 修改指定下標(biāo)的元素
     
     數(shù)組.splice(開(kāi)始下標(biāo),個(gè)數(shù), 多個(gè)其他參數(shù)) - 用其他參數(shù)替換開(kāi)始下標(biāo)開(kāi)始后的指定個(gè)數(shù)個(gè)元素
     */
    arr1 = [1, 2, 3, 4, 'abc']
    arr1[0] = 10
    console.log(arr1)
    
    arr1.splice(1,2, 'a','b', 'c')
    console.log(arr1)

9.對(duì)象

//js中沒(méi)有python的類(lèi),只有對(duì)象和構(gòu)造方法
/*1.對(duì)象的字面量
對(duì)象名 = {屬性名:屬性值, 屬性名2: 屬性值2...}
3.構(gòu)造方法 - 用來(lái)創(chuàng)建對(duì)象的
function 類(lèi)名(參數(shù)列表){
this.屬性1 = 屬性值1
this.屬性2 = 屬性值2
...

return this //這句話必須寫(xiě)
}
這兒的this類(lèi)似python中的self心赶,表示當(dāng)前對(duì)象
這兒的this類(lèi)似python中的self扣讼,表示當(dāng)前對(duì)象

    function Person(name1, age1){
        //對(duì)象屬性
        this.name = name1
        this.age = age1
        this.tel = ''
        this.sex = '男'
        
        //對(duì)象方法
        this.eat = function (food){
            console.log(this.name+'在吃'+food)
        }
        
        return this
    }
    
    p2 = Person('小明', 18)
    p2.tel = '1727839923'
    p2.eat('面條')
    
    p3 = Person('小花', 20)
    p3.sex = '女'
    p3.eat('面包')
    ~~~
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缨叫,隨后出現(xiàn)的幾起案子椭符,更是在濱河造成了極大的恐慌,老刑警劉巖耻姥,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件销钝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡琐簇,警方通過(guò)查閱死者的電腦和手機(jī)蒸健,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)婉商,“玉大人似忧,你說(shuō)我怎么就攤上這事≌芍龋” “怎么了盯捌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蘑秽。 經(jīng)常有香客問(wèn)我饺著,道長(zhǎng),這世上最難降的妖魔是什么肠牲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任幼衰,我火速辦了婚禮,結(jié)果婚禮上埂材,老公的妹妹穿的比我還像新娘塑顺。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布严拒。 她就那樣靜靜地躺著扬绪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪裤唠。 梳的紋絲不亂的頭發(fā)上挤牛,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音种蘸,去河邊找鬼墓赴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛航瞭,可吹牛的內(nèi)容都是我干的诫硕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼刊侯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼章办!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起滨彻,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤藕届,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后亭饵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體休偶,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年辜羊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了踏兜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡八秃,死狀恐怖庇麦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喜德,我是刑警寧澤山橄,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站舍悯,受9級(jí)特大地震影響航棱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萌衬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一饮醇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秕豫,春花似錦朴艰、人聲如沸观蓄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)侮穿。三九已至,卻和暖如春毁嗦,著一層夾襖步出監(jiān)牢的瞬間亲茅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工狗准, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留克锣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓腔长,卻偏偏與公主長(zhǎng)得像袭祟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捞附,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line)榕酒,也就是一...
    悟名先生閱讀 4,150評(píng)論 0 13
  • 本學(xué)期開(kāi)學(xué)前幾天紊婉,由于已經(jīng)安排好的人員突然發(fā)生變動(dòng)药版,學(xué)校領(lǐng)導(dǎo)安排我一個(gè)人擔(dān)任兩個(gè)班級(jí)的班主任。按照我曾經(jīng)提出的希望...
    雪后山閱讀 825評(píng)論 12 15
  • 大家好喻犁,看到今天的標(biāo)題你是不是很好奇槽片,人只有一個(gè)大腦,何時(shí)擁有三個(gè)腦了肢础?是怪物嗎还栓?如果你想讓自己充滿感召力,就得贏...
    空之境婉容閱讀 472評(píng)論 0 0
  • 有人說(shuō) 你的愛(ài)如水 我說(shuō) 你的愛(ài) 勝水 山传轰,沒(méi)有你的愛(ài)高大剩盒, 天,沒(méi)有你的愛(ài)廣闊慨蛙, 地辽聊,沒(méi)有你的愛(ài)包容; 太陽(yáng)期贫,沒(méi)...
    Infinity_2099閱讀 263評(píng)論 0 2
  • 文/三兩個(gè)黃昏 1. 歲月很長(zhǎng)跟匆,一不小心卻人走茶涼。 2. 最近兩天通砍,一直都是宅著玛臂,確實(shí)沒(méi)怎么出去過(guò)。或許是因?yàn)樵?..
    三兩個(gè)黃昏閱讀 303評(píng)論 2 3