JavaScript基礎 - js基礎語法

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>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市移剪,隨后出現的幾起案子究珊,更是在濱河造成了極大的恐慌,老刑警劉巖挂滓,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苦银,死亡現場離奇詭異,居然都是意外死亡赶站,警方通過查閱死者的電腦和手機幔虏,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贝椿,“玉大人想括,你說我怎么就攤上這事。” “怎么了肛鹏?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吏垮。 經常有香客問我铺根,道長宪躯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任位迂,我火速辦了婚禮访雪,結果婚禮上,老公的妹妹穿的比我還像新娘掂林。我一直安慰自己臣缀,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布泻帮。 她就那樣靜靜地躺著精置,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锣杂。 梳的紋絲不亂的頭發(fā)上脂倦,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音蹲堂,去河邊找鬼狼讨。 笑死,一個胖子當著我的面吹牛柒竞,可吹牛的內容都是我干的政供。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼朽基,長吁一口氣:“原來是場噩夢啊……” “哼布隔!你這毒婦竟也來了?” 一聲冷哼從身側響起稼虎,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤衅檀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后霎俩,有當地人在樹林里發(fā)現了一具尸體哀军,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年打却,在試婚紗的時候發(fā)現自己被綠了杉适。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡柳击,死狀恐怖猿推,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情捌肴,我是刑警寧澤蹬叭,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布藕咏,位于F島的核電站,受9級特大地震影響秽五,放射性物質發(fā)生泄漏孽查。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一筝蚕、第九天 我趴在偏房一處隱蔽的房頂上張望卦碾。 院中可真熱鬧,春花似錦起宽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至擒滑,卻和暖如春腐晾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丐一。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工藻糖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人库车。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓巨柒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柠衍。 傳聞我的和親對象是個殘疾皇子洋满,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • 一、js基礎 1.什么是js js是JavaScript的縮寫珍坊。是一門專門用來處理網頁中的行為的腳本語言牺勾,也是we...
    xdxh閱讀 342評論 0 1
  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,813評論 2 16
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)阵漏,也就是一...
    悟名先生閱讀 4,145評論 0 13
  • “我是誰”“我從哪來”“我要到哪去”是人生的終極三問驻民,我今晚一直在思考我的答案。我是一名大一學生履怯,每天讀著自己...
    喬楓岸閱讀 577評論 0 1
  • 今天晨讀分享的書叫《博弈心理學》回还,分享的三個妙招分別是:以退為進、化敵為友虑乖、反守為攻懦趋。 以退...
    錢生錢落地實操閱讀 471評論 0 1