day5 js基礎(chǔ)語(yǔ)法

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

1.1.控制臺(tái)輸出 和print功能一樣

console.log(100)
console.log('lorry',200,20)

1.2 注釋

//單行注釋
/*
*多行注釋
*多行注釋
*/

1.3標(biāo)識(shí)符:

由字母數(shù)字下畫面和符號(hào)組成,數(shù)字不能開頭 a = 10 a20 =100 a_10 = 20012s = 30
//12a = 30 數(shù)字不能開頭
// as^ = 200

1.4:行和縮進(jìn)

從語(yǔ)法角度,js代碼怎么換行和縮進(jìn)都無所謂。js中通過{}確定一個(gè)代碼塊

1.5:常見的數(shù)據(jù)類型:數(shù)字,布爾,字符串,數(shù)組,對(duì)象,函數(shù)

  • a:數(shù)字:(Number) - 包含所有的數(shù)字,包括整數(shù)和小數(shù);例如100,12.5,-200,3e2,不支持虛數(shù)
  • b.布爾(Boolean) - 只有兩個(gè)值true和false,這兩個(gè)是關(guān)鍵字,分別代表真和假
  • c.字符串,string - 使用單引號(hào)或者雙引號(hào)引起來的字符集
  • d.列表(Array) - 相當(dāng)于Python中的列表,[12,'abc',true]
  • e;對(duì)象(Object) - 相當(dāng)于Python中的字典和對(duì)象{屬性:值}
  • f:函數(shù)(Function) - 相當(dāng)于Python中的函數(shù)
    console.log(3e2,"lorry",'lorrybz',[12,'abc',true])
    obj1 = {name:'小明',age:10}
    console.log(obj1['name'],obj1.name)

1.5:聲明函數(shù)

    function eat(food){
        console.log("吃"+food)
    }
    eat('面條')

2.變量的聲明

  • 語(yǔ)法1.變量名 = 值
    變量名 - 標(biāo)識(shí)符,不能是關(guān)鍵字;駝峰式命名(第一個(gè)單詞首字母小寫,后邊每個(gè)單詞首字母大寫),見名知意
    變量要先聲明才能使用

  • 語(yǔ)法2:var 變量名 = 值 或者直接不賦值.
    var - 聲明變量的關(guān)鍵字
    區(qū)別:添加var的時(shí)候,變量可以不用賦值,默認(rèn)是undefined,不加var就必須賦值
    補(bǔ)充:js中兩個(gè)特殊的值 - undefined(沒有,空)和null(清空)

name = '小明'
    console.log(name)
    arr1 = [1,34,45]
    console.log(arr1[10])
    var age = 10
    var sex   //通過var聲明變量不賦值的時(shí)候,默認(rèn)是undefined
    console.log(age,sex)
    //重新賦值
    name = '小明'
    age = 25
    sex = '男'
    console.log(name,age,sex)

同時(shí)聲明多個(gè)變量賦不同的值以及相同的值

    //同時(shí)聲明多個(gè)變量,賦一樣的值
    a1 = a2 = a3 = 10
    console.log(a1,a2,a3)
    //同事聲明多個(gè)變量,賦不同的值
    var b1 = 1,b2 = 2,b3 = 3,b4
    b1 = 1,b2 = 2,b3 = 3
    console.log(b1,b2,b3,b4)

3.運(yùn)算符

1.數(shù)學(xué)運(yùn)算符:+ - * / ++ --

前面四個(gè)運(yùn)算符和Python一模一樣,
++ -- 都是單目運(yùn)算符,只能對(duì)一個(gè)值進(jìn)行操作
使用方式:變量++/--,++/--變量
a.++ - 自加1運(yùn)算;讓變量本身的值加1
b.自減1運(yùn)算:讓變量本身的值減1

   num = 10
    num++
    console.log(num) //11
    ++num
    console.log(num)  //12
    num--
    console.log(num)  //11
    --num
    console.log(num)  //10

