Day5 js基礎(chǔ)

01.js基礎(chǔ)語法

02.變量的聲明

03.運(yùn)算符

04.分之結(jié)構(gòu)

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

06.函數(shù)

07.數(shù)據(jù)類型


01.js基礎(chǔ)語法

1. js中的注釋

  • //這是單行注釋
  • /*
    這個(gè)是多行注釋
    */

2.語句

  • 一條語句結(jié)束需要加分號(hào)(現(xiàn)在的js版本也可以不用寫)
  • 一行寫多條語句必須使用分號(hào)隔開

3.js沒有縮進(jìn)問題,用{}表示一個(gè)塊

4.基本數(shù)據(jù)類型

Number(數(shù)字)、String(字符串)、Boolean(布爾)、Array(數(shù)組)-- 列表、Object(對(duì)象)--字典、Function(函數(shù))、null、undefined

  • 在控制臺(tái)中打印括號(hào)中的內(nèi)容,功能和python中的print一樣
console.log('hello world');
console.log('你好,python');


5.字面量

  • 數(shù)字字面量
89;
100;
10.34;
3e8;

*字符串字面量

'abc';
"abc";
  • 布爾字面量
true;
false;
  • 數(shù)組字面量
[1,2,'ban',true];
[];
  • 對(duì)象的字面量(對(duì)象的key值又是屬性,不用加引號(hào))
var dict = {a:'abc', b:'hh'};

6.標(biāo)識(shí)符
使用標(biāo)識(shí)符來命名

a.由字母、數(shù)字、_和$組成,數(shù)字不能開頭
var s8uu_$;

b.不能關(guān)鍵字
var for

c.大小寫敏感,y和Y不一樣
d.規(guī)范:見名知意

02.變量的聲明

  • 在js中可以通過聲明變量來保存數(shù)據(jù)
    1.語法
  • var 變量名;
  • var 變量名 = 初值;
  • 說明: var是關(guān)鍵字;
  • 變量名:標(biāo)識(shí)符,不能隨意使用_或者$開頭;駝峰式命名規(guī)則(第一個(gè)單詞首字母小寫,后面每個(gè)單詞的首字母大寫)
//聲明變量
var userName;
//給變量賦值
userName = 'Wang';
console.log(userName)

var score = 100
console.log(score)


//同時(shí)聲明多個(gè)變量
var name, age, sex;
var name1='abc', age1 = 18, sex;  

//一個(gè)變量可以存儲(chǔ)任意類型的值;聲明變量的時(shí)候,變量沒有賦值,默認(rèn)是undefined
var a = 'abc'
a = 100

a = score

03.運(yùn)算符

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

  • a._,-,*, %和數(shù)學(xué)中的求和、求差以及求乘積,取余是一樣的
var a = 10+20;
var b = 20 - 10;
var c = 10*20;
var d = 7 % 2
  • b./ 和數(shù)學(xué)中的除一樣
var e = 5/2
console.log(e)
  • c.++,--(單目運(yùn)算符)

語法: 變量++/變量-- ; ++變量/--變量
++: 自加一
--:自減一

var a1 = 10
var b1 = 10
a1++
++b1
console.log(a1,b1) 

a1--
--b1
console.log(a1, b1)

var c1 = a1++    // ++/--寫到后面的時(shí)候,先賦值,再自加/自減
var c2 = ++b1    // ++/--寫到前面的時(shí)候,先自加/自減,再賦值
console.log(c1, c2)


2.比較運(yùn)算符: >,<,==(相等),!=, >=,<=, ===(完全相等), !==,>==, <==
結(jié)果都是布爾值

console.log(10 > 20)  // false
console.log(10<20) 

//==:判斷值是否相等
console.log(5==5)   //true
console.log(5=='5')  //true

//===:判斷值和類型是否相等
console.log(5===5)  //true
console.log(5==='5')  //false

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


3.邏輯運(yùn)算符:&&(與), ||(或), !(非)

console.log('與:',true && true, true && false)
console.log('或',true || false, false || false) 
console.log('非',!true, !false)  


4.賦值運(yùn)算符: =, +=, -= , *=, /=, %=

  • 賦值運(yùn)算符的左邊必須是變量
  • 和python的語法一樣
var a = 100;
a += 10  // a = a+10
a -= 10
a *= 10
a /= 10
a %= 10
console.log(a)

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

  • a.格式:
  • 條件語句 ?值1 : 值2;
  • b.結(jié)果:
  • 判斷條件語句的結(jié)果是否是true,如果是true,那么表達(dá)式的結(jié)果就是值1,否則是值2
var b = true ? 10:20;
console.log(b)

