JavaScript基礎語法

js是從上到下,從左到右執(zhí)行的


一:變量

1.命名規(guī)則:必須由字母车猬,下劃線门躯,數(shù)字和$符號組成署咽,不能以數(shù)字開頭。

2.不能是關鍵字和保留字生音。例如: for,while.

3.區(qū)分大小寫的

4.命名規(guī)范:名字必須有意義宁否,遵守駝峰命名法,首字母小寫缀遍,后面單詞的首字母要? 大寫慕匠,例如:? ? ? ? ?userName userPassword

例:var age = 18;


二:數(shù)據(jù)類型

簡單數(shù)據(jù)類型:Number String Boolean Undefined Null

Number類型:

十進制: 0-9 例:var num = 10;?

十六進制: 0-9? A-F A=10 B=11,C=12,D=13,E=14,F=15.例:var num = 0xA;

八進制:基礎數(shù)字:0-7 例:var num = 010;

浮點數(shù):var n =5e-324; //科學計數(shù)法 5乘10的-324次方。

浮點數(shù)最高精度是17位小數(shù)域醇,不要判斷兩個浮點數(shù)是否相等台谊。

浮點數(shù)最大值 :Number.MAX_VALUE ,值為:1.7976931348623157e+208

浮點數(shù)最小值Number.MIN_VALUE。值為5e-324

無窮大:Infinity 無窮衅┲俊:-Infinity



String類型:

var msg = '好好學習'? var ,msg = "好好學習"

單引號和雙引號不能混用锅铅。

\n 換行

\t 制表

\b 空格



Boolean類型:

true和false,區(qū)分大小寫

計算機內(nèi)部存儲:true為1,false為0减宣;



Undefined Null:

1.Undefined表示一個聲明了沒有賦值的變量盐须,變量只聲明的時候值默認是Undefined

2.Null表示一個空,變量的值如果為null,必須手動設置漆腌。如果一個變量的值是null,說明變量是有值的贼邓,是空阶冈。?

復雜數(shù)據(jù)類型:Object



三:獲取變量的類型

typeof

例:var age = 18;

var name = 'wyn';

console.log(typeof age);? //Number類型

console.log(typeof name); //string類型

var result = typeof name;

console.log(typeof result);//typeof返回的結(jié)果是string




四:字面量

在源代碼中一個固定值的表示法。

數(shù)值字面量:8,9,10

字符串字面量:‘好好學習’塑径,“好好學習”

布爾值字面量:true女坑,false



五:注釋

單行注釋:? //被注釋的單行內(nèi)容

多行注釋: /* 被注釋的多行內(nèi)容*/



六:數(shù)據(jù)類型轉(zhuǎn)換

谷歌瀏覽器內(nèi),字符串顏色是黑色的统舀,數(shù)值和布爾類型顏色是藍色的匆骗,Undefined和Null是灰色的。

轉(zhuǎn)換成字符串類型:

1: toString()方法

var num = 18;

var isRight = true;

?console.log(typeof num.toString());

console.log(typeof isRight.toString());? ?//? 用typeof獲取類型誉简,用toString轉(zhuǎn)換為字符串

2:string()方法

null和Undefined無法使用toString方法绰筛,var a = null; console.log(a.toString());報錯,不能讀取屬性

var num = 18;

var isRight =true;

console.log(String(num));//轉(zhuǎn)換為字符串

console.log(String(isRight));

3:字符串拼接轉(zhuǎn)換方法

var num = 18;

var isRight = true;

console.log(typeof (num + ' ')); //里面加小括號改變運算順序描融,優(yōu)先執(zhí)行小括號內(nèi)部內(nèi)容。

console.log(typeof (isRight + ' '));

其他類型轉(zhuǎn)換為數(shù)值類型:

1:Number()方法

Number()把任意值轉(zhuǎn)換為數(shù)值

var str = 'abc';

var isRight = true;

console.log(Number(str));? //返回結(jié)果是NaN,不是一個數(shù)字

console.log(Number(isRight));? //返回結(jié)果:1衡蚂,計算機true是1

console.log(Number('123')); //字符串123轉(zhuǎn)換為數(shù)字123窿克;

console.log(Number('123abc')); //Number()吧字符串轉(zhuǎn)換成數(shù)值類型的時候,如果字符串中有一個字符不是數(shù)字毛甲,返回NaN年叮。

2:parseInt()方法,parse是解析玻募,把變量解析為int,int是整數(shù)的意思只损。

parseInt()無法轉(zhuǎn)換小數(shù),到小數(shù)點結(jié)束

var str = '123';

var isRight = false;

console.log(parseInt(str));//字符串123轉(zhuǎn)換為數(shù)字123七咧;

console.log(parseInt(isRight));//paresInt無法把布爾類型轉(zhuǎn)換為數(shù)值類型跃惫。返回NaN

var s1 = 'abc';

