JS是一種動(dòng)態(tài)類型以及弱類型的語(yǔ)言
指變量的數(shù)據(jù)類型可以在程序的執(zhí)行過(guò)程中發(fā)生變化庆捺。
變量在申明的時(shí)候不需要指定數(shù)據(jù)類型翼闹,
變量的類型是根據(jù)保存的數(shù)據(jù)決定的陷虎。
數(shù)據(jù)類型
- 基本數(shù)據(jù)類型:
- 數(shù)字型
- 字符串型
- 布爾型:
true
,false
- 復(fù)合數(shù)據(jù)類型:
- 對(duì)象類型
- 特殊數(shù)據(jù)類型:
-
null
:null
-
undefined
:undefined
-
number類型:
數(shù)字型分為兩種:一種叫做整數(shù)型,一種叫做浮點(diǎn)型(小數(shù)
)忽肛。
對(duì)其他語(yǔ)言來(lái)書,嚴(yán)格區(qū)分整數(shù)型與浮點(diǎn)型的,JS
不一樣诽里,JS
里面嚴(yán)格意義上來(lái)說(shuō)沒有整數(shù)型,整數(shù)是使用浮點(diǎn)型保存的飞蛹。
浮點(diǎn)數(shù)本身具有不精確性谤狡,所以使用浮點(diǎn)數(shù)的計(jì)算要小心灸眼。
64位
- 第
1
位:符號(hào)位,(0為正墓懂,1為負(fù)焰宣。
) - 第
2
位到第12
位:指數(shù)位 - 第
13
位到64
位:精確位
(JS里面能夠正確的表示15位的整數(shù)。
)
Math.pow()
實(shí)現(xiàn)數(shù)學(xué)的次方運(yùn)算捕仔,第一個(gè)是基數(shù)宛徊,第二個(gè)參數(shù)是次方
例如:math.pow(2,4)=16。
(Math.random()隨機(jī)數(shù)
)
JS
可以通過(guò)兩個(gè)常量
獲取出來(lái)JS數(shù)字
的最大值
與最小值
(常量就是不會(huì)發(fā)生變化的量
)
Number.MAX_VALUE
Number.MIN_VALUE
科學(xué)計(jì)數(shù)法
874.548 = 8.74548*10^2
0.000020202 = 2.20202*10^-5
123e3 = 123*10^3
123e-3 = 123*10^-3
Infinity
Infinity
無(wú)窮大
-infinity
無(wú)窮小
無(wú)窮大等于無(wú)窮大逻澳,無(wú)窮大計(jì)算的是值也遵循無(wú)窮原則闸天。
當(dāng)Infinity-infinity=NaN
NaN:not a number
不是一個(gè)數(shù)字,但是NaN
是數(shù)字類型的量斜做,typeof NaN:number
NaN是不等于NaN的苞氮,
在數(shù)學(xué)計(jì)算出錯(cuò)的時(shí)候就會(huì)出現(xiàn)NaN ,所以當(dāng)看到NaN的時(shí)候就要檢查自己的代碼瓤逼。
進(jìn)制表示法
類型前綴:
0b
前綴表示二
進(jìn)制:0b010011010
0o
前綴表示八
進(jìn)制:0o5412344
0x
前綴表示十六
進(jìn)制:0xffff5454
0
前綴表示十
進(jìn)制:默認(rèn)的是十進(jìn)制
parseInt
格式化一個(gè)字符串轉(zhuǎn)化為整型笼吟,從左向右依次轉(zhuǎn)化,直到遇到不是數(shù)字的字符停止霸旗,包括小數(shù)點(diǎn)贷帮。如果轉(zhuǎn)化的是一個(gè)純字符
串,或者第一個(gè)不是數(shù)字或小數(shù)點(diǎn)诱告,那么返回的結(jié)果為NaN(不是一個(gè)數(shù)字)撵枢。
ParseInt也可以將小數(shù)轉(zhuǎn)化為整數(shù),沒有四舍五入精居,小數(shù)點(diǎn)后面的全部舍棄锄禽。
第一個(gè)參數(shù)是字符串或者數(shù)字,就是要轉(zhuǎn)化的量靴姿,
第二個(gè)參數(shù)是進(jìn)制數(shù)(2,4,8沃但,16,32)。不能大于32.表示前面的數(shù)字或者兩是按照這個(gè)進(jìn)制表示的佛吓。
ParseInt(‘1001011101’宵晚,2)表示前面的數(shù)是二進(jìn)制數(shù);
ParseFloat()將字符串轉(zhuǎn)化為浮點(diǎn)型(小數(shù)型)维雇,如果要轉(zhuǎn)化的數(shù)字是一個(gè)整數(shù),并且沒有傳遞第二個(gè)參數(shù)淤刃,那么結(jié)果還
是這個(gè)整數(shù)。
NaN 不等于NaN谆沃,他也不等于任何數(shù)钝凶,isNaN:判斷某一個(gè)量是不是NaN,如果是返回true,不是返回false耕陷。
IsFinite
判斷一個(gè)數(shù)字是否是有限的
如果是準(zhǔn)確的數(shù)字掂名,那么返回true
如果是NaN,或者Infinity或者-Infinity返回的false哟沫。
boolean 布爾值
里面只有兩個(gè)值饺蔑,一個(gè)是真true
,一個(gè)假false
嗜诀,也可以理解為數(shù)學(xué)里面的0
和1
的關(guān)系猾警,他描述的關(guān)系是非此即彼的關(guān)系。常用語(yǔ)判斷隆敢,返回的都是布爾值发皿。
取反符號(hào):!拂蝎;
改變布爾值的真假穴墅,取相反的意思。如果使用了温自!
號(hào)玄货,那么返回的值一定是一個(gè)布爾值。
=(等于號(hào))全解
=:賦值號(hào)
==:判斷符號(hào)悼泌,返回的是一個(gè)布爾值松捉,要么就是true,要么就是false馆里,判斷兩邊的數(shù)據(jù)類型書否相等隘世。
===:全等判斷,返回一個(gè)布爾值也拜,要么就是true以舒,要么就是false,但是判斷的是兩邊的值以及數(shù)據(jù)類型是否一致慢哈。
布爾值的轉(zhuǎn)化
Null
數(shù)據(jù)類型只有做一個(gè)值,就是null
null
數(shù)據(jù)的產(chǎn)生都是直接賦值為null
永票。
Undefined
數(shù)據(jù)類型也只有一個(gè)值卵贱,就是undefined
.
Undefined
的產(chǎn)生分為四種:
1. 一個(gè)申明了未賦值的變量就是undefined;
2. 函數(shù)的參數(shù)沒有傳遞侣集,賦值的時(shí)候键俱,函數(shù)的內(nèi)部使用的時(shí)候就是undefined;
3. 函數(shù)沒有返回值但是調(diào)用調(diào)用函數(shù)返回結(jié)果的時(shí)候世分,這個(gè)結(jié)果就是undefined编振;
4. 對(duì)象的某一個(gè)屬性沒有賦值;
大部分情況下null
與undefined
是一個(gè)意思臭埋,只有在轉(zhuǎn)化為數(shù)字的時(shí)候不一樣踪央。
Console.log(Number(null))臀玄;//0
Console.log(Number(undefined));//NaN
語(yǔ)義上理解畅蹂,null
表示空健无,沒有東西,undefined
表示未定義;
字符串
定義一個(gè)字符串必須要使用引號(hào)液斜,單引號(hào)與雙引號(hào)都可以累贤,但是引號(hào)不能嵌套同一種引號(hào),引號(hào)不能包含同一個(gè)類型的引號(hào)少漆,可以包含不同類型的引號(hào)臼膏;但是可以使用轉(zhuǎn)義字符讓他實(shí)現(xiàn)同類包含;
注意:字符串定義的時(shí)候只能在一行定義示损,不能敲換行符號(hào)渗磅;但是加`\`可以實(shí)現(xiàn),后面直接回車屎媳,不能加
空白字符換行夺溢,換行之后的字符串要頂格寫;
轉(zhuǎn)義字符(\
):作用就是改變后面字符原來(lái)的意思烛谊;和HTML的實(shí)體字符有點(diǎn)意思风响。
字符串與數(shù)組
Length
的屬性:(知道數(shù)組內(nèi)部有多少個(gè)元素;
)
var al = [1,2,3,5,6,7,8,99]丹禀;
al.length = 8状勤;
al[7]= 99;
al[length-1]=99双泪;
字符串和數(shù)組一樣也具有一個(gè)叫length
的屬性持搜,這個(gè)屬性表示的是字符串的長(zhǎng)度,也包括空白字符焙矛;
字符串也可以通過(guò)下標(biāo)的方法獲取出某一個(gè)位置的字符葫盼;
遍歷字符串:
for循環(huán)
for(var I =0;i<str.lenght;i++){
console.log(str[i]);
}
彈窗
alert()
: 提示框 屬于BOM
系統(tǒng)函數(shù)以及用戶直接定義的函數(shù)都是屬于window
對(duì)象的,而window
對(duì)象是屬于BOM
的頂層對(duì)象村斟,document
是DOM
的頂層對(duì)象贫导。confirm()
:確認(rèn)彈框,當(dāng)點(diǎn)擊確定的時(shí)候返回的結(jié)果是true
蟆盹,點(diǎn)擊取消的時(shí)候返回的是false
直接關(guān)閉也是false
孩灯;confirm
一般用于判斷里面,確認(rèn)之后的操作是否執(zhí)行逾滥。prompt()
獲取用戶的輸入峰档;返回的是用戶輸入的內(nèi)容,但是這個(gè)內(nèi)容是字符串類型的;