//求兩個(gè)數(shù)之間的最大值
var a1 = 80
var a2 = 100
console.log(a1 > a2 ? a1:a2)

6.運(yùn)算符的優(yōu)先級(jí)和python基本一樣??梢酝ㄟ^括號(hào)來改變運(yùn)算順序

04.分之結(jié)構(gòu)

js中的分之結(jié)構(gòu)有兩種:if語句,switch語句
1.if語句

  • a.if(條件語句){滿足條件要執(zhí)行的代碼塊}
var age = 18
if(age>=18){
   console.log('成年')
}
  • b.if(條件){語句塊1}else{語句塊2}
if(age>=18){
    console.log('成年')
}else{
    console.log('未成年')
}
  • c.if - else if - else(相當(dāng)于python中的if-elif-else)
if(age<18){
    Console.log('未成年')
}else if(age<40){
    console.log('青年')
}else{
    console.log('老年')
}

2.switch語句

 switch(變量){
    case 值1:
        語句1;
        break;
    case 值2:
        語句2;
        break;
    ...
    default:
        語句3;
        break;  
 }

執(zhí)行過程:使用變量的值依次和后邊每個(gè)case后面的值進(jìn)行判斷,看是否相等(是否完全相等)。
如果相等就執(zhí)行那個(gè)case后面對(duì)應(yīng)的語句。如果前面每個(gè)case后面的值都和變量的值不相等,就執(zhí)行default后邊的語句

var score = 10;
switch(score){
    case 1:
        console.log('F');
        break;
    case 10:
        console.log('A+')
        break;
    case 9:
        console.log('A');
        break;
    default:
        console.log('其他');
        break;      
}
console.log('======')

10分制分?jǐn)?shù):0-5:不及格,6-7:及格 8-9:良好 10:優(yōu)秀

score = 9
switch(score){
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        console.log('不及格');
        break;
    case 6:
    case 7:
        console.log('及格');
        break;
    case 8:
    case 9:
        console.log('良好');
        break;   // switch中的break,可以讓switch直接結(jié)束
    case 10:
        console.log('優(yōu)秀');
        break;
}

0-6表示星期1到星期日

var week = 0;
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('周日');
        break;
    default:
        console.log('其他情況')
    
}

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

js中的循環(huán)分為for循環(huán)和while循環(huán)

1.for循環(huán)

  • a.for- in (和python中的for循環(huán)一樣)
  • for(變量 in 數(shù)組/對(duì)象){函數(shù)體}
var arr1 =  [1, 2, 'abc']
//x取的是下標(biāo)
for(var x in arr1){
    console.log(arr1[x])
}
var obj1 = {name:'張三', age:30}
//key拿到的是屬性名
for(var key in obj1){
    console.log(key, obj1[key])
}
var str1 = 'abcdef'
for(var x in str1){
    console.log(x, str1[x])
}
  • b.for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體}
    執(zhí)行過程:
  • 先執(zhí)行表達(dá)式1,然后再判斷表達(dá)式2的結(jié)果是否是true,如果是true就執(zhí)行循環(huán)體;執(zhí)行完循環(huán)體,再執(zhí)行表達(dá)式3;
  • 執(zhí)行完表達(dá)式3,再判斷表達(dá)式2的結(jié)果是否是true,如果是true又執(zhí)行循環(huán)體;執(zhí)行完循環(huán)體,再執(zhí)行表達(dá)式3;依次類推,
  • 直到表達(dá)式2的結(jié)果是false,循環(huán)就結(jié)束
//計(jì)算1+2+3+...+100
var sum = 0
for (var i = 1; i < 101 ; i++) {
//  console.log(i)
    sum += i
}
console.log(sum)

var sum1 = 0
var i = 0
for (; i < 101; ) {
    sum1 += i
//  i++;
    i += 1
}
console.log(sum1)

2.while循環(huán)

  • a.while(條件語句){循環(huán)體} -- 和python一樣
var sum2 = 0
var i = 1
while(i <= 100){
    sum2 += i;
    i++;
}
console.log(sum2) 
  • b.do-while循環(huán): do{循環(huán)體}while(條件語句);

執(zhí)行過程,先執(zhí)行循環(huán)體,然后判斷條件是否成立。如果成立再執(zhí)行循環(huán)體。。。
依次類推,直到條件不成立,循環(huán)結(jié)束

var sum2 = 0
var i = 1
do{
    sum2 += i;
    i ++;
    
}while(i <= 100);
console.log(sum2) 

3.break和continue(和python一樣)

06.函數(shù)

