1.注釋
// 單行注釋:在注釋文字前加
/*
多行注釋
*/
2.標(biāo)識(shí)符
由字母谅河、數(shù)字攒盈、下劃線和一般不輕易使用,在jq有特殊的意義)
3.關(guān)鍵字
for if var constant while func true false等
4.數(shù)據(jù)類型
- Number(數(shù)字)、String(字符串)、Boolean(布爾)诬垂、Array(數(shù)組)绣溜、Obeject(對象)
a.Number -- 包含所有的數(shù)字(包含整數(shù)慷彤、小數(shù)),支持科學(xué)計(jì)數(shù)。例如100底哗,0.23
b.String -- 既可以用單引號岁诉,也可以用雙引號,支持轉(zhuǎn)義字符和編碼字符
c.Boolean -- 只有true和false兩個(gè)值,分別代表真和假
d.Array -- 相當(dāng)于python中的列表跋选,[1,'he', true, [1,2,3]]
e.Obeject -- 類似python中字典和對象的結(jié)合
2)typeof函數(shù) -- 獲取數(shù)據(jù)對應(yīng)的類型
3)類型名(數(shù)字) -- 類型轉(zhuǎn)換
parseFloat(數(shù)據(jù)) -- 將數(shù)據(jù)轉(zhuǎn)換成浮點(diǎn)數(shù)
parseInt(數(shù)據(jù)) -- 將數(shù)據(jù)轉(zhuǎn)換成整數(shù)
5.語句
一行一般情況下只寫一條語句涕癣,語句結(jié)束后可以有分號也可以沒有;
如果一行有多條語句前标,語句之間必須有分號
縮進(jìn)無要求坠韩,大小寫敏感
聲明變量的語法
*1)語法1
* 變量 = 值
*
*2)語法2:
* var 變量名 / var 變量名 = 值
*
* 3)說明
* 變量名 - 標(biāo)識(shí)符、不能是關(guān)鍵炼列;駝峰式命名只搁;
* 聲明變量如果沒有給變量賦值(語法2才支持),變量的默認(rèn)值是undefined
*/
同時(shí)聲明多個(gè)變量俭尖,賦相同的值
a = b = c = 10
同時(shí)聲明多個(gè)變量氢惋,賦不同的值
var a1, b1=10, c1=20
js支持?jǐn)?shù)學(xué)運(yùn)算法、比較運(yùn)算符目溉、邏輯運(yùn)算符明肮、賦值運(yùn)算符、位運(yùn)算
1.數(shù)學(xué)運(yùn)算符:+缭付,-柿估,*,/, %, ++, --
1)自加自減的坑
num = 10
num2 = num ++ // num2 = num; num += 1 返回值為舊值
num = 10
num2 = ++ num // num += 1; num2 = num 返回值為新值
2.比較運(yùn)算符:>, <, ==, !=, >=, <=, !==陷猫, ===
console.log(5 == '5') // true == 判斷值是否相等(不管類型)
console.log(5 === '5') // false === 判斷值和類型是否相等
支持表示范圍的連續(xù)寫法
3.邏輯運(yùn)算:&&(邏輯與運(yùn)算)秫舌、||(邏輯或運(yùn)算)、!邏輯非運(yùn)算
和python中的and, or, not功能一樣
4.賦值運(yùn)算符:=绣檬,+=足陨,-=,*=娇未,/=墨缘,%=
和python一樣
5.復(fù)合運(yùn)算和python一樣
數(shù)學(xué)運(yùn)算符、比較運(yùn)算符零抬、賦值運(yùn)算符镊讼、邏輯運(yùn)算符、
6.三目運(yùn)算符 - 表達(dá)式?值1:值2
判斷表達(dá)式的值是否是true,如果為true整個(gè)運(yùn)算的結(jié)果是值1平夜,否則為值2
js有if和switch兩種分支結(jié)構(gòu)
1.if分支
/*1)結(jié)構(gòu)1: if
js:
if(條件語句){
滿足條件執(zhí)行的代碼塊
}
python: if 條件語句:
滿足條件執(zhí)行的代碼塊
2)結(jié)構(gòu)2 -- if-else
if (條件語句){
滿足條件執(zhí)行的代碼塊
}
else{
不滿足條件執(zhí)行的代碼塊}
- 結(jié)構(gòu)3 -- if - elif ...else
if (條件語句1){
滿足條件1執(zhí)行的代碼塊
}
else if(條件語句2){
滿足條件2執(zhí)行的代碼塊}
else{其他代碼塊}
2.switch
1)語法:
switch(表達(dá)式){
case 值1:
代碼塊1
case 值2:
代碼塊2
case 值3:
代碼塊3
default:
代碼塊N
}
- 執(zhí)行過程
先計(jì)算表達(dá)式的結(jié)果蝶棋,然后讓這個(gè)結(jié)果按順序從前往后和每個(gè) case后面的值進(jìn)行比較;如果哪個(gè)case的值和表達(dá)式結(jié)果相等忽妒,將這個(gè)case作為入口玩裙,依次后面每個(gè)所有的代碼塊兼贸;直到執(zhí)行完最后一個(gè)代碼塊或者遇到break為止;如果每個(gè)case的值都和表達(dá)式的結(jié)果不相等吃溅,直接執(zhí)行default后面的代碼塊(default可以不寫)
js中循環(huán)分為for循環(huán)和while循環(huán)
- for循環(huán)
- 1)python類似的循環(huán):for-in 循環(huán)
for(變量 in 序列){
循環(huán)體
讓變量依次獲取序列/對象中元素的下標(biāo)(下標(biāo)/屬性名)溶诞,一個(gè)一個(gè)取完為止
取的是下標(biāo)
2)c中的for循環(huán)
for(表達(dá)式1;表達(dá)式2决侈;表達(dá)式3){
循環(huán)體
}
執(zhí)行過程:先執(zhí)行表達(dá)式1很澄,再判斷表達(dá)式2的值是否為true;如果為true執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體再執(zhí)行表達(dá)式3颜及;再判斷表達(dá)式2是否為true,如果為true執(zhí)行循環(huán)體蹂楣,執(zhí)行完循環(huán)體再執(zhí)行表達(dá)式3俏站;再判斷表達(dá)式2是否為true喇颁,如果為true執(zhí)行循環(huán)體什乙,執(zhí)行完循環(huán)體再執(zhí)行表達(dá)式3;以此類推腰涧,直到表達(dá)式2的結(jié)果為false赁酝,循環(huán)結(jié)束.
2.while 循環(huán)
1)while循環(huán)
while(條件語句){
循環(huán)體
}
2)do - while循環(huán)
do{
循環(huán)體
}
while (條件語句)
執(zhí)行過程:執(zhí)行循環(huán)體犯祠,判斷條件語句是否為true,再執(zhí)行循環(huán)體; 執(zhí)行完循環(huán)體,又判斷條件語句是否為true; 依次類推酌呆,直到條件語句為false循環(huán)結(jié)束
函數(shù)
1.語法
function 函數(shù)名(參數(shù)列表){
函數(shù)體
}
位置參數(shù)有效
關(guān)鍵參數(shù)不報(bào)錯(cuò)衡载,但是順序無效
參數(shù)可以設(shè)置默認(rèn)值(有默認(rèn)值的參數(shù)要在后面) NaN(無效數(shù)字)
不支持不定長參數(shù)
聲明函數(shù)其實(shí)就是聲明一個(gè)類型是function的變量
2.匿名函數(shù)
function(參數(shù)列表){}
字符串
單引號或者雙引號引起來的字符集,支持轉(zhuǎn)義字符和編碼字符
- 獲取字符
字符串[下標(biāo)]
1)下標(biāo)只有正值隙袁,沒有負(fù)的
2)下標(biāo)越界不會(huì)報(bào)錯(cuò)痰娱,獲取到的值是undefined
- js中不支持[]對應(yīng)的切片語法,但是有相應(yīng)的方法
2.相關(guān)操作
1)加法運(yùn)算
支持字符串和任何數(shù)據(jù)相加菩收,不是字符串類型的數(shù)據(jù)先轉(zhuǎn)化為字符串再拼接
2)比較運(yùn)算:和python一樣
3)字符串長度:字符串.length
3.相關(guān)方法
1)字符串.match(正則)
2)字符串.slice(開始下標(biāo)梨睁,結(jié)束下標(biāo))
js中的數(shù)組相當(dāng)于python中的列表
1.查
獲取單個(gè)元素:數(shù)組[下標(biāo)]
遍歷
2.增
數(shù)組.push(元素) -- 在數(shù)組的最后添加元素
數(shù)組.splice(下標(biāo), 刪除個(gè)數(shù)娜饵,插入元素1坡贺,插入元素2) -- 在某個(gè)下標(biāo)的前面去插入元素
3.刪
數(shù)組.pop()
取出數(shù)組中第一個(gè)元素 -- 數(shù)組.shift()
數(shù)組.splice(下標(biāo),個(gè)數(shù)) -從指定下標(biāo)開始刪除對應(yīng)個(gè)數(shù)的元素
4.改
數(shù)組[下標(biāo)] = 值
5.排序 -- sort(函數(shù)對象)
函數(shù)對象 -- 函數(shù)箱舞,有兩個(gè)參數(shù)(代表數(shù)組中的兩個(gè)元素)遍坟。返回值就是排序方法
數(shù)組元素從大到小排序 -- 降序
new_nums = nums.sort(function(a, b){return b-a})
數(shù)組元素從小到大排序 -- 升序
new_nums = nums.sort(function(a, b){return a-b})
對象
1.什么是對象
和python中類的對象一樣,主要由對象屬性和對象方法組成
2.創(chuàng)建對象
1)對象值
obj1 = {
name:'xm',
age:18,
gender:'male'
}
2)new 類型()
obj2 = new Object()
3.構(gòu)造方法 -- 一個(gè)用來創(chuàng)建對象的函數(shù)
1)函數(shù)名相當(dāng)于類名褐缠,首字母大寫
2)函數(shù)的功能是通過this添加屬性和對象方法(這兒的this就相當(dāng)于self)
3 ) 返回值this
function Person(name, age, gender='男'){
// 通過new的方式調(diào)用政鼠,this:Person{}
// 直接調(diào)用:this : window
console.log(this)
this.name = name;
this.age = age;
this.gender = gender;
this.eat = function(food){
console.log(this.name + '在吃' + food)
}
return this
}
4)使用構(gòu)造方法創(chuàng)建對象
對象 = 構(gòu)造方法()
p1 = new Person('xm', 18)
p2 = new Person('xh', 16, 'girl')
5)通過使用對象使用對象屬性和調(diào)用對象方法
p1.name = 'xhh'
console.log(p1.name, p1['name'])
6.添加/修改屬性
對象.屬性 = 值