2018-08-21JavaScript

01-基礎(chǔ)

1.什么是js
??js是Javascript的縮寫(xiě)玖翅,是一門(mén)專(zhuān)門(mén)用來(lái)控制網(wǎng)頁(yè)內(nèi)容的行為的腳本語(yǔ)言
??js就是web標(biāo)準(zhǔn)中的行為標(biāo)準(zhǔn)
??2.在哪兒寫(xiě)js代碼

  • a.寫(xiě)在標(biāo)簽的行為相關(guān)的屬性中,比如按鈕的onclicked
  • b.寫(xiě)在script標(biāo)簽中嗎闽瓢,(script標(biāo)簽可以放在html中的任何位置,但是一般情況下還是放在head或者body中)
    +c.寫(xiě)在外部的js文件中心赶,然后通過(guò)script標(biāo)簽導(dǎo)入扣讼,通過(guò)設(shè)置src屬性為js文件的路徑
    ??3.js能做些什么事情
  • a.js可以在網(wǎng)頁(yè)中插入html代碼
  • b.可以修改標(biāo)簽內(nèi)的內(nèi)容
  • c.修改標(biāo)簽的樣式
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <!--內(nèi)部的js-->
            <script type="text/javascript">
                //在這兒也可以寫(xiě)js代碼
                window.alert('你好,Python')
            </script>
        <!--外部的的js-->
            <script type="text/javascript" src="index.js">
                
            </script>
    </head>
    <body>
        
        
        <p id="p1">中秋節(jié)快樂(lè)</p>
        
        
        
        <!--內(nèi)聯(lián)的js-->
        <button onclick="window.alert('你好缨叫,Python')">點(diǎn)我</button>
        <!--<input type="text" onfocus="window.alert('你好椭符,input')"/>-->
        <!--插入html代碼-->
        <script type="text/javascript">
            document.write('<p>中秋節(jié)快樂(lè)</p>')
        </script>
        
    </body>
</html>

02-基礎(chǔ)語(yǔ)法

//1.注釋
//單行注釋就是在前面加“//”
/這個(gè)是多行注釋/

//2.標(biāo)識(shí)符
//要求是由字母,數(shù)字,下劃線和符組成,數(shù)字不能開(kāi)頭 var abc var abc var12

//3.js中大小寫(xiě)敏感

//4.基本數(shù)據(jù)類(lèi)型
//a.Number(數(shù)字-包含所有的數(shù)字)、Boolean(布爾類(lèi)型)耻姥、String(字符串)销钝、Array(數(shù)組 )Object(對(duì)象)。琐簇。蒸健。。
//注意:js中沒(méi)有元組和集合
//b.常用的特殊的值:NaN(表示不存在的數(shù)字),null(空婉商,一般用來(lái)清空變量中的內(nèi)容),undefined(變量沒(méi)有賦值的時(shí)候似忧,默認(rèn)就是undefined)
console.log() //相當(dāng)于Python中print函數(shù),作用是在控制臺(tái)打诱芍取()中的內(nèi)容

//5.字面量
//Number字面量:所有的數(shù)字(支持科學(xué)計(jì)數(shù)法盯捌,不支持復(fù)數(shù))
10
1e2
//Boolean字面量:只有true和false
true
false
//String字面量:用單引號(hào)或者雙引號(hào)引起來(lái)的字符集,支持轉(zhuǎn)義字符(和Python一樣)
"ssad",'afda'
'sda'
console.log('sad')
console.log('123\n12')
//Array字面量:js中數(shù)組相當(dāng)于Python中的列表
console.log(['s','1','asd',true])
//Object對(duì)象字面量:相當(dāng)于Python中的字典+對(duì)象
//注意:key相當(dāng)于屬性,value相當(dāng)于屬性的值
var dict = {a:123,true:name}
console.log(dict)

//typeof:查看數(shù)據(jù)類(lèi)型
console.log(typeof(true),typeof('asd'))

//js中的語(yǔ)法:
//a.一條語(yǔ)句結(jié)束后,可以寫(xiě)分號(hào),也可以不寫(xiě).如果一行寫(xiě)多條語(yǔ)句就必須寫(xiě)分號(hào)
//b.js中沒(méi)有縮進(jìn)語(yǔ)法的要求,需要使用代碼塊的時(shí)候,使用大括號(hào)

03-js變量

//1.js中的變量聲明
//變量必須先聲明再使用
/*語(yǔ)法:var 變量名 或者var 變量名=值

  • 說(shuō)明:
  • a.var:是js中聲明變量的關(guān)鍵字
  • b.變量名:標(biāo)識(shí)符,不能是js中的關(guān)鍵字蘑秽;駝峰式命名(第一個(gè)單詞的首字母小寫(xiě)挽唉,后面每個(gè)單詞的首字母大寫(xiě)),見(jiàn)名知義
  • c.初值:聲明的時(shí)候可以賦初值筷狼,也可以不賦
    */
    var studentCount = 100

