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))