国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)

fireflow / 1692人閱讀

摘要:字符串類型的字符串類型用于表示文本數(shù)據(jù)。例如,使用一個分隔符,一個可以模仿一個列表一個的數(shù)組可能更適合一些。不幸的是,當(dāng)一個分隔符在用于列表中的元素時,打亂了這個列表。屬性的值可以是任意類型,包括具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的對象。

編程語言都具有內(nèi)建的數(shù)據(jù)結(jié)構(gòu),但各種編程語言的數(shù)據(jù)結(jié)構(gòu)常有不同之處。本文試圖列出 JavaScript 語言中內(nèi)建的數(shù)據(jù)結(jié)構(gòu)及其屬性,它們可以用來構(gòu)建其他的數(shù)據(jù)結(jié)構(gòu);同時盡可能的描述與其他語言的不同之處。

動態(tài)類型

JavaScript 是一種弱類型或者說動態(tài)語言。這意味著你不用提前聲明變量的類型,在程序運(yùn)行過程中,類型會被自動確定。這也意味著你可以使用同一個變量保存不同類型的數(shù)據(jù):

var foo = 42;    // foo is a Number now
foo = "bar"; // foo is a String now
foo = true;  // foo is a Boolean now

注:TypeScript編譯語言針對此問題做了改進(jìn);

數(shù)據(jù)類型

最新的 ECMAScript 標(biāo)準(zhǔn)定義了 7 種數(shù)據(jù)類型:

6 種原始類型:

Boolean

Null

Undefined

Number

String

Symbol (ECMAScript 6 新定義)

和 Object

原始值(primitive values)
除 Object 以外的所有類型都是不可變的(值本身無法被改變)。例如,與 C 語言不同JavaScript中字符串是不可變的(譯注:如,JavaScript中對字符串的操作一定返回了一個新字符串,原始字符串并沒有被改變)。我們稱這些類型的值為“原始值”

布爾類型(boolean)

布爾表示一個邏輯實體,可以有兩個值:true 和 false。

Null類型

Null 類型只有一個值: null。值 null 特指對象的值未設(shè)置。值 null 是一個字面量,它不像undefined 是全局對象的一個屬性。null 是表示缺少的標(biāo)識,指示變量未指向任何對象。把 null 作為尚未創(chuàng)建的對象,也許更好理解。在 APIs 中,null 常在返回類型是對象,但沒關(guān)聯(lián)值的地方使用。

Undefined類型

一個沒有被賦值的變量會有個默認(rèn)值 undefined,undefined是全局對象的一個屬性。也就是說,它是全局作用域的一個變量。

數(shù)字類型

根據(jù) ECMAScript 標(biāo)準(zhǔn),JavaScript 中只有一種數(shù)字類型:基于 IEEE 754 標(biāo)準(zhǔn)的雙精度 64 位二進(jìn)制格式的值(-(263 -1) 到 263 -1)。它并沒有為整數(shù)給出一種特定的類型。除了能夠表示浮點數(shù)外,還有一些帶符號的值:+Infinity,-Infinity 和 NaN (非數(shù)值,Not-a-Number)。

字符串類型

JavaScript的字符串類型用于表示文本數(shù)據(jù)。它是一組16位的無符號整數(shù)值的“元素”。在字符串中的每個元素占據(jù)了字符串的位置。第一個元素的索引為0,下一個是索引1,依此類推。字符串的長度是它的元素的數(shù)量。

JavaScript 字符串是不可更改的。這意味著字符串一旦被創(chuàng)建,就不能被修改。但是,可以基于對原始字符串的操作來創(chuàng)建新的字符串。例如:

獲取一個字符串的子串可通過選擇個別字母或者使用 String.substr().
兩個字符串的連接使用連接操作符 (+) 或者 String.concat().

可以使用字符串來表達(dá)復(fù)雜的數(shù)據(jù)。以下是一些很好的性質(zhì):

容易連接構(gòu)造復(fù)雜的字串符

字符串容易被調(diào)試(你看到的往往在字符串里)