注意:用一個(gè)變量使用單獨(dú)使用++、--的時(shí)候,++/--放前面放后面效果一樣
如果使用++/--的結(jié)果給另外一個(gè)變量賦值的,++/--放前面,先自加再賦值,放后面先賦值再運(yùn)算

    num2 = 10
    num = (++num2)   //相當(dāng)于:num2 += 1;num = num2
    console.log(num,num2)

    num2 = 10
    num = num2++    //相當(dāng)于:num = num2;num2 += 1
    console.log(num,num2)

2.比較運(yùn)算符

,< ==,!=,>=,<= === !==
結(jié)果是布爾值
比較大小和Python一樣
a.==判斷值是否相等
b.===判斷值和類型是否相等(完全相等),相當(dāng)于Python中==,!==相當(dāng)于Python中的不等

    console.log(5 == 5) // true
    console.log(5 == '5') //true
    console.log(5 != 5) // flase
    console.log(5 != '5') //flase
    
    console.log(5 === 5) // true
    console.log(5 === '5') //flase
    console.log(5 !== 5) // flase
    console.log(5 !== '5') //true

3邏輯運(yùn)算符:

&&(與) ||(或) ?。ǚ牵?br> 運(yùn)算規(guī)則和使用方式和Python的一模一樣

    console.log(true && true)
    console.log(true && false)
    console.log(true || false)
    console.log(false || false)
    console.log(!true)
    console.log(!false)

4.賦值運(yùn)算符

+=,-=,*=,/=,%=

5.三目運(yùn)算符

條件語(yǔ)句? 值1:值2 - 判斷條件語(yǔ)句的值是否為true,為true整個(gè)表達(dá)式的結(jié)果就是值1,否則就是值2

    age = 16
    is_man = age >= 18? '成年' : '未成年'
    console.log(is_man)

6.運(yùn)算符

數(shù)學(xué) 》 比較》邏輯》賦值:如果有括號(hào),先算括號(hào)里面的

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

1.if分之

1.if語(yǔ)句
     * a.if
     * if(條件語(yǔ)句){
     *      滿足條件會(huì)執(zhí)行的代碼
     * }
     * 
 b.if - else
     * if(條件語(yǔ)句){
     *      代碼段1
     * }
     * else{
     *  代碼段2
     * }
     * 
 c.if else if -else
     * if(條件語(yǔ)句){
     *  代碼段1
     * }
     * else if(條件語(yǔ)句2){
     *  代碼段2
     * }
     * else(代碼段n){
     *  代碼段n
     * }
     * 執(zhí)行過程和Python一模一樣
num = 10
    if(num % 2){
        console.log('奇數(shù)')
    }else{
        console.log('偶數(shù)')
    }
    age = 20
    if(age < 18){
        console.log("未成年")
    }else if(age < 60){
        console.log('成年')
    }else{
        console.log('老年')
    }

2.switvh語(yǔ)句

1.結(jié)構(gòu)
switch(表達(dá)式){
case 值1:
代碼段1
case 值2:
代碼段2
。。。。。
default:
代碼段
}
2.執(zhí)行過程
使用用表達(dá)式的值依次和后面每個(gè)case后面的值進(jìn)行比較,看是否相等,找到第一個(gè)和表達(dá)式相等的case,將case作為入口,依次執(zhí)行后面的代碼段直到,執(zhí)行完成,或者遇到break為止
如果每個(gè)case的值和表達(dá)式的值都不想等,就執(zhí)行default后面的代碼
注意:case后面必須是一個(gè)有結(jié)果的表達(dá)式

/練習(xí):用一個(gè)變量保存十分制的成績(jī),根據(jù)成績(jī)打印情況:

0-5:代表不及格
6,及格
7,8良好
9,10優(yōu)秀,

    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
        default:
            console.log('優(yōu)秀')
    }

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

1.for循環(huán)

