JS中的變量、函數(shù)、數(shù)據(jù)類型及轉(zhuǎn)換

JavaScript是弱變量類型的語言

變量只需要用var來聲明。Java,C#中變量的聲明,要根據(jù)變量是什么類型的來聲明:

int a;
float a;
double a;
String a;
boolean a;
var a ;

javascript:變量的使用,數(shù)據(jù)類型,if判斷,循環(huán)語句。

變量。

作用:用來存儲(chǔ)一些可以變化的數(shù)據(jù)。
代碼:

1.0變量的聲明:

var 變量的名稱;
var name;

注意命名規(guī)則:

1.0取值范圍:0-9,a-z,A-Z,_,$
2.0區(qū)分大小寫
3.0不能用數(shù)字開頭
4.0不能與關(guān)鍵字和保留字(備胎)沖突。

2.0變量的賦值:

變量的名稱 = 要賦值的數(shù)據(jù);
name = “abc”;
講作:將字符串a(chǎn)bc賦值給name;在變量a中存儲(chǔ)一個(gè)數(shù)據(jù)這個(gè)數(shù)據(jù)的類型是字符串,內(nèi)容是abc.

3.0變量賦值之后可以使用(使用的方式與直接量一樣)。

注意:
變量的取名一定要規(guī)范:變量名稱的取值范圍是:0-9,a-z,A-Z,_,$,并且數(shù)字不能作為變量名稱的開始部分。
變量的名稱是區(qū)分大小寫的:
變量的名稱不能是關(guān)鍵字和保留字(備胎);

javascript代碼雖然是從上到下執(zhí)行的。但是如果js有語法錯(cuò)誤,那么瀏覽器不會(huì)執(zhí)行這里面的js代碼。因?yàn)闉g覽器會(huì)先去檢查js代碼是否有錯(cuò)誤,如果沒有才會(huì)從上到下執(zhí)行。

如果兩個(gè)變量相加:

兩個(gè)都是number類型,那么加號(hào)的作用是相加
兩個(gè)都是string類型,那么加號(hào)的作用是連接
一個(gè)是number另一個(gè)是string,那么加號(hào)的作用是連接。

js中的函數(shù)(方法):

定義函數(shù)(聲明函數(shù))
function 函數(shù)名(參數(shù)1,參數(shù)2){
    命令代碼
}
ps:參數(shù)可以有一個(gè)或多個(gè)以逗號(hào)分隔,也可以不傳參
調(diào)用函數(shù)
函數(shù)名()
ps:函數(shù)聲明不調(diào)用是不起作用的
return 在函數(shù)中返回計(jì)算結(jié)果

函數(shù)的好處

1.可重復(fù)利用

2 執(zhí)行效率快

3 使代碼變得清晰易讀

4.可封裝一部分代碼

將一段經(jīng)常使用的代碼用一個(gè)方法包起來,將來方便再次調(diào)用。

匿名函數(shù)

匿名函數(shù)就是沒有函數(shù)名,不需要調(diào)用

eg:btn.onclick = function(){}

定時(shí)器

開啟定時(shí)器

1. setTimeout() 只執(zhí)行一次

停止定時(shí)器

   clearTimeout()


2. setInterval() 每隔多長(zhǎng)時(shí)間執(zhí)行一次

   clearInterval()

ps:定時(shí)器在使用的時(shí)候必須定義一個(gè)變量將其存起來。

流程控制:

問題:寫一段代碼,判斷張身上有多少錢,如果錢超過300塊就請(qǐng)吃大餐,如果不夠下次記得帶夠?

if else
if(判斷條件/boolean值){
//滿足條件會(huì)執(zhí)行下面的代碼
代碼1;
}else {
//當(dāng)上面的條件不滿足,或者boolean的值為false的時(shí)候會(huì)執(zhí)行下面的代碼2
代碼2
}

注意:

1.0if后面接有判斷條件,else后面沒有接判斷條件
2.0if和else只能執(zhí)行一個(gè)。
if elseif else
判斷張身上有多少錢,如果錢超過300塊就請(qǐng)吃大餐,如果超過了200,吃中餐,如果不夠下次記得帶夠?

代碼:
if(判斷條件/boolean值){
//滿足條件會(huì)執(zhí)行下面的代碼
代碼1;
}else if(判斷條件) {
//當(dāng)上面的條件不滿足,或者boolean的值為false的時(shí)候會(huì)執(zhí)行下面的代碼2
代碼2
}
else if(判斷條件)
。。。。。
else {
最后代碼
}

注意:

1.0在if_elseif_else結(jié)構(gòu)中elseif可以有幾數(shù)個(gè)
2.0整個(gè)結(jié)構(gòu)只會(huì)執(zhí)行一個(gè)代碼段
3.0條件在判斷的是時(shí)候先寫小范圍的條件再寫大范圍的條件。
4.0 elseif后面要加判斷條件
5.0一個(gè)if可以構(gòu)成一個(gè)完整的結(jié)構(gòu)

switch_case

作用:用來判斷多個(gè)可能出現(xiàn)的值:
代碼:

switch(判斷的值){
case 具體值:
要執(zhí)行的代碼段1;
break;
case 具體值2:
要執(zhí)行的代碼段2;
break;
......
default:
要執(zhí)行的代碼段n
break;
}

注意:
1.0case結(jié)構(gòu)后面要跟一個(gè)具體的數(shù)值
2.0case結(jié)構(gòu)可以有無數(shù)個(gè)
3.0如果所有的case都不滿足,要執(zhí)行default中的內(nèi)容
4.0defalut可以不寫,并且defalut也不用寫條件
js代碼的調(diào)試:(html,css沒有辦法調(diào)試,只有js代碼可調(diào)試)
1.0打開開發(fā)人員工具,找到source選項(xiàng):
2.0調(diào)試js代碼:先在要調(diào)試的代碼的行號(hào)中加上一個(gè)斷點(diǎn):
3.0將程序命中斷點(diǎn):刷新頁(yè)面
4.0點(diǎn)擊下一步按鈕。

三元運(yùn)算符:

作用:用于判斷兩個(gè)選擇。
代碼:
==boolean表達(dá)式?代碼段1:代碼段2;==
執(zhí)行過程:
判斷boolean表達(dá)式是否成立,如果成立會(huì)執(zhí)行代碼段1,如果不成立會(huì)執(zhí)行代碼段2;

排他思想

有排他必循環(huán),先排除后確定

循環(huán):

問題:希望大家能夠在頁(yè)面上輸入100個(gè)alert(“??!”)?
有沒有一種方式能夠讓我們將這一百句話以最簡(jiǎn)單的方式書寫出來。

while循環(huán):

作用:反復(fù)執(zhí)行一段代碼:
代碼:

 while(判斷條件/boolean){
    代碼塊
}

while循環(huán)的執(zhí)行流程:

當(dāng)代碼執(zhí)行到while的時(shí)候,會(huì)先判斷判斷條件是否為true,如果為true,那么會(huì)執(zhí)行while大括號(hào)中的代碼塊,代碼塊執(zhí)行完畢以后,再次回到while中再進(jìn)行判斷,如果為true,再次執(zhí)行while大括號(hào)中的代碼塊,并且再次回while,如果為false就不執(zhí)行
注意:
1.0將來在寫代碼的時(shí)候一定要注意循環(huán)的判斷條件不能一直為true,會(huì)成為一個(gè)死循環(huán)。
2.0循環(huán)的條件和循環(huán)體一定要明確。
3.0將來在實(shí)際開發(fā)中我們一般不會(huì)使用while循環(huán),會(huì)使用for循環(huán)。

break:

作用:在循環(huán)內(nèi)部結(jié)束這個(gè)循環(huán)。
用法

continue:

作用:在循環(huán)的內(nèi)部結(jié)束本次循環(huán),開始下一次循環(huán):

do while:

與while是一樣的,唯一的區(qū)別就是while先判斷再做,do-while,先做再判斷;
代碼 :

do{
    //要循環(huán)執(zhí)行的代碼塊
}while (條件語句/boolean)


執(zhí)行過程:
代碼從上到下執(zhí)行的過程中如果遇到了do就會(huì)先執(zhí)行一次do后面的代碼,執(zhí)行之后再通過while來進(jìn)行判斷,如果判斷通過那么再執(zhí)行一次,如果判斷不通過卻結(jié)束循環(huán)。

for循環(huán):

作用:反復(fù)執(zhí)行同一段代碼:
代碼:

for(var i = 1; 判斷條件; i++){
    要循環(huán)的代碼塊:
}

執(zhí)行步驟:
當(dāng)程序運(yùn)行到for的時(shí)候,會(huì)先聲明一個(gè)變量i,并且賦值為1,判斷i是否滿足后面的判斷條件,如果滿足,執(zhí)行下面的要循環(huán)的代碼塊,代碼 塊執(zhí)行完成之后再執(zhí)行i++,再判斷判斷條件是否滿足,如果滿足再次按照上面的流程執(zhí)行,如果不滿足,直接結(jié)束for循環(huán)。

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

string,number(NaN),boolean,undefined
為什么需要數(shù)據(jù)類型的轉(zhuǎn)呢?

問題:要用戶輸入一個(gè)數(shù),我們將這個(gè)數(shù)據(jù)加一之后再輸出?
要將字符串轉(zhuǎn)成number類型以后才能進(jìn)行計(jì)算。
prompt()接收到用戶輸入的內(nèi)容是以什么類型來接收來的:
prompt接收到的內(nèi)容是string類型。

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

顯示轉(zhuǎn)換:

1:轉(zhuǎn)數(shù)字:
a)Number轉(zhuǎn)換:

代碼:
var a = “123”;
a = Number(a);
注意:

如果轉(zhuǎn)換的內(nèi)容本身就是一個(gè)數(shù)值類型的字符串,那么將來在轉(zhuǎn)換的時(shí)候會(huì)返回自己。
如果轉(zhuǎn)換的內(nèi)容本身不是一個(gè)數(shù)值類型的字符串,那么在轉(zhuǎn)換的時(shí)候結(jié)果是NaN.
如果要轉(zhuǎn)換的內(nèi)容是空的字符串,那以轉(zhuǎn)換的結(jié)果是0.

