javascript基本資料型別

2021-06-27 13:23:05 字數 4122 閱讀 4412

1 關鍵字和保留字,不能用作識別符號

2 js中的變數,無論是定義什麼樣的資料型別,都同意使用   var

js中的變數可以定義在一行中,由於ecmascript是鬆散型別的,所以不同型別的變數可以放在一行中定義

如:var message="hi",

found="false",

age=29;

3 資料型別:typeof操作符,用來檢測變數的資料型別

undefined-------如果這個值未定義

boolean---------如果這個值是布林值

string------------如果這個值是字串

number---------如果這個值是數字

object----------如果這個值是物件或null

function-------如果這個值是函式

例子:var message="some thing";

alert(typeof  message);

alert(typeof (message));

alert(typeof 89);

(1)undefined型別:只有乙個值,即特殊的undefined,在使用var宣告變數但未對其進行初始化的時候,這個變數的值就是undefined

(2)null型別:也是只有乙個值得資料型別,值是null,從邏輯上講,null值標示乙個空指標物件,這正是用typeof檢查null的值時返回的是「object」

(3)boolean型別:只有兩個值「true」、「false」

下面列出各種資料型別轉換成boolean型別的轉換規則

boolean:true、false

string:任何飛空字串、「」(空字串)

number:任何非零數字值(包括無窮大)、0和nan

object:任何物件、null

undefined:n/a(不適用)、undefined

(3)number型別:表示的是整數和浮點數

十進位制數:var intnum=55

八進位制數(56):var octalnum1=070

十六進製制:前面兩位必須是0x,後面跟任何十六進製制數字(0~9及a~f)

var num1=0xa;//十六進製制的10

var num2=0x1f;//十六進製制的31

浮點數值:var float1=1.1       ;適用浮點數計算會產生捨入誤差的問題,

nan:非數值(not a number),定義了乙個isnan()函式,這個函式接受乙個引數,這個引數可以是任何型別,

alert(isnan(nan));//true

alert(isnan(10));//false(10是乙個數值)

alert(inan("10"));//false(可以被轉換成數值10)

alert(isnan(true));//false(可以被轉換成數值1)

alert(isnan("blue"));//true(不能被轉換成數值型)

數值轉化:有3個函式可以將不是數值型的轉換成數值:

number():轉型函式,可以用於任何資料型別

parseint()、parsefloat():這兩個函式用於將字串轉換成數值型

number()函式轉換規則:

1);如果是boolean值,true和false分別轉換成1 和 0;

2);如果是數字,就簡單的傳入和返回

3);如果是undefned,返回0;

4); 如果是字串,將按照下面的規則進行轉換:

5):如果是物件,則呼叫物件的valueof()方法,然後依照前面的規則轉換返回的值,如果轉換的結果是nan,則呼叫物件的tostring()方法,

例子:var num1=number("hello");//nan;因為不包含任何有意義的數字

var num2=number("");//0,空字串會被轉換成0

var num3=numner("000011");//11;忽略了其前導的0

var num4=numner(true);//1,true值被轉換成1

parseint()例子:

var num1=parseint("123blue");//123

var num2=parseint("");//nan

var num3=parseint("0xa");//10(16進製制)

var num4=parseint("22.5");//22

var num5=parseint("070");//56八進位制,在ecmascript中不具備解析8進製的能力,,因此前面的0會被視為無效,從而將這個值當成「70」,

var num6=parseint("70");//70十進位制

為了消除parseint()中的困惑,可以為這個函式提供第二個引數:轉換時使用的基數(即多少進製)

例如:var num=parseint("af",16);//轉換成十六進製制

parsefloat():只解析10進製的數

tostring();轉換為字串,null和undefined沒有tostring()方法。

var age=11;//11

var ageasstring=age.tostring();//結果是字串「11」

var found=true;

var foundasstring=found.tostring();//結果是字串「true」

給tostring()方法傳遞引數

var num=10; 

alert(num.tostring());//10

alert(num.tostring(2));//1010

string()函式:可以將任何型別的值轉換成字串,遵循的轉換規則如下:

1):如果值有tostring()方法,則呼叫該方法(沒有引數)並返回相應的結果

2):如果值是null,則返回"null"

3):如果是undefined ,則返回的「undefined」

(5)object型別:

var o=new object();

object的每個例項都具有下列屬性和方法

1)cnstructor:儲存著用於建立當前物件的函式

2)hasownproperty(prooertyname):用於檢查給定屬性在當前例項物件中是否存在

3)ispropertyof(object):用於檢查傳入的物件是否是傳入物件的原型

4)propertyisenumerble(propertyname):用於檢測給定的屬性是否能夠用for-in語句來列舉

5)tolocalestring();返回物件的字串標示,

6)tostring():返回物件的字串標示

7)valueof():返回物件的字串、數值或布林值標示,通常與tostring()方法的返回值相同

操作符:

一元操作符

++age:先加1,後執行

age++;先執行,後加1

--age;先減1,後執行

age--;先執行,後減1

例如:var num1=2;

var num2=20;

var num3=--num1+num2;//21

var num4=num-+num2;//21

var num1=2;

var num2=20;

var num3=num1--+num2;//22

var num4=num1+num2;//21

按位非(not  "~"):結果就是數值的反碼

按位與(and  "&"),相同值為1,不同值為0;

按位或(or "|")兩個運算元,其中乙個為真,結果就為真。

按位異或(xor  "^"),兩個運算元,相同為0.不同為1

左移(<

有符號右移(>>):會將數值向右移動,但保留符號位

無符號右移(>>>):對於正數來說,無符號右移與有符號右移結果是相同的,但是負數就不同了,無符號右移操作符會把負數的二進位製碼當成正數的二進位製碼,而且負數以其絕對值的二進位制補碼形式標示,因此會導致無符號右移後的結果非常大

布林操作符:

邏輯非(!)

邏輯與(&&):兩個運算元都為真的時候結果才為真

邏輯或(||):兩個運算元中有乙個為真時結果才為真;可以利用邏輯的這一行為來避免為變數賦值為null或undefined

基本資料類

integer integer1 1 int integer2 integer1 將基本資料型別換成string字串型別 講字串轉換成基本資料型別 int num integer.parseint 1 判斷記憶體位址是否相同,用 判斷物件的資料是否相同,用 equals 比較是否相等,可用向下轉型方...

python基本數 python基本資料型別

1.數字 int 數字又分整型和浮點型,在python中宣告變數是不用宣告所以自己就會識別 a 10 整型 a1 1.24 浮點型 支援科學計數法,將10用e來代替 2.字串 str 在python中用引號引起來的就是字串,而且單引號和雙引號並沒有什麼區別 a string a1 string a2...

JavaScript基本資料型別分析

js 資料型別可分為基本資料型別和復合資料型別兩種,其中基本資料型別有五種 字串 string 數字 number 布林 boolean 空 null 未定義 undefined 復合資料型別即 object,object 本質是一組無序的名值對組成的,嚴格來說,又被分為三類 物件 object 陣...