a.for in
for (變量 in 序列){
循環(huán)體
}
執(zhí)行過程和python是一樣的,但是變量取到的不是元素,而是下標(biāo)key(屬性名
序列 - 字符串,數(shù)組,對(duì)象

    for(x in "abc"){
        console.log('=====')
        console.log(x)
    }
    arr1 = [1,'abc',true,12.5]
    for(index in arr1){
        console.log(index,arr1[index])
    }
    person1 = {name:"小明",age:'18',sex:'男'}
    //typeof拿到的是類型
    for(x in person1){
        console.log('啦啦啦啦',x,typeof(x))
        console.log(person1[x])
    }

補(bǔ)充:c語(yǔ)言的循環(huán)

  • 結(jié)構(gòu):
    for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
    循環(huán)體
    }
    執(zhí)行過程:先執(zhí)行表達(dá)式1,判斷表達(dá)式2的值是否為true,如果為true就執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體就執(zhí)行循環(huán)體3
  • 然后再判斷表達(dá)式2是否為True,如果為true就執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體再執(zhí)行表達(dá)式
    ....一次類推,知道表達(dá)式2的結(jié)果為false為止(循環(huán)結(jié)束)
    表達(dá)式1
    while 表達(dá)式2
    循環(huán)體
    表達(dá)式3
num = 1
    sum1 = 0
    while(num <= 100){
        sum1 += num
        num += 1
    }
    console.log(sum1)
        
    for(num = 1,sum1 = 0;num <= 100;num++){
        sum1 += num
    }
    console.log(sum1)

2.while循環(huán)

a.Python中的while循環(huán)
while(條件語(yǔ)句){
循環(huán)體
}
執(zhí)行過程和Python一模一樣
do while循環(huán)
do{
循環(huán)體
}while條件語(yǔ)句
區(qū)別:do while的循環(huán)體至少執(zhí)行一次

    num = 0
    sum2 = 0
    do{
        sum2 += num
        num ++
    }while(num <= 100)
    console.log(sum2)

4.函數(shù)的聲明

結(jié)構(gòu)1.函數(shù)的聲明
function 函數(shù)名(參數(shù)列表){
函數(shù)體
}
** js中的函數(shù)除了聲明的關(guān)鍵字不一樣,其他的都一樣**

    //參數(shù)可以設(shè)置默認(rèn)值
    function sum(num1,num2 = 3){
        console.log("求兩個(gè)數(shù)的和")
        return num1+num2
    }
    //2.函數(shù)的調(diào)用(實(shí)參列表)
    console.log(sum(10,20))
    console.log(sum(10))
    console.log(sum(num1 = 10,num2 = 20))
    
    //js中所有的函數(shù)都有返回值,默認(rèn)值是undefined
    function func1(){
        console.log('func1')
    }
    re = func1()
    console.log(re,typeof(re))

結(jié)構(gòu)2:.匿名函數(shù)(函數(shù)的字面量)
函數(shù)名 = lambda 參數(shù)列表:返回值
函數(shù)名 = function(參數(shù)列表){函數(shù)體}

func2 = function(a,b){
        console.log(a,b)
        return a*b
    }
    console.log(func2(3,4)) 
    
    funcs_arr = [func1,function(a){console.log(a)}]
    funcs_arr[0]()
    funcs_arr[1]("abc")

6.變量的作用域:

js中的作用域

a.全局變量:只要申明在函數(shù)外邊就是全局變量,在函數(shù)中以變量名 = 值的形式聲明的變量
也是全局的。
b.局部變量:聲明在函數(shù)中,并且以var關(guān)鍵字聲明在函數(shù)中變量才是局部變量

    var1 = 1000 //這是一個(gè)全局變量
    var var2 = "abc"http://這是一個(gè)全局變量
    for(xxx in "hello"){
    }
    var3 = 1 
    
    func3 = function(){
        console.log('func3')
        a1 = 20  //這是一個(gè)全局變量
        b1 = 20  //這是一個(gè)全局變量
        var4 = 4  //這是一個(gè)全局變量
        var var3 = 1   //這是一個(gè)局部變量
        return var1 +var2
    }
    console.log(func3())
    console.log(a1+var4)    