//同時(shí)聲明多個(gè)變量
var age; var name
var age1, name, studyId
var age2=10, name2 //聲明變量
name2 = 100 //修改變量中的值
name2 = [1,'aa'] //修改變量中的值
console.log(name2)

04-js中的運(yùn)算

//js中的運(yùn)算符包含:數(shù)學(xué)運(yùn)算符瓶籽、比較運(yùn)算符、邏輯運(yùn)算符埂材、賦值運(yùn)算符塑顺、三目運(yùn)算符、(位運(yùn)算)
//1.數(shù)學(xué)運(yùn)算符:+、-严拒、扬绪、/、%裤唠、(js7才有的)挤牛、++、--
//其中:+种蘸、-墓赴、
、/航瞭、%诫硕、**和Python中的功能一樣
//注意:js中沒(méi)有整除對(duì)應(yīng)的運(yùn)算符

//a.++(自加):自加一
//語(yǔ)法:變量++,++變量-----》讓變量的值加一
var num = 1
num++ //相當(dāng)于Python中的 變量 += 1
++num
console.log(num)

//b.--(自加):自減一
//語(yǔ)法:變量--刊侯,--變量-----》讓變量的值減一
var num1 = 1
num1-- //相當(dāng)于Python中的 變量 -= 1
--num1
num1 -= 1
console.log(num1)

//c.賦值的時(shí)候章办,++/--寫(xiě)在變量的后面,是先賦值滨彻,然后再讓變量值加1/減1藕届,++/--寫(xiě)在變量的前面,就是先加1/減1亭饵,然后再賦值
var num2 = 10,num3 = 10,b,c
b = num2++
c = ++num3
console.log(b,c,num2,num3)

//2.比較運(yùn)算符:>,<,==,!=,>=,<=,===,!==,>==,<==
//結(jié)果值是布爾值
//==(相等休偶,只判斷值是否相等),===(完全相等冬骚。判斷值和類(lèi)型是否相等)
console.log(5==5) //true
console.log('5'==5) //true
console.log('5'=='5') //true

console.log(5===5) //true
console.log('5'===5) //false
console.log('5'==='5') //true

//3.邏輯運(yùn)算符:&&(與)椅贱,||(或),!(非)
//js的邏輯運(yùn)算符只冻,除了表示不一樣庇麦,其他的與Python中一樣

//4.賦值運(yùn)算符:=, +=喜德, -=山橄, *=, /=舍悯, %=航棱,ect,和Python中的一樣

//5.三目運(yùn)算符:?:
//語(yǔ)法:表達(dá)式1?值1:值2-----》判斷表達(dá)式1的值是否為真萌衬,如果為真整個(gè)運(yùn)算的結(jié)果就是值1饮醇,否則是值2
var value = 10>20?5:0
console.log(value)

//練習(xí):求三個(gè)數(shù)的最大值,(使用三目運(yùn)算符)
var a = 10, b = 20, c = 30
var max = (a>b?a:b)>c?(a>b?a:b):c
console.log(max)

//6.運(yùn)算順序:和Python基本一樣(數(shù)學(xué)>比較>邏輯>賦值)秕豫,也可以通過(guò)加括號(hào)來(lái)改變順序

05-分支結(jié)構(gòu)

//js中的分支結(jié)構(gòu):if語(yǔ)句,switch語(yǔ)句
//1.if語(yǔ)句
/*結(jié)構(gòu):
a.if(條件語(yǔ)句)
{
    (條件成立執(zhí)行)代碼段
}
執(zhí)行過(guò)程:先判斷條件語(yǔ)句是否為true朴艰,為true就執(zhí)行代碼段

b.if-else結(jié)構(gòu):
if(條件語(yǔ)句){
    代碼段1    
}else{
    代碼段2
}
 
c.if-elif-else:(這兒的else if相當(dāng)于Python中的elif)
if(條件語(yǔ)句1){
    代碼段1
}else if(條件語(yǔ)句2){
    代碼段2
}else{
    代碼段3
}

 */
//判斷一個(gè)數(shù)是否是偶數(shù),如果是就打印偶數(shù)
var num = 10
if(num%2==0){
    console.log('偶數(shù)')
}

//2.switch
/*
a.結(jié)構(gòu):
switch(表達(dá)式){
    case 值1:{
        代碼段1
//      break(可要可不要)
    }
    case 值2:{
        代碼段2
//      break
    }
    ...
    default:{
        
    }
}
b.執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值观蓄,然后再用這個(gè)值和后邊case關(guān)鍵字后面的值一一比對(duì),
            看是否相等祠墅,找到第一個(gè)和表達(dá)式相等的case侮穿,
            然后將這個(gè)case作為入口,依次執(zhí)行后邊所有的代碼毁嗦,
            直到遇到break或者switch結(jié)束亲茅。
            如果沒(méi)有找到和表達(dá)式的值相等的case就執(zhí)行default后面的代碼
c.注意:default可有可無(wú),case可以有很多個(gè)
 */

