js超基礎的知識點

1,js數據類型

基本類型:null,undefined,String,Number,Boolean,Symbol

引用類型:Object,Function,Array

區別:基本類型存到棧裏,引用類型存到堆裏

注意:NaN屬於Number類型,且NaN==NaN爲false

           typeof(null) //‘object’,原因:js原始版本是使用32位操作系統,000表示對象,而null全爲0,所以誤判爲object

 若想得到一個變臉正確的類型,用object,prototype,toString.call(xxx)  ,最後輸出結果爲[object Type]

2,類型轉換

分爲強制類型轉換和隱式類型轉換

哪些會發生隱式類型轉換:數字運算符(‘+’,‘-’),“==”,if條件判斷會轉換成Boolean等

轉Boolean時,undefined,null,0,-0,NaN均爲false

轉爲對象時,會先調用valueOf,然後調用toString方法,也可以重寫Symbol.toPrimitive方法,它的優先級高於前兩個

加法運算,只要一方是String,另一方一會轉成String,其他運算只要一方是數字,另一方也會轉換成數字

特殊值:Number(undefined) //NaN

               Number(null)   //0

               parseInt(true) //NaN

eg:
1, 'a'++'b'==aNaN
//+'b'爲NaN,所以結果爲aNaN

2, [1,2]+[2,1]=1,22,1
//1,先調用toString方法,[1,2].toString() // '1,2'
//                     [2,1].toString() // '2,1'
//2,'1,2'+'2,1'='1,22,1'

js數組轉字符串

toString方法(注意undefined和null不能用toString方法)

eg:
var list=['a','b','c','d'];
list.toString()  //"a,b,c,d"

join()方法

eg:
var list=['a','b','c','d'];
list.join('')  //"abcd"

 字符串轉數組split(' ')

eg:
var str='abc';
str.split() //['abc']
str.slpit('') //'a','b','c','d'

 

3,“==”

String類型進行比較時,需長度相等且相同字符在相同位置才返回true,否則返回false

若比較運算符一邊類型爲Object,另一邊爲Number或String,需用ToPrimitive來判斷object

若比較運算符一邊爲Boolean,返回ToNumber(xxx)的結果

特殊值:null==undefined //true

               NaN==NaN  //false

eg:
[]==![]
//[]==true,取反爲false,
//ToNumber(false)==0
//ToPrimitive([])==0
//所以,0==0爲true

4,提一下parseInt的使用

parseInt轉換成整數,但不會轉換成boolean等,且第二個參數是第一個參數的進制數

eg:
2------------10------------16
   parseInt      toString
var num=101010;
var test=num.parseInt(num,2);
test.toString(16)

5,常用Math方法

Math.abs()  //絕對值

Math.ceil() //向上取整

Math.floor()//向下取整

Math.round() //把數四捨五入爲最接近的整數。

Math.max()

Math.min()

Math.random()  //隨機數

注意js數是浮點型,所以會有精度問題

js最大值爲2的53次冪

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章