js基礎之數據類型

前端在整個系統中,一直都扮演着舉足輕重角色。沒有前端整個系統就無法運行,沒有後臺,就如同一灘死水無法運作。前端和後端,誰也離不了誰。前端整個基礎知識架構,css/html/javascript,整個前端知識的基礎。今天這一專欄,我將爲大家介紹一下前端三劍客之javascript的基本數據類型,我這篇文章,僅爲菜鳥提供一個學習的通道,如有知識誤區或錯誤,望即時指出,我將及時修改,以免誤導他人。

本節關鍵點介紹基本數據類型,其中也會穿插一些其他的語句運用,在其他語言中,也能用到不詳細講。

javascript數據類型,有六種數據類型,其中包括五種基本數據類型,六種數據類型種有:string/number/undefined/function/boolean/object;而五種基本數據類型:string/number/undefined/boolean/null。講它之前,我爲大家安利一個能檢測數據類型的一個方法:typeof,他能將基本數據類型給區分開,當然它也有缺陷,就是將object類型和arrary給區分開。其實還有一個方法isInstanceOf它也是一款運算操作符,我們來區別一下,他們的差別吧。

instanceof,他是用來判斷這個是屬於哪個類型,返回布爾值;

var a  = 123456
console.log(a instanceof Number)//true

既然說到 instanceof,就談談與它密切相關的,判斷數組的方法。instanceof是一種,接下來爲大家介紹幾種有關數組判別的方式。

(1)構造函數判別式:

var a = [1,2,3,4]
console.log(a.constructor == Array )

(2) isArrary判別式;

var a = [1,2,3,4]

console.log(Array.isArray(a))

(3)Object.prototype判別;

var a = [1,2,3,4]

console.log(Object.prototype.toString.call(a))

接下來講一下,typeof ,他是用來判斷數據類型,返回數據類型;

console.log(typeof a)//number

javascript五大基本數據類型:null,undefined,number,string,boolean;在這五大基本數據類型,存在一些轉換關係。

1.number類型轉換string類型

var a = 123
	a += ''
	console.log(a)
console.log(typeof a) //string

上面是通過加一個空字符串,進行轉換,還可以通過String()方法進行強制轉換;

  var a = 123
	a = String(a);
	console.log(a)
        console.log(typeof a) //string

當然還有一種方法,可以進行進制的轉換,他就是toString;

var a = 123
console.log(a.toString(8))//173
console.log(a.toString(2))//1111011

2.string轉換成number類型;

可以通過操作符:-

var a = '123'
a -= 0 ;
console.log(a)

通過強制轉換:Number

var a = '123'
	console.log(Number(a))

還有有必要介紹number類型中NaN;意識他不是一個數;

var a = 2-'我是不是'//a,NaN

進行強制轉換,一個parseInt(a)和parseFloat(a)一個整型和浮點型。

parseInt可以傳入兩個參數:parseInt('123',8);表示8進制轉換成10進制的運算關係。

var a = '23'
console.log(parseInt(a,8))//a是8進制數;
console.log(paseFloat(a))

在number類型的浮點型能精確到小數點後17位。

在加法中,計算出來的number類型數值,是浮點型;故

console.log(0.1+0.2==0.3)//false

'=='和‘===’區別:‘==’會存在類型的隱式轉換,‘===’不存在。

var a = 123
console.log(a=='123')//true
console.log(a==='123')//false
console.log(0=='')//true
console.log(null == undefined)//true
console.log(0==null)//false
console.log(null=='')//false
console.log(null===undefined)//false
console.log(null===0)//false
console.log(null==false)//false

null空對象指針。

上面已經將隱式轉換表達的很清晰,再解釋一兩個例子:

console.log(10+'20')//1020
number->string

console.log(20-'3')//17
string->number

console.log(11>'4')//true
string->number

接下來,講一個在前端開發常用的語法操作,那你就看過來,例子這個時候就拋出來啦呀;

1.短路語法,使用了位操作符(&& 與 ||)

var u = 'null' || '';
console.log(u)//'null'
console.log('null'|| 123)//'null'
/*
*解釋:誰的值存在就拋出誰,兩個值都存在,拋出靠近等號的那個。
*
*/
	var u = null && '';
	console.log(!u)
/*
*這個是拋出第二個法則,靠近等號的值存在,就拋出第二個,
*誰的值爲空就拋出誰
*/

2.三目運算符:簡化if語句的判斷,用於簡單的邏輯判斷,節約代碼;

在現在前端比較流行的框架裏用的比較多。

var a = flag==true?'我是':'不是'

這是精華所在。

3.i++和++i

一個叫後自加,和前自加。對於菜鳥來說,剛入門的人,還不是很清楚,他們具體區別,這裏廢話不多,直接用代碼解釋:

var a = 4;
var b = 20;
var c = a++ +b//24
var a = 4;
var b = 20;
var d = ++a +b//25

a++:表示計算完後再加1;

++a:表示先加1再計算;

故這就是他們最大的區別。

本來還有break和 continue 在循環語句使用,這兩個關鍵字,不單單在js能用到,其他語言中c/c++/java都能用到,這裏就不詳細介紹。

最後來總結一下:這篇主要講js的基本數據類型的之間的強制轉換及隱式轉換,開發中常用的一些簡潔語法,這篇就介紹到這裏爲止。

參考文檔:https://blog.csdn.net/aaa333qwe/article/details/80331153

 

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