国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JavaScript基本數據類型、值類型和引用類型的介紹

來源:懂視網 責編:小采 時間:2020-11-27 20:14:18
文檔

JavaScript基本數據類型、值類型和引用類型的介紹

JavaScript基本數據類型、值類型和引用類型的介紹:在JavaScript中四種基本的數據類型:數值(整數和實數)、字符串型(用號或"括起來的字符或數值)、布爾型(使True或False表示)和空值。在JavaScript的基本類型中的數據可以是常量,也可以變量。由于JavaScript采用弱類型的形式,因而一個
推薦度:
導讀JavaScript基本數據類型、值類型和引用類型的介紹:在JavaScript中四種基本的數據類型:數值(整數和實數)、字符串型(用號或"括起來的字符或數值)、布爾型(使True或False表示)和空值。在JavaScript的基本類型中的數據可以是常量,也可以變量。由于JavaScript采用弱類型的形式,因而一個

在JavaScript中四種基本的數據類型:數值(整數和實數)、字符串型(用“”號或‘"括起來的字符或數值)、布爾型(使True或False表示)和空值。在JavaScript的基本類型中的數據可以是常量,也可以變量。由于JavaScript采用弱類型的形式,因而一個數據的變量或常量不必首先作聲明,而是在使用或賦值時確定其數據的類型的。當然也可以先聲明該數據的類型,它是通過在賦值時自動說明其數據類型的。

javascript中的變量

javascript中的變量只是一個占位符,前言已經說過了,因為松散類型的緣故。

定義變量:

var name;

上述代碼定義了一個名為name的變量,該變量可以用來保存任何值(像這樣未經過初始化的變量,會保存一個特殊的值--undefined),也可以初始化變量的值,

var name =”jwy”; //javascript 中的單引號和雙引號沒有區別,不過要注意正確嵌套name=10;

一開始name初始化成了字符串值“jwy”,后又改成了數字值—100,這種做法是不建議的,但是在ECMAScript是有效果的,而且在很多時候會這樣做。

也可以一條語句定義多個變量,而且很多javascript框架是這么做的

var name=”jwy”,author,age=29;

每條語句加分號是很好的編程習慣。不過一條多個變量時,建議換行和縮進,這樣可以提高可讀性。

簡單數據類型

ECMAScript中有5種簡單數據類型:Undefined,Null,Boolea,Number和String。還有一種復雜數據類型—Object

typeof操作符

由于Javascript中的變量是松散類型的,所以它提供了一種檢測當前變量的數據類型的方法,也就是typeof關鍵字,在上面提到的ECMAScript中的5種簡單數據類型中,(記住,這5種只是數據類型,代表一種數據類型,就想C#中的int,string類型一樣),通過typeof關鍵字,對這5種數據類型會返回下面的值(以字符串形式顯示

“undefined” ---------- 如果值未定義 Undefined

“boolean” ---------- 如果這個值是布爾值 Boolean

“string” ---------- 如果這個值是字符串 String

“number” ---------- 如果這個值是數值類型 Number

“object” ---------- 如果這個值是對象或null Object

“function” ---------- 如果這個值是函數 Function

不過嚴格來說,函數在ECMAScript中是對象,每個函數都是Function這個類的一個實例,既然函數是一個對象,那么它也就是一個引用類型了,所以一個函數只是一個變量名而已,因此,在很多場合常常可以看到,將函數名作為參數,傳進函數中,然后進行調用,這就類似于C#中的委托,在后面會詳細的講解函數這個東西,畢竟Javascript中很多東西都依賴于函數來實現。

Undefined 類型

上面說了,5種類型是數據類型,所以數據類型是有值的,Undefined的值就是undefined,注意,是u是小寫的。如果聲明變量卻沒有初始化,則當前變量的值就是undefined。不過,一般建議盡量給變量初始化,但是在早期的Javascript版本中是沒有規定undefined這個值的,所以在有些框架中為了兼容舊版瀏覽器,會給window對象添加undefined值,如下:

window["undefined"] = window["undefined"]; 
//或者window.undefined = window.undefined;

簡單的說就是給window對象的undefined屬性賦上undefined,在較老的瀏覽器對象并沒有undefined這個屬性,所以如果使用到undefined的操作將會導致失常,故采用這樣的方式,不過一開始看會有點難理解,在舊版本的瀏覽器中會因為沒有window.undefined這個對象而返回一個undefined值,所以這樣做可以兼容舊瀏覽器。

不過包含undefined值的變量與未定義的變量是不一樣的,如:

var name;
alert(name);//undefinedalert(age);// 錯誤:age is not defined

還沒聲明過的變量只能執行一項操作,其他全都不能做,就是使用typeof操作符檢測其數據類型。

如果不管聲明過未初始化以及未聲明過的變量執行typeof都是返回undefined的值。兩種變來那個都不能執行真正的操作

Null類型

Null類型的值是null,它表示一個空對象指針,沒有指向任何對象,如果一個變量的值是null,那當前變量很有可能就是垃圾收集的對象,使用typeof監測null值時會返回”object”,

var person = null;alert(typeof person);//”object”

建議:如果變量是要用來保存對象的額,則初始化為null,這樣到時就可以檢測該變量是否已經保存了一個對象的引用的,

注意:undefined值是派生自null的,所以對他們執行相等測試會返回true,如:

alert(null == undefind);//true

盡管如此,但是他們用途完全不同,無論在什么情況下都沒必要將一個變量的值顯示設為undefined,但是這個規則對null卻不適用。

Boolean類型

這個類型只有兩個值:true 和false。雖然只有兩個值,但是javascript中所有類型的值都有與這兩個值等價的值。要將一個值轉換為對應的Boolean值,可以調用轉型函數Boolean() (其實Boolean ,Object,String,Number,Function等這些都是一個函數,構造函數,同樣也可以理解為一個類,用類型調用toString()方法會返回這樣的東西:

"function Function() { [native code] }" ,Function會相應的改成各自的那個調用函數 )

其實在 if 語句判斷中,會對里面的條件自動執行Boolean變化的。

Number類型

數值類型有很多值,最基本的當然就是十進制啦,如:

var num=510;

除了十進制,整數還可以通過八進制或十六進制,其中八進制字面值第一位必須是0,然后是八進制數字序列,如果字面值中的數值超出了范圍,那么前導零將被忽略。后面的額數值將被當做十進制數解析。

var num1=070;//八進制的56var num2 =079;//無效的八進制—解析為79var num3 =08;// 無效的八進制—解析為8

而十六進制前面則必須是0x,后跟十六進制數字(0~F),不分大小寫。如:

var num1 = 0xA;var num2 = 0x1f;

雖然可以表示為八進制和十六進制,但是計算時會被轉換成十進制值。

除了整數,還有浮點數值,當然了,沒有像其他強類型語言中的float之類的關鍵字了。

var num1 = 1.1;
var num2 =0.1;var num3 = .1;//有效,但不推薦

在保存整數時內存分配大小只有浮點數的1/2,所以當浮點數可以轉換為整數時,javascript會自動轉換為整數。

當然了,除了這些數值比較小的,還有一些極大或極小的數值,可以用科學計數法表示,

var num=123.456e10;

浮點數值的最高精度是17位小數,但是計算時其精確度遠遠不如整數。例如 ,0.1+0.2不等于0.3,而是0.3000000000000004,所以在做判斷時,千萬不要用浮點數相加判斷等于預想中的某個值。

在javascript中數值最小的是Number.MIN_VALUE,這里可以想象成Number是一個類,而MIN_VALUE 是一個靜態變量,儲存最小值,同樣,最大的是Number.MAX_VALUE。

如果計算中超出了這個最大值和最小值范圍,則將被自動轉換成Infinity值,如果是負數,就是-Infinity,整數就是Infinity,Infinity的意思是無窮,也就是正負無窮,跟數學中的概念是一樣的。但是Infinity是無法參與計算的。可以用原生函數確定是不是有窮:isFinite();只有位于數值范圍內才會返回true。

在Javascript中數值除了那些普通的整數、浮點數、最大值、最小值、無窮之外呢,還有一個特殊的值,就是NaN。這個數值用于表示一個本來要返回數值的操作數未返回數值的情況。比如,在C#中任何數值除以0都會報錯,拋出異常,但是在Javascript中,任何數值除以0會返回Nan,因此不會影響代碼的執行。

NaN的特點:

1、任何設計NaN的操作(如:NaN/0)都會返回NaN.

2、NaN與任何值都不相等,包括NaN本身。如:

alert(NaN == NaN);//false

所以Javascript中有一個isNaN()函數,這個函數接收一個參數,任意類型,它會幫我們確定這個參數是否”不是數值”。它會先嘗試先講這個值轉為數值。如果不能被轉換為數值的值在調用這個函數之后會返回true,即is NaN 非數值。

至于數值轉換,這個內容在Javascript中擴展開來又是一篇文章,有時間再整理整理。

String類型

字符串可以由單引號或雙引號表示,在Javascript中這兩種引號是等價的,如:

var name = ‘jwy";var author = “jwy”;

不過就是要注意正確嵌套。

字符串可以直接用字面量賦值。任何字符串的長度都可以通過訪問氣length屬性獲得。

在Javascript中的字符串是不可變的,其實這跟C#中是一樣的,(估計也是為了提高性能),字符串一旦創建,他們的值就不能改變,要改變某個變量保存的字符串,首先要銷毀原來的字符串,然后再用另一個包含信紙的字符串填充該變量。

var name=”jwy”;name = “jwy”+” study javascript”;

這里一開始name是保存字符串”jwy”的,第二行代碼則將“jwy”+” study javascript”; 值重新賦給name,它先床架一個能容納這個長度的新字符串,然后填充,銷毀原來的字符串。

幾乎每個值都有自己的toString()方法,在后面的文章會解釋這個方法哪里來的,它會返回相應值的字符串表現。

var age=11;var ageToString =age.toString();//”11”

數值、布爾值、對象和字符串值都有toString(),但是null和undefined值沒有這個方法。

一般來說,調用toString()方法不必傳遞參數,但是,在調用數值的toString方法時,可以傳遞一個參數,用來指定要輸出的數值的基數(看是要輸出十進制、二進制、八進制、十六進制表示)

由于null和undefined沒有toString方法,在不知道是否是這兩者的情況下調用是會報錯的,所以還有一條路可以選,就是使用轉型函數String(),它呢就可以接收任何類型的值轉為字符串了,處理規則如下:

1、如果這個值有toString則直接調用,并返回結果

2、如果是null,則返回”null”

3、如果是unde,則返回”undefined”

Object 類型

Object類型是Javascript引用類型的鼻祖了,(就跟在C#和Java中是一樣的道理),在創建Object類型的實例后可以為其添加屬性和方法,

var o = new Object;//有效,不推薦var o =new Object();

在Javascript中,Object類型所具有的任何屬性和方法也同樣存在于更具體的對象中。

每個實例都有如下的屬性和方法,如下:

1、constructor ,保存著用于創建當前對象的函數。上面構造函數就是Object();

2、hasOwnProperty,用于檢查給定的屬性是否在當前對象實例中,是就true,不是在實例中,而是在原型中,則是false;

3、isPrototypeOf,用于檢查傳入的對象是否是另一個對象的原型

4、propertyIsEnumerable,用于檢查給定的屬性是否能夠使用for…in語句來枚舉,

5、toString,返回對象的字符串表示

6、valueOf,返回對象的字符串、數值或布爾值表示,通常與toString方法返回值相同

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript基本數據類型、值類型和引用類型的介紹

JavaScript基本數據類型、值類型和引用類型的介紹:在JavaScript中四種基本的數據類型:數值(整數和實數)、字符串型(用號或"括起來的字符或數值)、布爾型(使True或False表示)和空值。在JavaScript的基本類型中的數據可以是常量,也可以變量。由于JavaScript采用弱類型的形式,因而一個
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美性受一区二区三区 | 国产 欧美 在线 | 日韩在线第三页 | 久久福利一区二区 | 日韩欧美高清视频 | 国产成人久久777777 | 亚洲欧美日韩第一页 | 国产视频分类 | 欧美在线观看不卡 | 久久亚洲精品国产精品婷婷 | 精品久久久久久国产牛牛app | 国内偷自第一二三区 | 成人区精品一区二区毛片不卡 | 国产精品一区二区三 | 国产成人精品视频一区二区不卡 | 精品国产网站 | 国产一区二区精品久久凹凸 | 国产亚洲一区二区三区不卡 | 国产精品免费视频网站 | 亚洲v日韩v欧美在线观看 | 伊人久久成人成综合网222 | 久国产精品视频 | 亚洲欧美国产精品专区久久 | 精品伊人久久久久7777人 | 国产欧美一区二区精品性色 | 欧美日韩亚洲第一页 | 亚洲伊人色 | 高清国产一区二区三区 | 欧美日韩国产码高清综合人成 | 在线综合亚洲欧美自拍 | 成人毛片一区二区三区 | 欧美日韩精选 | 极品美女国产精品免费一区 | 在线观看国产精品入口 | 素人面接 | 欧美第一精品 | 国产成人欧美一区二区三区的 | 日韩精品一区二区三区不卡 | 国产精品亚洲四区在线观看 | 国产成人欧美一区二区三区vr | 日韩1页 |