摘要:八進(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 種原始類型-- String、Number、 Boolean、 Undefined、Null 和 Symbol;1 種引用類型-- 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"
除去 null 與 undefined 之外,其余數(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è)值:true 和 false
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; // undefinedNull類型
Null 類型也只有一個(gè)值,即特殊的 null 表示一個(gè)空對(duì)象指針
var foo = null;Symbol類型
符號(hào) (Symbols) 是 ECMAScript 第 6 版新定義的。符號(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è)特殊的引用類型:Boolean、Number 和 String
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ī)范每個(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)鍵詞定義的變量,編譯完成后從...
摘要:設(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ù)組的那些迭代方法~ ...
摘要:被識(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ǔ)言元素合...
摘要:中有種基本數(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ù)類型?大家都...
摘要:以和為例,說(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ù)在日常...
摘要:基于對(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ù)交換格式...
閱讀 1847·2021-11-22 15:25
閱讀 3912·2021-11-17 09:33
閱讀 2507·2021-10-12 10:12
閱讀 1802·2021-10-09 09:44
閱讀 3235·2021-10-08 10:04
閱讀 1313·2021-09-29 09:35
閱讀 1947·2019-08-30 12:57
閱讀 1303·2019-08-29 16:22