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

資訊專欄INFORMATION COLUMN

JavaScript中的數(shù)據(jù)類型

szysky / 2966人閱讀

摘要:八進(jìn)制字面值的第一位必須是,然后是八進(jìn)制數(shù)字序列。十六進(jìn)制字面量的前兩位必須是,后跟任何十六進(jìn)制數(shù)字以及。而自動(dòng)創(chuàng)建的基本包裝類型的對(duì)象,則只存在于一行代碼的執(zhí)行瞬間,然后立即銷毀。

前言
ECMAScript 迄今為止標(biāo)準(zhǔn)定義了 7 種數(shù)據(jù)類型:6 種原始類型-- StringNumberBooleanUndefinedNullSymbol1 種引用類型-- Object

看到這里,你是否已經(jīng)對(duì)它們了如指掌呢。如果你還對(duì)它們之間的定義、轉(zhuǎn)換、檢測(cè)等方面并不是那么清楚,或者已經(jīng)有些模糊。那么,下面就讓我們一起去重新探索、溫習(xí)一遍吧

如果文章中有出現(xiàn)紕漏、錯(cuò)誤之處,還請(qǐng)看到的小伙伴多多指教,先行謝過(guò)

以下↓

原始值
Object 以外的所有類型都是不可變的(值本身無(wú)法被改變),我們稱這些類型的值為 原始值
String類型
JavaScript 的字符串類型用于表示文本數(shù)據(jù).JavaScript 字符串是不可更改的。這意味著字符串一旦被創(chuàng)建,就不能被修改。但是,可以基于對(duì)原始字符串的操作來(lái)創(chuàng)建新的字符串
var a = "hello"

類型轉(zhuǎn)換:

toString()

var num = 2;
num.toString() // "2"
var found = true;
found.toString() // "true"
除去 nullundefined 之外,其余數(shù)據(jù)類型都存在 toString 方法,使用會(huì)報(bào)錯(cuò)

String()

var sym = Symbol(1);
String(sym) // "Symbol"
var num = 10;
String(num)  // "10"
var str;
String(str) // "undefined"
如果值有 toString 方法,則調(diào)用該方法并返回響應(yīng)的結(jié)果

如果是 null 返回 "null"

如果是 undefined 返回 "undefined"

隱式轉(zhuǎn)換

var a = 3;
a + ""  // "3"
var obj = {a: 3};

obj + "" // [object object]
轉(zhuǎn)換規(guī)則和 String 方法一致
Number類型
根據(jù) ECMAScript 標(biāo)準(zhǔn),JavaScript 中只有一種數(shù)字類型:基于 IEEE 754 標(biāo)準(zhǔn)的雙精度 64 位二進(jìn)制格式的值(-(263 -1)263 -1

特殊的數(shù)值類型:

無(wú)窮大:+Infinity()-Infinity()NaN (非數(shù)值,Not-a-Number)

NaN,非數(shù)值。是一個(gè)特殊的 Number 類型,用來(lái)表示一個(gè)本來(lái)要返回?cái)?shù)值的操作未返回?cái)?shù)值的情況

任何涉及 NaN 的操作都返回 NaN

NaN 與任何值都不相等,包括 NaN 本身

40 / NaN  // NaN
NaN === NaN // false
最基本的數(shù)值字面量格式是十進(jìn)制整數(shù),還可以通過(guò)八進(jìn)制或十六進(jìn)制來(lái)表示。八進(jìn)制字面值的第一位必須是 0,然后是八進(jìn)制數(shù)字序列(0 ~ 7)。十六進(jìn)制字面量的前兩位必須是 0x,后跟任何十六進(jìn)制數(shù)字(0 ~ 9 以及 a ~ f)。其中字母可以是大寫也可以是小寫
var num1 = 070; // 八進(jìn)制的56
var num1 = 079; // 無(wú)效的八進(jìn)制,會(huì)解析為十進(jìn)制的79
var num2 = 56; // 十進(jìn)制的56
var num3 = 0x38; // 十六進(jìn)制的56
類型轉(zhuǎn)化方式:Number()parseInt()parseFloat() 以及操作符隱式轉(zhuǎn)換
Boolean類型
表示一個(gè)邏輯實(shí)體,可以有兩個(gè)值:truefalse
var suc = true;
var los = false;