7.字符串

1.字符串的字面量

a.使用雙引號(hào)或者單引號(hào)括起來的字符集
b.字符可以是轉(zhuǎn)義字符 \r,\t,\n,\,',"
c.\u四位的十六進(jìn)制值對(duì)應(yīng)的Unicode編碼,如:\u4e00

str1 = 'abc\n123'
    console.log(str1)
    str2 = "abc\"123\u4e00"
    console.log(str2)

2.獲取字符串

字符串[下標(biāo)] - 獲取單個(gè)字符*
下標(biāo) - 范圍是0-(長(zhǎng)度-1):下標(biāo)越界,取到的值是undefined
s中沒有切片的方法

str1 = 'hello'
    console.log(str1[1])

3.相關(guān)運(yùn)算

NaN ,js中的一個(gè)特殊的值,類似于undefined,null,用來表示一個(gè)不存在的數(shù)值。
字符串+數(shù)據(jù):支持字符串和其他任何數(shù)據(jù)相加,是將其他數(shù)據(jù)全部轉(zhuǎn)換成字符串,然后再拼接。
支持加法運(yùn)算

4.字符串長(zhǎng)度`

console.log('hello world'.length)
    
    
    str3 = 'abc' //str是字符串尅性
    str4 = new String(str3)
    console.log(str3 == str4,str3 === str4)
    console.log(str3[1],str4[1])
    
    //protype:給指定類型的對(duì)象添加屬性和方法
    String.prototype = "lorry"
    console.log("abc".lorry)

5.字符串的相關(guān)方法

    function lorry_print(aa){
        console.log(aa)
    }
    lorry_print("abc".charAt(2))
    lorry_print(String.fromCharCode(97))
    lorry_print('abcd12abc23hhhh123'.match(/\d+/g))
    result = 'abcd12abc23hhhh123'.match(/\d+/)
    for(index in result){
        lorry_print(index)
    }
    lorry_print('abcd12abc23hhhh123'.replace(/\d+/g,'*'))
    
    //js中的數(shù)組只是需要關(guān)注a.怎樣獲取數(shù)組減的元素,b.數(shù)組對(duì)應(yīng)的方法,c.元素可以是任何類型
    arr = [1,'abc',true]
    lorry_print(arr)
    
    nums = [1,34,67,2]
    nums2=nums.sort()
    lorry_print(nums)
    lorry_print(nums2)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • js基礎(chǔ) 1.js基礎(chǔ)語(yǔ)法 1.注釋// 單行注釋/*多行注釋多行注釋*/ 2.標(biāo)識(shí)符標(biāo)識(shí)符就是用來命名的(給變量...
    麻瓜_1fb4閱讀 344評(píng)論 0 1
  • 5.1 什么是js 1.什么是jsjs是JavaScript的縮寫,是web標(biāo)準(zhǔn)中的行為標(biāo)準(zhǔn),負(fù)責(zé)網(wǎng)頁(yè)中變化的部分...
    2333_11f6閱讀 388評(píng)論 0 0
  • 1.js基本語(yǔ)法 1.什么是jsjs是javascript的縮寫,是web標(biāo)準(zhǔn)中的行為標(biāo)準(zhǔn)。負(fù)責(zé)網(wǎng)頁(yè)中變化的部分 ...
    學(xué)python的鐵頭娃閱讀 187評(píng)論 0 0
  • 一、介紹 31.什么是js js是javascript的縮寫。是一門專門用來處理網(wǎng)頁(yè)中的行為的腳本語(yǔ)言,也是web...
    龍神海王閱讀 523評(píng)論 0 0
  • 一、基礎(chǔ)語(yǔ)法 二、變量 三、運(yùn)算符 四、分支結(jié)構(gòu) 五、循環(huán)結(jié)構(gòu) 六、函數(shù) 七、字符串 八、數(shù)組 九、對(duì)象
    ATM_shark閱讀 220評(píng)論 0 0

友情鏈接更多精彩內(nèi)容