1 js基礎語法
1.單行注釋
/*多行注釋
多行注釋
*/
2.標識符
標識符就是用來命名的(給變量勤哗、函數、對象命名)
js中要求標識符是由字母掩驱、數字芒划、下劃線和$組成的冬竟,數字不能開頭
js中大小寫敏感
console.log():在控制臺打印括號中的內容
3.常用的數據類型
數字類型(Number)、布爾(Boolean)民逼、字符串(String)
數組(array)泵殴、對象(Object)、函數(function)
typeof(數據):獲取數據類型
數字類型(Number):包含所有的數字(整數和小數)拼苍,支持科學計數法笑诅,不支持復數
布爾(Boolean):true和false
字符串(String):用雙引號或者單引號括起來的
數組(Array):相當于python中的列表
對象(Object):相當于python中對象和字典的結合
函數(Function)
typeof(數據):虎丘數據類型
var 變量名 = new 類型名(數據):將數據轉換成指定的類型
常用的特殊值:undefined,null(一般用來清空變量)
2 變量
語法:
var 變量名
變量名 = 值
說明:
var :是js的關鍵字疮鲫,聲明變量的時候用吆你。var可以省略,省略的時候變量名后面必須賦值
不省略的時候變量名后可以賦值棚点,也可以不賦值早处,不賦值的時候默認值是undefined
變量名:標識符,不能是關鍵字瘫析。駝峰式命名規(guī)范
3 運算符
js中支持 數學運算符砌梆、比較運算符、邏輯運算符贬循、賦值運算符咸包、位運算符
1.數學運算符:+,-杖虾,烂瘫,/,%奇适,*坟比,++,--
js中不支持整除
2.比較運算符:>, <, ==, !=, >=, <=, ===, !==
比較返回的結果都是布爾值
==(相等):判斷值是否相等
===(完全相等):判斷值和類型是是否相等
3.邏輯運算符:&&(與)嚷往、 ||(或) 葛账、 !(非)
運算規(guī)則和python中的and、or皮仁、not一樣
4.賦值運算符:=籍琳, +=, -=贷祈, *=趋急, /=, %=
5.位運算符:&势誊、|呜达、^、~ 粟耻、 >>闻丑、<<
6.復合運算:數學漩怎、比較勋颖、邏輯嗦嗡、賦值
<script type="text/javascript">
console.log(5==5)
console.log(5=='5')
console.log(5===5)
console.log(5==='5')
</script>
4 分支結構
js中的分支結構有兩個,分別是if和switch語句
1.if語句
結構:
if(條件語句){
代碼塊1
}else if(條件語句){
代碼塊2
}else{
代碼塊3
}
2.switch語句
switch(變量/表達式){
case 值1:{
代碼段1
}
case 值2:{
代碼段2
}
case 值3:{
代碼段3
}
default:{
代碼段4
}
}
<script type="text/javascript">
var num
num = 3
switch(num){
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('周天')
break
default:
console.log('erro')
}
var score
switch(score){
case 0:
console.log('不及格')
break
case 1:
case 2:
case 3:
console.log('及格')
break
case 4:
case 5:
console.log('優(yōu)秀')
break
default:
console.log('輸入有誤')
}
</script>
5 循環(huán)結構
js中的循環(huán)有for循環(huán)和while循環(huán)
1.for循環(huán)
a.for循環(huán)
for-in:和python的for循環(huán)的執(zhí)行過程一樣
for(變量 in 序列){
循環(huán)體
}
注意:取出來的是元素的下標或者key(屬性名)
序列可以是字符串饭玲、數組和對象
b.C的for循環(huán)結構:
for(表達式1侥祭;表達式2;表達式3){
循環(huán)體
}
2.while循環(huán)
1.while循環(huán):和python的while循環(huán)一樣
while(條件語句){
循環(huán)體
}
先判斷茄厘,后執(zhí)行
2.do-while循環(huán)
do{
循環(huán)體
}while(條件語句)
執(zhí)行過程:先執(zhí)行一次再判斷
3.break和continue
和python一樣
<script type="text/javascript">
str1 = 'abc'
for(x in str1){
console.log(str1[x])
}
arr = [10, 20, 30]
for(x in arr){
console.log(x, arr[x])
}
obj1 = {name:'xiaoming', age:'20'}
for(x in obj1){
console.log(x, obj1[x])
}
</script>
6 函數
函數分為聲明和調用矮冬,聲明的時候不會執(zhí)行函數體,只有調用才會執(zhí)行函數體
1.函數的聲明
a.和python相同的聲明方式
function 函數名(參數列表){
函數體
return 返回值
}
說明:function是聲明函數的關鍵字
函數名:駝峰式命名次哈,見名知義
參數列表:參數如果設置默認值胎署,相當于設置默認值undefined
b.以聲明變量的形式聲明函數
函數名 = function(參數列表){
函數體
return 返回值
}
2.函數的調用
函數名(實參列表)
調用的時候,保證每個參數都有值
只能通過位置參數傳參
js中不支持不定長參數
返回值:沒有return返回值是undefined
<script type="text/javascript">
function sum(num1, num2){
return num1 + num2
}
console.log(sum(1, 2))
mul = function(num1, num2){
return num1 * num2
}
console.log(mul(2, 3))
</script>
7 數據類型
1.字符串:由單引號或者雙引號括起來的
a.轉義字符:和python一樣
b.字符串長度:字符串.length
c.獲取單個字符:字符串[下標]
注意:下標取值范圍0~長度-1窑滞;超出范圍取到的是undefined
js中沒有切片語法
d.相關運算
+ - 將兩個字符串拼接在一起產生一個新的字符串
(注意如果是一個字符串加上其他的數據類型琼牧,會先將其他數據類型轉換成字符串再相加)
比較運算(>,<,==,!=,===,!==)
>,<:和python一樣,比較字符編碼值的大小
e.相關方法
match(正則表達式):根據正則表達式匹配結果
正則表達式寫在/ /之間
<script type="text/javascript">
str1 = 'dg26ff656jkjasn545mnxcnvija'
re = str1.match(/\d+/)
console.log(re)
</script>
8 數組
數組就是python中的列表
1.數組是有序的,可變的哀卫,里面的元素可以是任意類型的數據
2.增刪改查
a.查(獲取數組中的元素)
數組[下標]
數組.slice(開始下標巨坊, 個數):切片
b.增(添加元素)
數組.push():將元素添加到數組的最后
c.刪(刪除元素)
數組.pop():將數組的最后元素刪除
數組.splice(開始下標, 指定個數):刪除
d.改(修改元素)
數組[下標] = 新值:修改指定下標的元素
數組.splice(開始下標此改,個數趾撵,多個其他參數):用其他參數替換開始下標開始后的指定個數的元素
<script type="text/javascript">
arr1 = [1, 2, 'abc']
console.log(arr1[2])
arr1.push('hello')
console.log(arr1)
arr2 = [1, 2, 'abc']
arr2.pop()
console.log(arr2)
</script>
9 對象
js中沒有python的類,只有對象和構造方法
1.對象的字面量
對象名 = {屬性名:屬性值共啃,屬性名2:屬性值2...}
2.使用對象屬性
對象[屬性名]
對象.屬性
3.構造方法
function 類名(參數列表){
this.屬性1 = 屬性值1
this.屬性1 = 屬性值1
...
return this
}
這里的this類似python中的self占调,表示當前對象
<script type="text/javascript">
p1 = {
name:'xiaoming',
age:20,
tel:'1548555511',
eat:function(){
console.log('吃飯')
}
}
console.log(p1.name)
function Person(name, age){
this.name = name
this.age = age
this.sex = '男'
this.tel = ''
this.eat = function(food){
console.log(this.name + ' eat ' + food)
}
return this
}
p2 = Person('xiaoming', 20)
p2.tel = '1545225634'
p2.eat('fruit')
function Dog(color, age, kind){
this.color = color
this.age = age
this.kind = kind
this.eat = function(){
console.log('eat')
}
this.bark = function(){
console.log('wangwang')
}
return this
}
dog1 = Dog('red', 2)
dog1.eat()
console.log(dog1.color)
dog2 = Dog('yellow', 3)
dog2.bark()
dog2.kind = 'Huskie'
console.log(dog2.kind)
</script>