//練習(xí):根據(jù)數(shù)字對(duì)應(yīng)的值的不同,打印不同的結(jié)果:0-->星期天 1-->星期一 ....
var week = 4
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('星期六')
    default:
        console.log('值不對(duì)')
}
//練習(xí):根據(jù)分?jǐn)?shù)分等級(jí):1-5:不及格,  6:及格,  7,8:良好  9,10:優(yōu)秀
var score = 9
switch(score){
    case 1: 
    case 2:
    case 3:
    case 4:
    case 5:
        console.log('不及格')
        break
    case 6:
        console.log('及格')
        break
    case 7: 
    case 8:
        console.log('良好')
        break
    case 9:
    case 10:
        console.log('優(yōu)秀')
        break
    default:
        console.log('值不對(duì)')
}

06-循環(huán)結(jié)構(gòu)

//js中的循環(huán)結(jié)構(gòu)分為:for循環(huán)和while循環(huán)
//1.for-in循環(huán):(和Python的for循環(huán)一樣)
/*
for var 變量 in 序列
{
    循環(huán)體
}
執(zhí)行過(guò)程:依次從序列中取元素對(duì)應(yīng)的索引狗准,取完為止克锣,每取一次執(zhí)行一次循環(huán)體
a.遍歷字符串,取的是字符對(duì)應(yīng)的下標(biāo)
b.遍歷數(shù)組驶俊,取的是元素對(duì)應(yīng)的下標(biāo)
c.遍歷對(duì)象娶耍,取的是屬性名(key)
*/
var str= 'asdf'
for(var i in str){  
//  i 取的是str的下標(biāo)
    console.log(str[i])
}

//2.for循環(huán):(和C語(yǔ)言的for循環(huán)一樣)
/*
for(表達(dá)式1免姿;表達(dá)式2饼酿;表達(dá)式3){
    循環(huán)體
}
執(zhí)行過(guò)程:先執(zhí)行表達(dá)式1,然后再判斷表達(dá)式2的結(jié)果是否為true胚膊,
        如果為true故俐,就執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體再執(zhí)行表達(dá)式3紊婉,
        然后再判斷表達(dá)式2的結(jié)果是否為true药版,
        如果為true,又執(zhí)行循環(huán)體喻犁,執(zhí)行完循環(huán)體再執(zhí)行表達(dá)式3槽片,
        依次循環(huán),直到表達(dá)式2的結(jié)果為false為止
*/

//3.while循環(huán):(和Python一樣)
/*
while(條件語(yǔ)句){
    循環(huán)體
}
*/

//4.do-while:
/*
do{
    循環(huán)體
}while(條件語(yǔ)句)

執(zhí)行過(guò)程:先執(zhí)行一次循環(huán)體肢础,然后再判斷條件語(yǔ)句是否為true还栓,
           為true又執(zhí)行循環(huán)體,以此類(lèi)推传轰,直到條件語(yǔ)句為false剩盒,循環(huán)結(jié)束
*/

07-函數(shù)

//1.函數(shù)的聲明
/*
function 函數(shù)名(參數(shù)列表){
函數(shù)體
}
說(shuō)明:
a.function:是js中聲明函數(shù)的關(guān)鍵字
b.函數(shù)名:標(biāo)識(shí)符,不能是關(guān)鍵字慨蛙,見(jiàn)名知義辽聊,駝峰式命名
c.參數(shù)列表:參數(shù)名1,參數(shù)名2....期贫;形參:給函數(shù)傳值
d.函數(shù)體:實(shí)現(xiàn)函數(shù)的功能

注意:函數(shù)體只有在函數(shù)調(diào)用的時(shí)候才執(zhí)行
*/
function sum(num1=5,num2=12){
console.log(num1+num2)
}
//2.函數(shù)的調(diào)用:和Python一樣
//注意:js中不支持不定長(zhǎng)參數(shù)
sum(1,9)
sum(sum1=10)
sum(num2=5)
sum(20)

//3.函數(shù)的返回值
//js中函數(shù)沒(méi)有遇到return,函數(shù)的返回值就是undefined
//注意:js中不能同時(shí)返回多個(gè)值(有元組語(yǔ)法的語(yǔ)言才支持多個(gè)返回值)
function func1(){
console.log('func1')
// return 100,'abc'
}
console.log(func1())