console.log(parseInt(s1));//返回NaN,paresInt無法把字符串轉(zhuǎn)為數(shù)值。

var s1 = '123abc';

console.log(parseInt(s1)); 返回123艾栋,parseInt在轉(zhuǎn)換字符串時候爆存,如果遇到數(shù)字就會轉(zhuǎn)換數(shù)字,如果遇到非數(shù)字就會返回蝗砾。

var s2 = 'abc123';

console.log(paresInt(s2)); //返回NaN,如果字符串第一個值是非數(shù)字先较,返回NaN.

3:parseFloat()方法?

parseFloat()把數(shù)值轉(zhuǎn)化為浮點數(shù)。

var str = '123.67';

var isRight = true;

console.log(paresFloat(str));?

console.log(paresFloat(isRight)); //返回NaN,無法轉(zhuǎn)換布爾類型悼粮。

var str = '123.12.123abc';

console.log(parseFloat(str)); //解析到第一個點闲勺,第二個點無法解析。

4:取正或者取負扣猫; + -

var num = -5;

console.log(num);

var str = '123';

console.log(+str); //返回123菜循,-號返回-123

字符串如果是123abc返回NaN.可以轉(zhuǎn)換布爾類型。

轉(zhuǎn)換成布爾類型Boolean()

Number和null轉(zhuǎn)換后為false

轉(zhuǎn)換后為false的情況:null undefind ' '空字符串 0 NaN五種情況

其他轉(zhuǎn)換為true.



七:操作符

算數(shù)運算符:

+ - * / % 加 減 乘 除 取余數(shù)

var x = 5; var y = 10;

console.log(x + y);

console.log(x / y);

console.log(x * y);

console.log(x % y) //輸出5

console.log(x / 0) //無窮大

console.log(x % 0) //NaN

一元運算符:

只有一個操作數(shù)的運算符是一元運算符申尤。有兩個操作數(shù)的運算符叫作二元運算符(如:5+6)

前置++? 自身加1? :++5

var num = 5; console.log(++num) //5自身+1輸出6债朵。++num先讓自身+1子眶,然后再返回表達式的結(jié)果。

var num1 = 7;

console.log(num + ++num1); //前置++先自身加1再參與運算序芦,輸出6+8=14

前置--同前置++

后置++? :5++?

先返回表達式的結(jié)果num,然后再對num自身加1

var num = 5;

console.log(num++);//先返回num結(jié)果5臭杰,然后在對num自身加1,所以輸出5

console.log(num); //自身加1之后才會輸出6

var num1 = 7;

console.log(num + num1++); //num返回6+num17=13;

console.log(num1); //表達式輸出完之后num1+1谚中,執(zhí)行結(jié)果是8.

例:

var a = 1; var b = ++a + ++a; console.log() //++a先執(zhí)行自身+1渴杆,然后再返回表達式的結(jié)果,第一個a是2宪塔,第二個++a在第一個++a基礎上再+1磁奖,是3,所以輸出2+3=5某筐;

var a =1; var b = a++ + ++a; console.log(b);//a++先返回表達式結(jié)果1比搭,再執(zhí)行+1,a++返回結(jié)果之后是2南誊,++a在2基礎上再+1身诺,所以輸出1+3=4

var a = 1; var b = a++ + a++; console.log(b);//輸出1+2=3

var a = 1; var b = ++a + a++; console.log(b);第一個a先返回表達式結(jié)果是2,第二個a返回表達式結(jié)果2運算抄囚,輸出2+2=4霉赡;

邏輯運算符:(布爾運算符)

&&(邏輯與):兩個操作數(shù)同時為true,結(jié)果為true,否則都是false,與是并且的意思幔托。是二元運算符

例:var a =true; var b =true; console.log (a && b ); //a等于ture并且b等于true時結(jié)果才是true.

|| (邏輯或):兩個操作符有一個為true,結(jié)果為true,否則為false穴亏,或是或者的意思。 是二元運算符

例:var a =true; var b =true; console.log (a || b ); //a或者b有一個為true,結(jié)果就為true,兩邊都為false時結(jié)果才為false.

! (邏輯非) :取反 是一元運算符

var a = true; console.log ( !a )//對a進行取反重挑,輸出結(jié)果是true.

關系運算符:(比較運算符)

< > >= <= == != === !==?

< > >= <=是比較大小的

var a = 10; var b = 5;?

console.log(a > b)//返回true console.log(a < b)//返回false

= != === !== 是比較相等的

console.log ( a == b );//輸出false

console.log( a !=b);a不等于b,輸出true

-------------------------------------------------------------

var a = 10; var b = '10';

console.log (a == b);//輸出true,先把字符串10轉(zhuǎn)換為數(shù)值再判斷嗓化,兩個等號是判斷值是否相等。

console.log(a === b);//輸出false,三個等號先判斷類型是否一致谬哀,類型不一一致為fase,只有值和類型都一致才返回true.