字符串通常是許多APIs的常見標(biāo)準(zhǔn) (input fields, local storage values, XMLHttpRequest當(dāng)使用responseText等的時候回應(yīng)) 而且他只能與字符串一同使用。

按照慣例, 字符串一般可以用來表達(dá)任何數(shù)據(jù)結(jié)構(gòu)。這不是一個好主意。例如,使用一個分隔符,一個可以模仿一個列表(一個JavaScript的數(shù)組可能更適合一些) 。不幸的是,當(dāng)一個分隔符在用于列表中的元素時,打亂了這個列表。 一個轉(zhuǎn)義字符等。所有這些慣例都變成了一個不存在的維護(hù)負(fù)擔(dān)而沒有正確的工具使用。

表達(dá)文本數(shù)據(jù)和符號數(shù)據(jù)時候推薦使用字符串。當(dāng)表達(dá)復(fù)雜的數(shù)據(jù)時,使用字符串解析和適當(dāng)?shù)目s寫。

符號類型

符號(Symbols)是ECMAScript 第6版新定義的。符號類型是唯一的并且是不可修改的, 并且也可以用來作為Object的key的值(如下). 在某些語言當(dāng)中也有類似的原子類型(Atoms). 你也可以認(rèn)為為它們是C里面的枚舉類型.

Symbol()函數(shù)會返回symbol類型的值,該類型具有靜態(tài)屬性和靜態(tài)方法。它的靜態(tài)屬性會暴露幾個內(nèi)建的成員對象;它的靜態(tài)方法會暴露全局的symbol注冊,且類似于內(nèi)建對象類,但作為構(gòu)造函數(shù)來說它并不完整,因為它不支持語法:"new Symbol()"。每個從Symbol()返回的symbol值都是唯一的。

const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol("foo");

console.log(typeof symbol1);
// expected output: "symbol"

console.log(symbol3.toString());
// expected output: "Symbol(foo)"

console.log(Symbol("foo") === Symbol("foo"));
// expected output: false
對象

在計算機(jī)科學(xué)中, 對象是指內(nèi)存中的可以被 標(biāo)識符引用的一塊區(qū)域.

屬性

在 Javascript 里,對象可以被看作是一組屬性的集合。用對象字面量語法來定義一個對象時,會自動初始化一組屬性。(也就是說,你定義一個var a = "Hello",那么a本身就會有a.substring這個方法,以及a.length這個屬性,以及其它;如果你定義了一個對象,var a = {},那么a就會自動有a.hasOwnProperty及a.constructor等屬性和方法。)而后,這些屬性還可以被增減屬性的值可以是任意類型,包括具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的對象。屬性使用鍵來標(biāo)識,它的鍵值可以是一個字符串或者符號值(Symbol)。

ECMAScript定義的對象中有兩種屬性:數(shù)據(jù)屬性和訪問器屬性。

數(shù)據(jù)屬性

數(shù)據(jù)屬性是鍵值對,并且每個數(shù)據(jù)屬性擁有下列特性:

訪問性屬性
訪問器屬性有一個或兩個訪問器函數(shù) (get 和 set) 來存取數(shù)值,并且有以下特性:

"標(biāo)準(zhǔn)的" 對象, 和函數(shù)節(jié)
一個 Javascript 對象就是鍵和值之間的映射。鍵是一個字符串(或者 Symbol) ,值可以是任意類型的值。 這使得對象非常符合哈希表。

函數(shù)是一個附帶可被調(diào)用功能的常規(guī)對象。

日期
當(dāng)你想要顯示日期時,毋庸置疑,使用內(nèi)建的 Date 對象。

有序集: 數(shù)組和類型數(shù)組

數(shù)組是一種使用整數(shù)作為鍵(integer-key-ed)屬性和長度(length)屬性之間關(guān)聯(lián)的常規(guī)對象。此外,數(shù)組對象還繼承了 Array.prototype 的一些操作數(shù)組的便捷方法。例如, indexOf (搜索數(shù)組中的一個值) or push (向數(shù)組中添加一個元素),等等。 這使得數(shù)組是表示列表或集合的最優(yōu)選擇。