類型轉(zhuǎn)化方式:Boolean()以及操作符隱式轉(zhuǎn)換

Undefined類型
Undefined 類型只有一個(gè)值,即特殊的 undefined 。一個(gè)  聲明但沒(méi)有被賦值的變量會(huì)有個(gè)默認(rèn)值 undefined
var a;  // undefined
Null類型
Null 類型也只有一個(gè)值,即特殊的 null 表示一個(gè)空對(duì)象指針
var foo = null;
Symbol類型
符號(hào) (Symbols)ECMAScript6 版新定義的。符號(hào)類型是唯一的并且是不可修改的
var s = Symbol()
Symbol 函數(shù)前不能使用 new 命令,否則會(huì)報(bào)錯(cuò)。這是因?yàn)樯傻?Symbol 是一個(gè)原始類型的值,不是對(duì)象

Symbol 函數(shù)可以接受一個(gè)字符串作為參數(shù),表示對(duì) Symbol 實(shí)例的描述

引用類型
ECMAScript 中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)據(jù)和功能組織在一起

最常見(jiàn)的引用類型:對(duì)象(Object)、數(shù)組(Array)、函數(shù)(Function)、正則(RegExp)和日期(Date)

引用類型與基本類型之間最大的不同

基本數(shù)據(jù)類型的值是按值訪問(wèn)的,基本類型的值是不可變的

var a = 1;
var b = 1;

a === b  // true

b = a 
b = 2;

a // 1

引用類型的值是按引用訪問(wèn)的,引用類型的值是可變的

var a = {};
var b = {};

a === b  // false

var a = {};
var b = a
b.name = "hello"

a.name // hello
基本包裝類型
為了便于操作基本類型值, ECMAScript 還提供了 3 個(gè)特殊的引用類型:BooleanNumberString
var a = new String("hello")
typeof a // object 
引用類型與基本包裝類型的主要區(qū)別就是對(duì)象的生存期。使用 new 操作符創(chuàng)建的引用類型的實(shí)例,在執(zhí)行流離開(kāi)當(dāng)前作用域之前都一直保存在內(nèi)存當(dāng)中。而自動(dòng)創(chuàng)建的基本包裝類型的對(duì)象,則只存在于一行代碼的執(zhí)行瞬間,然后立即銷毀。這意味著我們不能在運(yùn)行時(shí)給基本類型值添加屬性和方法
var s1 = "some text";
s1.color = "red";
s1.color // undefined

// 但是這樣是可以的

var s1 = new String("some text");
s1.color = "red";
s1.color // red 
不建議顯式的創(chuàng)建基本包裝類型的對(duì)象,因?yàn)樵诤芏鄷r(shí)候會(huì)造成一些讓人很迷惑的東西
var b = new Boolean(false)
var c = b && true
c // true

這樣的情況下,b 這個(gè)變量就是 Boolean 對(duì)象,所以無(wú)論在什么情況下,它都是 true

記得之前看到過(guò)這樣一個(gè)問(wèn)題:

var str = "hello"

typeof str // String

str instanceof String // false

這里的結(jié)果為 false 的原因就是 str 本質(zhì)上是一個(gè)原始值,并不存在 prototype 屬性

當(dāng)然,這里也涉及到了數(shù)據(jù)類型的判斷,有興趣的小伙伴可以 點(diǎn)擊這里 查看如何判斷 JavaScript 中的數(shù)據(jù)類型

后記

不斷總結(jié)溫習(xí)前端方面的知識(shí)點(diǎn)以及有趣的東西,感興趣的小伙伴可以 點(diǎn)擊這里,查看完整版前端總結(jié)知識(shí)點(diǎn),歡迎 star 關(guān)注

期待同行

以上

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103220.html

