1、js資料型別型別
(1)五種基本型別分別為:
string型別:字串型別(2)一種複雜資料型別number 型別:數值型別(數值和 nan)
boolean型別:布林型別 只有true和false兩個值。
null:空
undefined:未定義
object型別:物件型別2、用typeof操作符檢測給定變數的資料型別
undefined–未定義這個值舉例說明:boolean–布林型別值(true false)
number–數值型別
string–字串
object–物件或者是null
function–函式方法
var a=
123;
var b=
'123'
; var c=true;
var d=null;
var e;
var f=
console.
log(
typeof a)
;//輸出 number
console.
log(
typeof b)
;//輸出 string
console.
log(
typeof c)
;//輸出boolean
console.
log(
typeof d)
;//輸出object
console.
log(
typeof e)
;//輸出undefined
console.
log(
typeof f)
;//輸出object
console.
log(
typeof g)
;//沒有宣告的變數也輸出undefined
3、每個型別詳細說明
(1)undefined型別
a、只宣告了變數並沒有賦值即沒有初始化資料
var a;
console.
log(
typeof a)
;//輸出undefined
b、對於沒有宣告的變數進行typeof也會返回undefined型別。
console.
log(
typeof a)
;//輸出undefined
(2)null型別
null表示空物件指標,也是為什麼用typeof檢測會返回物件型別。
(3)boolean型別
布林型別只有兩個值:true 和false (true不一定是1,false不一定是0。注意布林型別區分大小寫,true和false 以及其他大小寫混合形式都不是boolean型別。各種資料型別轉換成布林型別
資料型別
轉換成true
轉換成false
string
任何非空的字串
『 』 , 『』 『』(空字串)
number
任何非0數字(包括無窮大)
0和nana
boolean
true
false
object
任何非空物件
null
undefined
n/a(不適用)
undefined
例子:
var a =
'hello';if
(a)
(4)number型別
十進位制數值,正常使用var =12 ; //十進位制12
八進位制數值(0-7)數值前面必須加上0 例如:var a=070; //八進位制56
十六進製制,數值前面必須加上0x 例如:var a =0xa; //表示十六進製制的10
var a=
1.1
var d =
.1//有效但是不推薦
特例:b、數值範圍var a =1. //小數點後面沒有數值,自動解析成整數1
var b =1.0 //整數會被解析成1
由於記憶體限制es能夠取的最大值儲存在number.max_value中 這個值是nan非數值表示特殊的數值,表示乙個本來要返回數值的運算元為返回數值的情況。nan和任何數值都不相等,包括其本身。1.797693134823157e+308。最小值存在number.min_value中,這個值是5e-324。
nan==nan //false
isnan()函式判斷是否不是數值4、 == 和 ===區別。例子;isnan(nan) //true
isnan(10) //true
isnan(『10』) //false
isnan(『hello』) //false
isnan(true) //false
(1)、 == 比較
1)如果兩個值型別相同,數值也相同即相等;例子:2)如果兩個值型別不同,也有可能相等,需根據以下規則進行型別轉換在比較:
a、如果乙個是null,乙個是undefined,那麼相等
b、如果乙個是字串,乙個是數值,把字串轉換成數值之後再進行比較
c、特殊:nan和nan 永遠不相等
console.
log(1==
'1')
;// true 字串轉換成數字
console.
log(
1== true)
;// true; //布林轉換成數字
null == undefined // true, null 和undefined和其他資料型別比較都是false
console.
log(false ==
'0')
;// true布林值轉數字,字串也轉成數字,然後進行比較
console.
log(==)
;// false 物件和物件比較比較的是位址
console.
log(
== true)
;// false 物件先轉成字串,再轉數字,布林值也轉成數字,在比較這兩個數字
console.
log(
== false)
;// true
console.
log(nan == nan)
;// nan和nan 永遠不相等
(2)===絕對相等
1)如果型別不同,就一定不相等2)如果兩個都是數值,並且是同乙個值,那麼相等;如果其中至少乙個是nan,那麼不相等。(判斷乙個值是否是nan,只能使用isnan( )
來判斷)
3)如果兩個都是字串,每個位置的字元都一樣,那麼相等,否則不相等。
4)如果兩個值都是true,或是false,那麼相等
5)如果兩個值都引用同乙個物件或是函式,那麼相等,否則不相等 6)如果兩個值都是null,或是undefined,那麼相等
js中的基本型別和引用型別
基本資料型別 按值訪問,可操作儲存在變數中的實際的值。基本型別值指的是簡單的資料段。基本資料型別有這六種 undefined null string number boolean symbol es6 引用型別 當複製儲存著物件的某個變數時,操作的是物件的引用,但在為物件新增屬性時,操作的是實際的物...
js中基本型別和引用型別理解
一 基本型別有6種。普通基本型別 null undefined symbol 特殊基本型別 object boolean number 二 引用型別。object array regexp date function。三 兩者的區別 引用型別值可以新增屬性和方法,而基本型別值不可以。1 基本型別。基...
js基本型別
es5共有5種基本型別,分別為number,string,null,undefined,boolean,es6新增了symbol.console.log typeof undefined 輸出為undefined console.log typeof null 輸出為object console.l...