Day5 js基礎

01.js基礎語法

02.變量的聲明

03.運算符

04.分之結構

05.循環(huán)結構

06.函數

07.數據類型


01.js基礎語法

1. js中的注釋

  • //這是單行注釋
  • /*
    這個是多行注釋
    */

2.語句

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

3.js沒有縮進問題,用{}表示一個塊

4.基本數據類型

Number(數字)慌随、String(字符串)响逢、Boolean(布爾)咆课、Array(數組)-- 列表、Object(對象)--字典颗味、Function(函數)超陆、null、undefined

  • 在控制臺中打印括號中的內容浦马,功能和python中的print一樣
console.log('hello world');
console.log('你好时呀,python');


5.字面量

  • 數字字面量
89;
100;
10.34;
3e8;

*字符串字面量

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

6.標識符
使用標識符來命名

a.由字母晶默、數字退唠、_和$組成,數字不能開頭
var s8uu_$;

b.不能關鍵字
var for

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

02.變量的聲明

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

var score = 100
console.log(score)


//同時聲明多個變量
var name, age, sex;
var name1='abc', age1 = 18, sex;  

//一個變量可以存儲任意類型的值圆丹;聲明變量的時候,變量沒有賦值躯喇,默認是undefined
var a = 'abc'
a = 100

a = score

03.運算符

1.數學運算符:+, -, *, /, %, ++, --

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

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

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

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

var c1 = a1++    // ++/--寫到后面的時候廉丽,先賦值倦微,再自加/自減
var c2 = ++b1    // ++/--寫到前面的時候,先自加/自減正压,再賦值
console.log(c1, c2)


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

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.邏輯運算符:&&(與), ||(或), !(非)

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


4.賦值運算符: =, +=, -= , *=, /=, %=

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

**5.三目運算符 **

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

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

6.運算符的優(yōu)先級和python基本一樣焦履⊥厝埃可以通過括號來改變運算順序

04.分之結構

js中的分之結構有兩種: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(相當于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í)行過程:使用變量的值依次和后邊每個case后面的值進行判斷屑宠,看是否相等(是否完全相等)厢洞。
如果相等就執(zhí)行那個case后面對應的語句。如果前面每個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分制分數: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直接結束
    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)結構

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

1.for循環(huán)

  • a.for- in (和python中的for循環(huán)一樣)
  • for(變量 in 數組/對象){函數體}
var arr1 =  [1, 2, 'abc']
//x取的是下標
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(表達式1;表達式2;表達式3){循環(huán)體}
    執(zhí)行過程:
  • 先執(zhí)行表達式1获枝,然后再判斷表達式2的結果是否是true,如果是true就執(zhí)行循環(huán)體蠢正;執(zhí)行完循環(huán)體,再執(zhí)行表達式3省店;
  • 執(zhí)行完表達式3嚣崭,再判斷表達式2的結果是否是true,如果是true又執(zhí)行循環(huán)體懦傍;執(zhí)行完循環(huán)體雹舀,再執(zhí)行表達式3;依次類推粗俱,
  • 直到表達式2的結果是false,循環(huán)就結束
//計算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)結束

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

3.break和continue(和python一樣)

06.函數

1.函數的聲明

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

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


2.函數的調用

  • 函數名(實參列表)
  • 調用過程和python一樣

3.作用域

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

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

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

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

//個數不定參數,js不支持

07.數據類型

  • 數字但狭、字符串披诗、布爾、列表立磁、對象

1.數字:包含整數和小數(支持科學計數法)

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


2.字符串

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

下標:1.范圍是0 ~ 長度-1 2.如果越界呈队,不報錯,但是結果是undefined
js中的字符串不能切片

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

js中字符串只支持+唱歧,不支持*
字符串1 + 字符串2 -- 拼接兩個字符串
js中字符串可以和其他任何數據進行加操作宪摧,其效果都是字符串連接(會將其他數據轉換成字符串)

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


3.對象粒竖,構造方法(類)

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

//聲明構造方法
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))
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市几于,隨后出現(xiàn)的幾起案子蕊苗,更是在濱河造成了極大的恐慌,老刑警劉巖沿彭,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朽砰,死亡現(xiàn)場離奇詭異,居然都是意外死亡喉刘,警方通過查閱死者的電腦和手機瞧柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睦裳,“玉大人造锅,你說我怎么就攤上這事×兀” “怎么了哥蔚?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛛蒙。 經常有香客問我糙箍,道長,這世上最難降的妖魔是什么宇驾? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮猴伶,結果婚禮上课舍,老公的妹妹穿的比我還像新娘。我一直安慰自己他挎,他們只是感情好筝尾,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著办桨,像睡著了一般筹淫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呢撞,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天损姜,我揣著相機與錄音,去河邊找鬼殊霞。 笑死摧阅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的绷蹲。 我是一名探鬼主播棒卷,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼顾孽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了比规?” 一聲冷哼從身側響起若厚,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜒什,沒想到半個月后测秸,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡吃谣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年乞封,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岗憋。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡肃晚,死狀恐怖,靈堂內的尸體忽然破棺而出仔戈,到底是詐尸還是另有隱情关串,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布监徘,位于F島的核電站晋修,受9級特大地震影響,放射性物質發(fā)生泄漏凰盔。R本人自食惡果不足惜墓卦,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望户敬。 院中可真熱鬧落剪,春花似錦、人聲如沸尿庐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抄瑟。三九已至凡泣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間皮假,已是汗流浹背鞋拟。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惹资,地道東北人严卖。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像布轿,于是被迫代替她去往敵國和親哮笆。 傳聞我的和親對象是個殘疾皇子来颤,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,116評論 0 13
  • 一稠肘、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,782評論 2 16
  • 如果足夠坦誠 我愿為一顆心拜遍世間神魔 有一天與你相遇福铅,我希望是在冬天 你將把玩無數個盛放的 繁忙的時節(jié) 我不在意...
    千秋_閱讀 190評論 0 3
  • HB 剛才,對项阴,就是剛才我用自己的手機給自己錄一分鐘的演講視頻滑黔,知道什么感覺嗎,算了环揽,難受略荡,不想說。反正我自己立下...
    暖和的豬閱讀 1,207評論 0 2
  • 今天早上起來后粥谬,你準備開始已經拖延多年的計劃,你給自己打氣辫塌,激勵自己漏策,準備走出第一步。 你開始準備享受勝利的果實臼氨。...
    雷鳴_a869閱讀 165評論 0 0