1. 程式人生 > 其它 >js基礎與流程控制

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.分支結構

  1. 、if語句

if語句-只有當指定條件為true時,使用該語句來執行程式碼

if...else語句-當條件為true時執行程式碼,當條件為false時執行其他程式碼

if...elseif....else語句-使用該語句來選擇多個程式碼塊之一來執行

2、三元運算子

表示式1?表示式2:表示式3

是對if……else語句的一種簡化寫法

  1. 、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++的地方)

------------恢復內容結束------------

------------恢復內容結束------------