相關(guān)文章

  • JavaScript學(xué)習(xí)總結(jié)(一)基礎(chǔ)部分

    摘要:前綴規(guī)范每個(gè)局部變量都需要有一個(gè)類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對(duì)象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語(yǔ)言。布爾值與字符串相加將布爾值強(qiáng)制轉(zhuǎn)換為字符串。 基本概念 javascript是一門解釋型的語(yǔ)言,瀏覽器充當(dāng)解釋器。js執(zhí)行時(shí),在同一個(gè)作用域內(nèi)是先解釋再執(zhí)行。解釋的時(shí)候會(huì)編譯function和var這兩個(gè)關(guān)鍵詞定義的變量,編譯完成后從...

    AlanKeene 評(píng)論0 收藏0
  • JS程序

    摘要:設(shè)計(jì)模式是以面向?qū)ο缶幊虨榛A(chǔ)的,的面向?qū)ο缶幊毯蛡鹘y(tǒng)的的面向?qū)ο缶幊逃行┎顒e,這讓我一開(kāi)始接觸的時(shí)候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續(xù)了解設(shè)計(jì)模式必須要先搞懂面向?qū)ο缶幊蹋駝t只會(huì)讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學(xué)習(xí)總結(jié)。知識(shí)只有分享才有存在的意義。 是時(shí)候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...

    melody_lql 評(píng)論0 收藏0
  • JavaScript入門

    摘要:被識(shí)別為結(jié)束符。變量時(shí)被認(rèn)為時(shí)有名字的容器。常量一旦被聲明初始化,值并不能被改變。字符串可以看成右字符組成的數(shù)組,可能被誤認(rèn)為可變的。表達(dá)式?jīng)]有顯示的返回任何內(nèi)容。 Java script 簡(jiǎn)介 Javascript 是一門跨平臺(tái),面向?qū)ο蟮妮p量級(jí)腳本語(yǔ)言,運(yùn)行于Javascript解釋權(quán)/引擎 avascript內(nèi)置了一個(gè)包含一系列對(duì)象的標(biāo)準(zhǔn)庫(kù),比如數(shù)組,日期,數(shù)字和一個(gè)語(yǔ)言元素合...

    AaronYuan 評(píng)論0 收藏0
  • JavaScript中的基本數(shù)據(jù)類型

    摘要:中有種基本數(shù)據(jù)類型和。在介紹的基本數(shù)據(jù)類型前,有必要提到兩個(gè)關(guān)鍵字和。由于中的變量是松散類型的,所以它提供了一種檢測(cè)當(dāng)前變量的數(shù)據(jù)類型的方法,也就是關(guān)鍵字。輸出的結(jié)果為用于表示由零數(shù)字或字符組成的字符序列,即字符串。 如果你是一名IT前端人員,怎么會(huì)不懂JavaScript的美?如果你是一名前端在學(xué)人員,接觸JavaScript后,怎么會(huì)不明白JavaScript中基本數(shù)據(jù)類型?大家都...

    ispring 評(píng)論0 收藏0
  • WebSocket系列之JavaScript中數(shù)字數(shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)

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

    MASAILA 評(píng)論0 收藏0
  • 《JSON必知必會(huì)》學(xué)習(xí)筆記(一)

    摘要:基于對(duì)象字面量,但是獨(dú)立于任何編程語(yǔ)言,真正重要的是表示法本身,所以在學(xué)習(xí)之前不必先學(xué)習(xí)。鍵必須是字符串,值可以是合法的數(shù)據(jù)類型字符串?dāng)?shù)字對(duì)象數(shù)組布爾值或。布爾類型中的布爾值僅可使用小寫形式或,其他任何寫法都會(huì)報(bào)錯(cuò)。 什么是JSON JSON全稱是Javascript Object Notation(對(duì)象表示法),是一種在不同平臺(tái)間傳遞數(shù)據(jù)的文本格式(數(shù)據(jù)交換格式)。常見(jiàn)的數(shù)據(jù)交換格式...

    rickchen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<