js基礎知識學習(二)

JS基礎知識

JavaScript

數據類型轉換

把其它數據類型轉換爲number類型javascript

isNaN 、Number、parseInt、parseFloat

在進行加減乘除數學運算的時候java

true->1 false->0
''->0 '12'->12 '12px'->NaN/12 "candy"->NaN
null->0 undefined-NaN
{} /^$/ function(){}->NaN
[]->''->0
//=>引用數據類型轉換數字
//經過toString方法把數組轉換爲字符串,而後在調用Number把字符串轉換爲數字

JS中的數學運算數組

+、-、*、/ 加減乘除

除了加法有特殊性,其他的運算符都是數學運算,也就是遇到非數字類型,須要把其轉換爲number在進行運算瀏覽器

加法的特殊性:dom

在遇到字符串的時候,+不是數學運算,而是字符串拼接,只要不遇到字符串就是數學運算函數

1-"1"->0;
10*null->0;
10/undefined ->NaN
10*[10]->100

1+"1"->"11"
null+"1"->"null1"
//=>字符串拼接:是把其它的值轉換爲字符串而後在拼接
(toString)
//=>其餘數據類型的toString是直接的把值用單(雙)引號包起來便可,只有對象的有特殊性,對象.toString()==="[Object Object]"

1+null+undefined+[]+"candy"+null+undefined+[]+10
/*
1+null->1
1+true->2
2+undefined->NaN
NaN+[]->NaN+""->"NaN"
"NaN"+"candy->"NaNcandy"
...
NaNCandynullundefined10
*/

將其它數據類型轉換爲布爾類型code

Boolean、!、!!

在條件判斷的時候,也是轉換爲布爾類型,而後驗證條件的真假對象

只有0、NaN、空字符串、null、undefined五個轉換爲false,其他的都轉換爲trueip

[]->true
-1->true
if(box){
    //=>首先把box變量存儲的值獲取到,轉換爲布爾類型,若是爲true條件成立,反之不成立
}
if(3+"3px"){
    //=>條件成立
}
if(3-"3px"){
    //=>條件不成立:3-"3px"=NaN
}

在使用==進行比較的時候字符串

在使用==進行比較的時候,若是左右兩邊數據類型不相同,瀏覽器會默認轉換爲相同的類型,而後在比較(===不會這樣操做)
//=>對象和對象:比較的是空間地址,不是相同的空間,結果確定是false
[]==[]->false 

var a={};
var b=a;
a==b;=>true;

//=>對象和數字:把對象轉換爲數字
[]==0->true
({})==NaN->false //NaN和本身不相等和其它任何值都不相等

//=>對象和字符串:把兩邊都轉換爲數字比較的
[]==""->true

//=>對象和布爾:把兩邊都轉換數字
[]==true//->0==1->false
[]==false//->0==0->true
![]==false//->![]把數組變爲布爾在取反=false->false==false->true

//=>字符串和數字:字符串轉換爲數字
//=>字符串和布爾:都轉爲數字
//=>布爾和數字:布爾轉換爲數字

//=>規律:兩個等號比較,左右兩邊數據值的類型不同,瀏覽器會把兩邊的類型都轉換爲數字而後再比較,可是null和undefined除外
null==undefined->true
nul===undefined->false
null==0 ->false //null以及undefined和其它任何值都不相等

Math中的經常使用方法

數學函數:可是它是對象數據類型的
typeof Math->"object"

Math對象中給咱們提供了不少經常使用操做數字的方法

console.dir(Math)查看全部方法

abs

Math.abs:取絕對值
Math.abs(12)->12
Math.abs(-12)->12

ceil/floor

Math.ceil:向上取整
Math.floor:向下去整
Math.ceil(12)->12
 Math.ceil(12.1)->13
 Math.ceil(12.9)->13
 Math.ceil(-12.9)->-12
 Math.ceil(-12.1)->-12

 Math.floor(12)->12
 Math.floor(12.1)->12
 Math.floor(12.9)->12
 Math.floor(-12.9)->-13
 Math.floor(-12.1)->-13

round

Math.round:四捨五入
Math.round(12.3)->12
Math.round(12.5)->13 正數中5包含在向上
Math.round(-12.3)->-12
Math.round(-12.5)->-12 負數中5包含在向下
Math.round(-12.51)->-13

random

Math.random:獲取(0,1)之間的隨機小數
for(var i=0;i<100;i++){
    console.log(Math.random());
    }
 //=>需求:獲取[0,10]之間的隨機整數
Math.round(Math.random()*10)
//=>需求:獲取[1,10]之間的隨機整數
Math.ceil(Math.random()*10))
//=>需求:獲取[3,15]之間的隨機數
Math.round(Math.random()*12+3)

獲取[n,m]之間的隨機整數
Math.round(Math.random()*(m-n)+n)

max/min

Math.max(12,23,25);->25
Math.min(12,23,25);->12

PI

Math.PI->3.141592653589793

pow/sqrt

Math.pow:獲取一個值的多少次冪

Math.sqrt:開平方

Math.pow(10,2)->100
Math.sqrt(100)->10
相關文章
相關標籤/搜索