類型數(shù)組(Typed Arrays)是ECMAScript Edition 6中新定義的 JavaScript 內(nèi)建對象,提供了一個基本的二進(jìn)制數(shù)據(jù)緩沖區(qū)的類數(shù)組視圖。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/102731.html

相關(guān)文章

  • WebSocket系列之JavaScript中數(shù)字數(shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)

    摘要:以和為例,說明中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。對象用來表示通用的固定長度的原始二進(jìn)制數(shù)據(jù)緩沖區(qū)。中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)對和有了一個大概的了解,下面讓我們來看下它是如何進(jìn)行二進(jìn)制數(shù)據(jù)操作的。 概述 本文主要通過對JavaScript中數(shù)字?jǐn)?shù)據(jù)與二進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換,讓讀者能夠了解在JavaScript中如何對數(shù)字類型(包括但不限于Number類型)進(jìn)行處理。 二進(jìn)制數(shù)據(jù)在日常...

    MASAILA 評論0 收藏0
  • JavaScript學(xué)習(xí)第一天筆記(變量、常量、數(shù)據(jù)類型

    摘要:變量與常量變量定義變量是存儲數(shù)據(jù)信息的容器。中,變量是弱類型,也被稱為松散類型。三類型布爾類型只有兩個值均為小寫如果大寫活著大小寫混合,識別為另一個變量名稱。 JavaScript簡介 JavaScript是一門跨平臺、面向?qū)ο蟮妮p量級腳本語言,運(yùn)行于JavaScript解釋器或者引擎中。JavaScript中,包括三個主要的部分1.核心語法內(nèi)容(ECMAScript)2.文檔對象模型...

    tinysun1234 評論0 收藏0
  • JavaScript--變量基本數(shù)據(jù)類型

    摘要:中變量可能包含兩種不同的數(shù)據(jù)類型的值基本類型和引用類型。本文主要介紹基本數(shù)據(jù)類型及其特點。操作符在介紹基本類型值之前,先說下操作符,操作符會返回數(shù)據(jù)類型的字符串表示。所有未初始化的變量均會保存該值。 前言JavaScript中的變量為松散類型,所謂松散類型就是指當(dāng)一個變量被申明出來就可以保存任意類型的值,就是不像SQL一樣申明某個鍵值為int就只能保存整型數(shù)值,申明varchar只能保...

    XanaHopper 評論0 收藏0
  • 前端基礎(chǔ)進(jìn)階(一):內(nèi)存空間詳細(xì)圖解

    摘要:一棧數(shù)據(jù)結(jié)構(gòu)與不同,中并沒有嚴(yán)格意義上區(qū)分棧內(nèi)存與堆內(nèi)存。引用數(shù)據(jù)類型的值是保存在堆內(nèi)存中的對象。不允許直接訪問堆內(nèi)存中的位置,因此我們不能直接操作對象的堆內(nèi)存空間。為了更好的搞懂變量對象與堆內(nèi)存,我們可以結(jié)合以下例子與圖解進(jìn)行理解。 showImg(https://segmentfault.com/img/remote/1460000009784102?w=1240&h=683); ...

    _Suqin 評論0 收藏0
  • JavaScript設(shè)計模式開發(fā)實踐 | 01 - 面向?qū)ο蟮?em>JavaScript

    摘要:在中,并沒有對抽象類和接口的支持。例如,當(dāng)對象需要對象的能力時,可以有選擇地把對象的構(gòu)造器的原型指向?qū)ο螅瑥亩_(dá)到繼承的效果。本節(jié)內(nèi)容為設(shè)計模式與開發(fā)實踐第一章筆記。 動態(tài)類型語言 編程語言按數(shù)據(jù)類型大體可以分為兩類:靜態(tài)類型語言與動態(tài)類型語言。 靜態(tài)類型語言在編譯時已確定變量類型,動態(tài)類型語言的變量類型要到程序運(yùn)行時,待變量被賦值后,才具有某種類型。 而JavaScript是一門典型...

    suxier 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<