1. 01 js的數據類型及如何判斷數據類型
在 ES5 中,存在 6 種數據類型。
基本類型(值類型): String、Number、Boolean、undefined、null
對象類型(引用類型):Object,其中 Object 有三種特殊的對象(Function、Array、Date)
PS: undefined 和 null 的第一個字母都是小寫
Q: undefined 和 null 有什麼區別?
A: 當一個變數被聲明,但是還沒有賦值的時候,則為 undefined.
當一個變數被聲明了,並且已經賦值了,賦的值為 null,則為 null
根本區別就是在於在聲明的時候有沒有被賦值
常用的判斷數據類型的方法
劃重點!!! typeof(xxx) 返回的是一個字元串
舉個栗子1
舉個栗子2
舉個栗子3
typeof 可以判斷以上 4 中基本類型(Number、String、Boolean、undefined)
判斷不了 null 類型
舉個栗子4
是不是很奇怪?null 作為基礎類型,但是在判斷類型的時候卻為 object?
其實設計者是這么想的,他先定義了一個變數,這個變數是准備賦值為對象的,由於某些原因,比如對象的屬性還不清楚,所以一開始就給變數賦值為 null,表明這個變數將來是個對象。
null 還有另外一個作用,在最後的時候,給變數賦值為 null,可以讓變數指向的對象成為垃圾對象,從而被垃圾回收器回收。
上面的例子證明,null 類型和 對象類型通過 typeof 是無法區分的。
沒錯,JS 的開發者就是不想讓你們這么好過,只記住一個規矩就想闖天下了嗎??? Naive!!!
為了讓你們多學點本領,於是就有了 instanceof
instanceof 字面意思就是實例。a instanceof b, a 是 b 的實例,b 為 構造函數 。返回值為 布爾值
實現原理是通過檢測 b.prototype 是否存在於 a 的原型鏈上
舉個栗子1
但是吧,你想用來判斷 null 類型,不好意思,直接報錯, null 並不是一個對象
先看完下面的例子,再來看怎麼判斷 null
下面看個有迷惑行為的例子
言歸正傳,怎麼說來說去都沒說怎麼判斷是不是 null 類型
===
直接上全等於 === 不就好了嘛,就是這么簡單快捷!!!
typeof:
可以判斷除了 null 之外的值類型 Number、String、Boolean、undefined
還可以判斷一個引用類型 Function
不能區分: null 和 Object
instanceof:
判斷對象的具體類型
===
判斷 undefined 和 null
一般情況下,使用 typeof 去判斷就可以了。
當確定是 Object 類型的數據,則使用 instanceof 去具體區分是屬於 Function/Array/Date 的哪種類型
很多情況下,都要判斷數據不能為 undefined 和 null,那就可以直接判斷 xxx !== undefined &&& xxx !== null
2. 怎麼判斷是是什麼類型的數據 js
數據類型的判斷比較復雜和多變
瀏覽器的支持程度也不統一;
一般判斷主類型例如: object number undefined boolean string 這些下面的代碼:
alert(typeOf'a');
alert(typeOf[]);
但實際上一個數據類型裡面還有其他類型,
例如: [2,1,3,4] 是一個數組, new Date(); 是一個時間實例, 但他們的類型都是object
你需要判斷究竟這個object是數組還是 Date類型,那麼就需要使用下面的代碼:
alert(newDate()instanceofDate)//true是Date類型
3. python如何查看數據類型
python怎麼查看數據類型?
第一步我們首先需要知道在python中查看變數數據類型是使用type()函數,type函數的用法如下圖所示:
第二步我們打開py文件,輸入
import numpy as npa1=123list=[1,2,3,4,5,6]array=np.array(list)print(type(a1))
列印出a1變數的數據類型,如下圖所示:
第三步運行py文件之後,可以看到a1變數是int類型,如下圖所示:
第四步輸入
print(type(list))print(type(array))
列印出list變數和array變數的類型,如下圖所示:
第五步運行py文件,可以看到分別是列表和數組類型,如下圖所示:
以上就是python怎麼查看數據類型的詳細內容,更多請關注 腳本之家其它相關文章
4. 數據類型有哪幾種
數據類型包括原始類型、多元組、記錄單元、代數數據類型、抽象數據類型、參考類型以及函數類型。
數據類型在數據結構中的定義是一組性質相同的值的集合以及定義在這個值集合上的一組操作的總稱。變數是用來存儲值的所在處,它們有名字和數據類型。
變數的數據類型決定了如何將代表這些值的位存儲到計算機的內存中。在聲明變數時也可指定它的數據類型。所有變數都具有數據類型,以決定能夠存儲哪種數據。
數據類型分類依據
數據類型的出現是為了把數據分成所需內存大小不同的數據,編程的時候需要用大數據的時候才需要申請大內存,就可以充分利用內存。例如大胖子必須睡雙人床,就給他雙人床,瘦的人單人床就夠了。
根據預設規定,如果在聲明中沒有說明數據類型,則令變數的數據類型為Variant。Variant數據類型很像一條變色龍—它可在不同場合代表不同數據類型。當指定變數為Variant變數時,不必在數據類型之間進行轉換,會自動完成各種必要的轉換。
但是,如果知道變數確實總是存儲特定類型的數據,並且還聲明了這種特定類型的變數,則會以更高的效率處理這個數據。例如,存儲人名的變數最好表示成String數據類型,因為名字總是由字元組成。
除變數外,數據類型也用於其它場合。在給屬性賦值時,這個值就有數據類型;函數的參數也有數據類型。事實上,凡是與數據有關的東西就與數據類型有關。
5. C語言中如何判斷數據類型
一般來說,我們不會直接使用ASCII碼來處理,因為這樣不夠直觀。比如你說的判定輸入是否是字母,是否是數字,那麼有個比較直觀的方法來處理。如果你看過ASCII碼表,那麼你就知道字數和字母在ASCII碼表中都是連續的,所以這個就比較好解決了。
判定字元ch是否是數字:
if(ch>='0'
&&
ch<='9')
判定字元ch是否是字母:
if(ch>='a'
&&
ch<='z'
||
ch>='A'
&&
ch<='Z')
當然,有已經定義好的庫函數用來判定是否數字和字母,不要加載入頭文件<ctype.h>
判定字元ch是否是數字:
if(isalnum(ch));
判定字元ch是否是字母:
if(isalpha(ch));
這兩個函數都是判定成立,結果是true也就是1,判定不成立,結果是false,也就是0.