b)如果是其它的字符,那么將來在轉(zhuǎn)換的時(shí)候結(jié)果是NaN.

parseInt():
代碼:
var a = “123”; a = parseInt(a);
忽略字符串前面的空格,直至找到第一個(gè)非空字符,還會(huì)將數(shù)字后面的非數(shù)字的字符串去掉。
如果第一個(gè)字符不是數(shù)字符號(hào)或者負(fù)號(hào),返回NaN

c)會(huì)將小數(shù)取整。(向下取整)

parseFloat();//浮點(diǎn)數(shù)(小數(shù))
與parseInt一樣,唯一區(qū)別是parseFloat可以保留小數(shù)。

2.轉(zhuǎn)字符串

可以將其它的數(shù)據(jù)類型轉(zhuǎn)成字符串。

a)String():

代碼:
var a = 123;
a = String(a);

b).toString()的方法來進(jìn)行轉(zhuǎn)換(包裝類)。

代碼:
var a = 123; a = a.toString();

3.轉(zhuǎn)boolean類型:

可以將其它類型轉(zhuǎn)為boolean值:

a)Boolean():

代碼:
var a =”true”; a = Boolean(a);
注意:在進(jìn)行boolean轉(zhuǎn)換的時(shí)候所有的內(nèi)容在轉(zhuǎn)換以后結(jié)果都是true,除了:false、""(空字符串)、0、NaN、undefined

隱式轉(zhuǎn)換:

a)轉(zhuǎn)number:

var a = “123”;
a = +a;
加減乘除以及最余都可以讓字符串隱式轉(zhuǎn)換成number.

b)轉(zhuǎn)string:

var a = 123;
a = a + “”;

c)轉(zhuǎn)boolean:

var a = 123;
a = !!a;

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

簡(jiǎn)單數(shù)據(jù)類型:

string
number
boolean
undefined
null

在??臻g中開辟一塊內(nèi)存,將簡(jiǎn)單的數(shù)據(jù)類型存儲(chǔ)到棧中。

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

數(shù)組:Array
對(duì)象:Object;

先在??臻g中開辟一塊內(nèi)存,將數(shù)據(jù)保存到堆空間中,然后將數(shù)據(jù)在堆空間中的存儲(chǔ)地址放在棧里面去。

共同點(diǎn):都電腦的運(yùn)行內(nèi)存中的一部分。
不同點(diǎn):

堆:存儲(chǔ)空間大,運(yùn)行速度慢。
棧:存儲(chǔ)空間小,運(yùn)行速度快。

object:對(duì)象(數(shù)據(jù)類型)

作用:可以用來存儲(chǔ)數(shù)據(jù)。
保存小明的信息:
年齡,姓名,性別,愛好
由于通過變量來分別保存這些特征不太方便,所以我們干脆用一個(gè)對(duì)象來表示小明。

聲明對(duì)象:

var xiaoming = new Object();

給對(duì)象賦值:

xiaoming.age = 18;
xiaoming.name = xiaoming;
xiaoming.sex = “男”;
xiaoming.aihao = “女”;

對(duì)象的使用:

如果要得到小明的aihao:
xiaoming.aihao
可以直接通過xiaoming.aihao得到小明對(duì)應(yīng)的愛好。

數(shù)組:

問題:如果我要存儲(chǔ)10個(gè)學(xué)生的成績(jī):
作用:要以用數(shù)組存儲(chǔ)10個(gè)學(xué)生的成績(jī):

聲明數(shù)組:

var arr = new Array();

賦值:

arr[0] = 67;
arr[1]=59.9;
arr[2]=”abc”;
arr[3]=xiaoming;

取值:

arr[下標(biāo)];
注意:

1.0數(shù)組的下標(biāo)是以0開始。
2.0數(shù)組聲明以后,長(zhǎng)度可以是無限長(zhǎng)。
3.0js中的數(shù)組可以存儲(chǔ)任意的類型。
數(shù)組的遍歷:
數(shù)組中的一個(gè)屬性:
arr.length;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,334評(píng)論 0 17
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,706評(píng)論 18 399
  • 《ilua》速成開發(fā)手冊(cè)3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 1...
    葉染柒丶閱讀 11,507評(píng)論 0 11
  • 東漢末年,群雄并起,戰(zhàn)火紛飛,劉備從織鞋貶履一介村夫,桃園三結(jié)義起,將不過關(guān)張、兵不過千眾,既沒有曹操挾天子以令諸...
    紅塵醉彌勒閱讀 1,062評(píng)論 0 4
  • 人生本來就是一場(chǎng)即興演出,沒有做不成的夢(mèng),只有不早醒的人。 吃別人所不能吃的苦,忍別人所不能忍的氣,做別人所不能做...
    漂浮的流云閱讀 619評(píng)論 2 2

友情鏈接更多精彩內(nèi)容