1.函數(shù)的聲明

  • function 函數(shù)名(參數(shù)列表){函數(shù)體}
  • a.function - 關(guān)鍵字
  • b.函數(shù)名 - 駝峰式;見名知義
  • c.參數(shù):參數(shù)可以有默認(rèn)值,有默認(rèn)值的參數(shù)要寫在后面。調(diào)用函數(shù)傳參的時(shí)候,是按實(shí)參的位置來傳參。保證每個(gè)參數(shù)都有值
  • d.函數(shù)體: 實(shí)現(xiàn)函數(shù)的功能。只有在調(diào)用的時(shí)候才執(zhí)行
unction sum1(num2, num1=1){
    console.log('求兩個(gè)數(shù)的和')
    return num1 + num2
}

console.log(sum1(10,20))
console.log(sum1(10))
//函數(shù)沒有return的時(shí)候,函數(shù)的返回值是undefined
function func1(){
    console.log('我是函數(shù)1')
}
console.log(func1()) 


2.函數(shù)的調(diào)用

  • 函數(shù)名(實(shí)參列表)
  • 調(diào)用過程和python一樣

3.作用域

  • 全局變量:聲明在函數(shù)外面的變量(從變量聲明到文件結(jié)束)
  • 局部變量:聲明在函數(shù)里面的變量 (從變量聲明到函數(shù)結(jié)束;函數(shù)的參數(shù)也是局部變量)
//aaa就是全局變量
var aaa = 10

function func2(){
    //bbb就是局部變量
    var bbb = 100
    console.log(bbb, aaa)
    //函數(shù)中可以修改全局變量的值
    aaa = 200
    
    //函數(shù)中可以聲明函數(shù)
    function func22(){
        bbb = 1.1
        console.log(bbb)
    }
}

func2()
//console.log(bbb)
console.log(aaa)

//可以將函數(shù)作為變量
var a = func2
a()

//個(gè)數(shù)不定參數(shù),js不支持

07.數(shù)據(jù)類型

  • 數(shù)字、字符串、布爾、列表、對(duì)象

1.數(shù)字:包含整數(shù)和小數(shù)(支持科學(xué)計(jì)數(shù)法)

var num1 = 10
var num2 = new Number()
console.log(num2+10)  


2.字符串

  • a.' '和" "括起來的字符集
  • b.轉(zhuǎn)義字符(和python一樣)
  • c.字符編碼是unicode編碼
var str1 = 'abc'
var str2 = "abc"
var str3 = '\n'
var str4 = '\\'
  • e.獲取字符串長度: 字符串.length
console.log(str1.length)
  • f.獲取單個(gè)字符:字符串[下標(biāo)]

下標(biāo):1.范圍是0 ~ 長度-1 2.如果越界,不報(bào)錯(cuò),但是結(jié)果是undefined
js中的字符串不能切片

console.log(str1[0])
  • g.運(yùn)算符

js中字符串只支持+,不支持*
字符串1 + 字符串2 -- 拼接兩個(gè)字符串
js中字符串可以和其他任何數(shù)據(jù)進(jìn)行加操作,其效果都是字符串連接(會(huì)將其他數(shù)據(jù)轉(zhuǎn)換成字符串)

console.log('123'+'abc', 'abc'+100) 
  • h.字符串相關(guān)方法(查)
var strstr = 'abc123'
var re = strstr.replace(/\d+/i,'ooo')
console.log(re)


3.對(duì)象,構(gòu)造方法(類)

var obj1 = {name:'Zzk', age:18}
console.log(obj1.name, obj1['name']) 

//聲明構(gòu)造方法
function Person(name='', age=0, sex=''){
    this.name = name
    this.age = age
    this.sex = sex
}

var p1 = new Person()
p1.name = 'mmm'
p1.age = 20
console.log(p1, typeof(p1))
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,569評(píng)論 0 13
  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 6,032評(píng)論 2 16
  • 如果足夠坦誠 我愿為一顆心拜遍世間神魔 有一天與你相遇,我希望是在冬天 你將把玩無數(shù)個(gè)盛放的 繁忙的時(shí)節(jié) 我不在意...
    千秋_閱讀 216評(píng)論 0 3
  • HB 剛才,對(duì),就是剛才我用自己的手機(jī)給自己錄一分鐘的演講視頻,知道什么感覺嗎,算了,難受,不想說。反正我自己立下...
    暖和的豬閱讀 1,325評(píng)論 0 1
  • 今天早上起來后,你準(zhǔn)備開始已經(jīng)拖延多年的計(jì)劃,你給自己打氣,激勵(lì)自己,準(zhǔn)備走出第一步。 你開始準(zhǔn)備享受勝利的果實(shí)。...
    雷鳴_a869閱讀 219評(píng)論 0 0

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