!=不等于蟆湖,只要判斷值不相等就返回true,

!==,判斷值和類型都不相等才會返回true

賦值運算符

= += -= *= /= %=

var num = 5; // 把5這個常亮賦值給變量num

vae num1 = num * 5; //把運算的結(jié)果賦值給num1

num1 +=5;num1 -=5;//簡化

運算符優(yōu)先級

優(yōu)先級從高到低

1. ( ) 優(yōu)先級最高

2.一元運算符 ++ -- !

3.算數(shù)運算符 先* / %玻粪,后+ -

4.關系運算符 > >= < <=

5.相等運算符 == 隅津!= === !===

6邏輯運算符 先&& 后||

例1:4 >= 6 || '人' != '阿凡達' && !(12 * 2 == 144) && true? ? //返回true

例2:var num = 10;

5 == num / 2 && (2 + 2 * num).toString() === '22'??//返回true

八:流程控制

順序結(jié)構(gòu)

代碼從上到下依次執(zhí)行就是順序結(jié)構(gòu)

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

根據(jù)不同情況劲室,執(zhí)行對應代碼

if (/*表達式條件*/){

//執(zhí)行語句

}else{

//執(zhí)行語句

}


三元運算符:表達式1 ? 表達式2 : 表達式3

switch語句里面相等性判斷是===伦仍,判斷值和類型是否相等。如果不加break會有穿透效果很洋。


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

重復做一件事情

三種:while, do-whild, for

while語句:當循環(huán)條件為true時充蓝,執(zhí)行循環(huán)體,為false時,結(jié)束循環(huán)谓苟。

while (循環(huán)條件) {

// 循環(huán)體

}


for(初始表達式1官脓;條件表達式2;自增表達式3){

//循環(huán)體

}

九:數(shù)組

數(shù)組可以存儲很多項涝焙,有順序卑笨,很多項形成一個集合Array是一個數(shù)組 的字面量。

var names = ['zs', 'ls', 'ww','zl'仑撞,‘ ’赤兴,‘123’];? //' '里面不算長度

console.log ( names [0] ); //獲取第一項

console.log ( names [1] ); //獲取第二項值

console.log ( names [111] ); //不存在的索引返回undefined

用索/下標可以獲取數(shù)組中的數(shù)據(jù)。數(shù)組中的索引是從0開始

數(shù)組中存儲的數(shù)據(jù)類型可以不一致,可存儲任意類型

console.log (names.length)//獲取數(shù)組長度

console.log ( names [0] )//獲取數(shù)組中第一個元素

console.log ( names [names.length - 1] );? //數(shù)組名.length-1可以獲取數(shù)組中最后一個元素

?names[0] = 'xxx' 修改數(shù)組中的第一個元素隧哮,根據(jù)下標修改桶良。

names[6]='xxx修改不存在的數(shù)組,會給數(shù)組增加一項沮翔。

names[222]='xxx'; 給數(shù)組動態(tài)加入值陨帆,跳過的值是undefined

獲取數(shù)組中的每一項(遍歷數(shù)組)

for (var i = 0; i < nams.length; i++ ) {

console.log(names[i]);

}

反向遍歷數(shù)組

for (var i = names.length - 1; i >=0; i-- ) {

console.log (names[i] )}

給空數(shù)組加值

var scrores = [];

for (var i =0;i < 10;i++) {

scores[i] = i;

}

console.log(scores);

清空數(shù)組:scores.length = 0;






最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市采蚀,隨后出現(xiàn)的幾起案子疲牵,更是在濱河造成了極大的恐慌,老刑警劉巖搏存,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異矢洲,居然都是意外死亡璧眠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門读虏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來责静,“玉大人,你說我怎么就攤上這事盖桥≡煮Γ” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵揩徊,是天一觀的道長腰鬼。 經(jīng)常有香客問我,道長塑荒,這世上最難降的妖魔是什么熄赡? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮齿税,結(jié)果婚禮上彼硫,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好拧篮,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布词渤。 她就那樣靜靜地躺著,像睡著了一般串绩。 火紅的嫁衣襯著肌膚如雪缺虐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天赏参,我揣著相機與錄音志笼,去河邊找鬼。 笑死把篓,一個胖子當著我的面吹牛纫溃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播韧掩,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼紊浩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疗锐?” 一聲冷哼從身側(cè)響起坊谁,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滑臊,沒想到半個月后口芍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡雇卷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年鬓椭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片关划。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡小染,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贮折,到底是詐尸還是另有隱情裤翩,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布调榄,位于F島的核電站踊赠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏每庆。R本人自食惡果不足惜臼疫,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扣孟。 院中可真熱鬧烫堤,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至富蓄,卻和暖如春剩燥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背立倍。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工灭红, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人口注。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓变擒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寝志。 傳聞我的和親對象是個殘疾皇子娇斑,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353