js基礎與流程控制
------------恢復內容開始------------
------------恢復內容開始------------
var宣告變數
變數的賦值
同時宣告多個變數
同時宣告多個變數並賦值
變數在記憶體中的儲存
規則-必須遵守的,不遵守會報錯
1、由字母、數字、下劃線、$符號組成,不能以數字開頭
2、不能是關鍵字和保留字,例如:for、while。
3、區分大小寫
規範-建議遵守的,不遵守不會報錯
1、變數名必須有意義
2、遵守駝峰命名法。首字母小寫,後面單詞的首字母需要大寫。
字面量
在原始碼中一個固定值的表示法,也叫字面量。
數值字面量:8,9,10
字串字面量:'程式設計師',"大前端"
布林字面量:true,false
基本資料型別
1、Number型別
十進位制
十六進位制varnum=0xA
八進位制varnum1=07
浮點數
最小值:Number.MIN_VALUE,這個值為:5e-324
最大值:Number.MAX_VALUE,這個值為:1.7976931348623157e+308
無窮大:Infinity
無窮小:-Infinity
數值判斷
NaN:notanumber(可以通過Number()方法判斷)
NaN與任何值都不相等,包括他本身
isNaN():isnotanumber(如果x是特殊的非數字值NaN(或者能被轉換為這樣的值),返回的值就是true。如果x是其他值,則返回false)
2、String型別
字串長度
length屬性用來獲取字串的長度
字串拼接
兩邊只要有一個是字串,那麼+就是字串拼接功能
兩邊如果都是數字,那麼就是算術功能。
語言具有隱式轉換(隱式型別轉換就是指,資料的型別在不用人工干預的情況下進行轉換的行為,原因:js是一門弱型別(動態型別)的語言,他在宣告變數的時候不需要指定型別,對變數賦值也沒有型別的檢測,所以js是非常的靈活的,)
3、Boolean型別
Boolean字面量:true和false,區分大小寫
計算機內部儲存:true為1,false為0
4、Undefined和Null
undefined表示一個聲明瞭沒有賦值的變數,變數只宣告的時候值預設是undefined
null表示一個空,變數的值如果想為null,必須手動設定
複雜資料型別
Object
typeof關鍵字
toString()
轉換成字串型別
String()
String()函式存在的意義:有些值沒有toString(),這個時候可以使用String()。比如:undefined和null
拼接字串方式
num+"",當+兩邊一個操作符是字串型別,一個操作符是其它型別的時候,會先把其它型別轉換成字串再進行字串拼接,返回字串
轉換成數值型別
Number()可以把任意值轉換成數值,如果要轉換的字串中有一個不是數值的字元,返回NaN
Number()轉化規則
a.如果字串中只包含數字時,將其轉換為十進位制數值,忽略前導0
b.如果字串中包含有效浮點格式,如“1.1”,將其轉換為對應的浮點數字,忽略前導0
c.如果字串中包含有效的十六進位制格式,如“0xf”,將其轉換為相同大小的十進位制數值
d.如果字串為空,或者是空內容,將其轉換為0
e.如果字串中包含除上述格式之外的字元,則將其轉換為NaN
parseInt()
parseFloat()
parseFloat()把字串轉換成浮點數,parseFloat()和parseInt非常相似,不同之處在與
parseFloat會解析第一個.遇到第二個.或者非數字結束
如果解析的內容裡只有整數,解析成整數
轉換成布林型別
Boolean()
0''nullundefinedNaN會轉換成false,其它都會轉換成true。
(1)、算術運算子
+-*/%
(2)、一元運算子
一元運算子:只有一個運算元的運算子
5+6兩個運算元的運算子是二元運算子
++自身加1,--自身減1
前置++先將自身的值自增1,再將自增後的值賦值給變數
前置++:參與運算輸出
後置++:運算完畢輸出
(3)、邏輯運算子(布林運算子)
&&與兩個運算元同時為true,結果為true,否則都是false
||或兩個運算元有一個為true,結果為true,否則為false
!非取反
(4)、關係運算符(比較運算子)
<>>=<===!====!==
==與===的區別:==只進行值得比較,===型別和值同時相等,則相等
varresult='55'==55;//true
varresult='55'===55;//false值相等,型別不相等
varresult=55===55;//true
注意:null代表的是空指標物件,undefined代表的是未定義,所以null與undefined與任何值都不相等(==),但是我們在ECMA-262規定:null與undefined相等,即null==undefined返回結果為true,實際上,undefined值是派生自null值的。
字串大小的比較:
如果兩個字串中都是全數字,只需比較兩個首字串數字的大小即可。即:“50”>”8”返回結果為false
如果等號兩側有一個是數字型別,則將字串轉化為數字再進行比較。即:”50”>8返回結果為true
(5)、賦值運算子
=+=-=*=/=%=
num+=5;//相當於num=num+5;
(6)、運算子的優先順序
優先順序從高到底如下:
括號>點運算子>一元運算子>算數運算子>關係運算符>邏輯運算子>賦值運算子
注意:同級運算子先後順序如下:
1.流程控制介紹
程式的三種基本結構
順序結構:從上到下執行的程式碼就是順序結構(程式預設就是由上到下順序執行的)
分支結構:根據不同的情況,執行對應程式碼
迴圈結構:重複做一件事情
2.分支結構
- 、if語句
if語句-只有當指定條件為true時,使用該語句來執行程式碼
if...else語句-當條件為true時執行程式碼,當條件為false時執行其他程式碼
if...elseif....else語句-使用該語句來選擇多個程式碼塊之一來執行
2、三元運算子
表示式1?表示式2:表示式3
是對if……else語句的一種簡化寫法
- 、switch語句
switch語句-使用該語句來選擇多個程式碼塊之一來執行
語法格式:
switch(expression){
case常量1:
語句;
break;
case常量2:
語句;
break;
case常量3:
語句;
break;
…
case常量n:
語句;
break;
default:
語句;
break;
}
break可以省略,如果省略,程式碼會繼續執行下一個case。
default關鍵詞來規定匹配不存在時做的事情。
switch語句在比較值時使用的是全等操作符,因此不會發生型別轉換(例如,字串'10'不等於數值10)
if語句和switch語句的區別:
if語句:
表示式的結果為boolean型別。常用於區間判斷
switch語句:
switchcase使用嚴格比較(===),值必須與要匹配的型別相同,只有運算元屬於同一型別時,嚴格比較才能為true。在以下這個例子中,x將不匹配。
3.迴圈結構
在javascript中,迴圈語句有三種,while、do..while、for迴圈。
(1)、while語句
while迴圈會在指定條件為真時迴圈執行程式碼塊。
//當迴圈條件為true時,執行迴圈體,
//當迴圈條件為false時,結束迴圈。
while(迴圈條件){
//迴圈體
}
(2)、do...while語句
do..while迴圈和while迴圈非常像,二者經常可以相互替代,但是do..while的特點是不管條件成不成立,都會執行一次。
for語句
while和do...while一般用來解決無法確認次數的迴圈。for迴圈一般在迴圈次數確定的時候比較方便
(5)、continue和break
break:立即跳出整個迴圈,即迴圈結束,開始執行迴圈後面的內容(直接跳到大括號)
continue:立即跳出當前迴圈,繼續下一次迴圈(跳到i++的地方)
------------恢復內容結束------------
------------恢復內容結束------------