//逗號(hào)表達(dá)式:多個(gè)值之間用逗號(hào)隔開(kāi)跟匆,整個(gè)表達(dá)式的結(jié)果是第一個(gè)值
var nums
nums = 100,'abc',true
console.log(nums)

//4.js中,函數(shù)也可以作為變量

//5.另外一種聲明函數(shù)的方式
/*
var 變量 = function(參數(shù)列表){
函數(shù)體
}
*/

08-數(shù)據(jù)類(lèi)型

//new 類(lèi)型名(值)---->可以將其他類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)類(lèi)型的值,不能轉(zhuǎn)換的通砍,結(jié)果是NaN
//1.數(shù)字類(lèi)型(Number):所有的數(shù)字對(duì)應(yīng)的類(lèi)型
var num1 = new Number
console.log(num1+10)

//2.布爾(Boolean):true false
//Nan和0是false,空串的是true

//3.字符串(String)
//a.獲取單個(gè)字符,通過(guò)字符串[下標(biāo)]
//b.注意:js中不支持切片
// js中所有的下標(biāo),只支持0-長(zhǎng)度減一,不支持負(fù)值

//c.長(zhǎng)度:字符串.length
// console.log(str1.length)
//d.運(yùn)算符:比較和+
//+:如果是其他的數(shù)據(jù)類(lèi)型和字符串相加玛臂,js是先將其他類(lèi)型轉(zhuǎn)換成字符串,再相加
console.log(123+'acb')

//4.數(shù)組(相當(dāng)于Python中的列表)

//splice(刪除的開(kāi)始下標(biāo),刪除的元素個(gè)數(shù))
//splice(被刪除的下標(biāo)/添加的開(kāi)始下標(biāo),添加個(gè)數(shù),被添加的元素列表)

//查,通過(guò)下標(biāo)獲取元素
//增垢揩,push(''):增加元素
//刪 pop():刪除最后一個(gè)元素玖绿;shift():刪除第一個(gè)元素
//改和Python一樣

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叁巨,隨后出現(xiàn)的幾起案子斑匪,更是在濱河造成了極大的恐慌,老刑警劉巖锋勺,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚀瘸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡庶橱,警方通過(guò)查閱死者的電腦和手機(jī)贮勃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)苏章,“玉大人寂嘉,你說(shuō)我怎么就攤上這事》闵穑” “怎么了泉孩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)并淋。 經(jīng)常有香客問(wèn)我寓搬,道長(zhǎng),這世上最難降的妖魔是什么县耽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任句喷,我火速辦了婚禮,結(jié)果婚禮上兔毙,老公的妹妹穿的比我還像新娘唾琼。我一直安慰自己,他們只是感情好瞒御,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布父叙。 她就那樣靜靜地躺著,像睡著了一般肴裙。 火紅的嫁衣襯著肌膚如雪趾唱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,950評(píng)論 1 291
  • 那天蜻懦,我揣著相機(jī)與錄音甜癞,去河邊找鬼。 笑死宛乃,一個(gè)胖子當(dāng)著我的面吹牛悠咱,可吹牛的內(nèi)容都是我干的蒸辆。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼析既,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼躬贡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起眼坏,我...
    開(kāi)封第一講書(shū)人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拂玻,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后宰译,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體檐蚜,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年沿侈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闯第。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缀拭,死狀恐怖咳短,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情智厌,我是刑警寧澤诲泌,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布盲赊,位于F島的核電站铣鹏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏哀蘑。R本人自食惡果不足惜诚卸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绘迁。 院中可真熱鬧合溺,春花似錦、人聲如沸缀台。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)膛腐。三九已至睛约,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哲身,已是汗流浹背辩涝。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勘天,地道東北人怔揩。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓捉邢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親商膊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子伏伐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,132評(píng)論 0 13
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,146評(píng)論 0 3
  • 第一章1,什么叫程序:程序就是計(jì)算機(jī)按照人類(lèi)完成事物的步驟和邏輯晕拆,通過(guò)計(jì)算機(jī)命令來(lái)逐步執(zhí)行最終實(shí)現(xiàn)目標(biāo)的一種機(jī)器語(yǔ)...
    悟名先生閱讀 945評(píng)論 0 4
  • 真的傷我太深了你 回憶里都是我們天真浪漫的那段時(shí)光 可是現(xiàn)實(shí)卻扇了我一個(gè)耳光 耳光響亮 因?yàn)?那個(gè)我原本 有希望和...
    幻夢(mèng)邪魂閱讀 489評(píng)論 0 2
  • 《好女孩,去遠(yuǎn)方》 文/六悅 都說(shuō)世界具有兩個(gè)維度茬缩,一個(gè)是右腦的赤惊、女性的、發(fā)散的凰锡、感性的未舟、樂(lè)于分享與表達(dá),一...
    六悅茗閱讀 157評(píng)論 0 0