摘要:解釋一行,執行一行這也意味著你可以使用同一個變量保存不同類型的數據二數據類型最新的標準定義了種數據類型種原型數據類型布爾值,和一個表明值的特殊關鍵字。我們稱這些類型的值為原始值四布爾值布爾值數據類型只能有兩個值,它們是文本和。
一、動態類型
JavaScript 是一種弱類型或者說動態語言。這意味著你不用提前聲明變量的類型,在程序運行過程中,類型會被自動確定。(解釋一行,執行一行)這也意味著你可以使用同一個變量保存不同類型的數據:二、數據類型
最新的 ECMAScript 標準定義了 7 種 數據類型:
6種 原型數據類型:
Boolean. 布爾值,true 和 false.
null. 一個表明 null 值的特殊關鍵字。 JavaScript 是大小寫敏感的,因此 null 與 Null、NULL或其他變量完全不同。
undefined. 變量未定義時的屬性。
Number. 表示數字,例如: 42 或者 3.14159。
String. 表示字符串,例如:"Howdy"
Symbol ( 在 ECMAScript 6 中新添加的類型).。一種數據類型,它的實例是唯一且不可改變的。
以及 Object 對象
三、原始值( primitive values )除 Object 以外的所有類型都是不可變的(值本身無法被改變)。例如,與 C 語言不同,JavaScript中字符串是不可變的(譯注:如,JavaScript 中對字符串的操作一定返回了一個新字符串,原始字符串并沒有被改變)。我們稱這些類型的值為“原始值”:
Boolean
null
undefined
Number
String
Symbol
四、Boolean(布爾值)布爾值數據類型只能有兩個值,它們是文本 true 和 false。布爾值是一個真值:它指定條件是否為 true。4.1 比較相同
true 和 1 比較是相同,false 和 0 比較是相同(是 “==” 比較),因為內部會實現數據類型轉化,將 true 轉換成 1,將 false 轉換成 0。但是使用 “===” 就不相等了,因為他們的數據類型不等。
4.2 Boolean()雖然Boolean類型的字面值只有兩個,但JavaScript中所有類型的值都有與這兩個Boolean值等價的值。要將一個值轉換為其對應的Boolean值,可以調用類型轉換函數Boolean(),例如:
在這個例子中,字符串message被轉換成了一個Boolean值,該值被保存在messageAsBoolean變量中。可以對任何數據類型的值調用Boolean()函數,而且總會返回一個Boolean值。至于返回的這個值是true還是false,**取決于要轉換值的數據類型及其實際值。
4.3 數據類型及其對象的轉換規則數據類型 | 轉換為true的值 | 轉換為false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空的字符串 | ""(空字符串) |
Number | 任何非0數值(包括無窮大) | 0和NAN |
Object | 任何對象 | null |
Undefined | 不適用 | undefined |
Null 數據類型在 JavaScript 中僅具有一個值:null。null 關鍵字不能用作函數或變量的名稱。5.1 清除變量內容
包含 null 的變量不包含有效的數字、字符串、布爾值、數組或對象。通過為變量賦 null值可以清除變量的內容(不刪除變量)。
5.2 typeof檢測null返回object(1)在 JavaScript 中,null 與 0 不同(在 C 和 C++ 中)。
(2)JavaScript 中的 typeof 運算符將 null 值報告為 Object 類型而不是 Null 類型。(從邏輯角度來看,null值表示一個空對象指針)
5.3 初始化為null如果定義的變量準備在將來用于保存對象,那么最好將該變量初始化為null而不是其他值。這樣一來,只要直接檢測null值就可以知道相應的變量是否已經保存了一個對象的引用。
5.4 undefined值派生自null值實際上,undefined值是派生自null值的,因此ECMA-262規定對它們的相等性測試要返回true。
盡管null和undefined有這樣的關系,但它們的用途完全不同。無論在什么情況下都沒有必要把一個變量的值顯式地設置為undefined,可是同樣的規則對null卻不適用。
換句話說,只要意在保存對象的變量還沒有真正保存對象,就應該明確地讓該變量保存null值。這樣做不僅可以體現null作為空對象指針的慣例,而且也有助于進一步區分null和undefined。
六、Undefined 數據類型Undefined 類型只有一個值,即特殊的 undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是 undefined。
undefined 翻譯中文 → 未定義(defined 翻譯中文 → 定義)
6.1 兼容舊版瀏覽器在早期的JavaScript版本中是沒有規定undefined這個值的,所以在有些框架中為了兼容舊版瀏覽器,會給window對象添加undefined值。
七、null 和 undefined 的區分1、若使用 “==” 進行比較,則他們是相等的,因為比較的是值
2、區分他們的兩種方法(比較他們的數據類型)
(1)使用 typeof 將他們區分
(2)若使用全等 “===” ,比較的是值和數據類型,只有全都相同才返回 true
八、Number(數字)Number類型用來表示整數值和浮點數值,還有一種特殊的數值,即 NaN(非數值 Not a Number)。8.1 整數值
整數值可以是正整數、負整數和 0。 它們可通過以 10 為基數(十進制)、以 16 為基數(十六進制)和以 88.1.1 十六進制
為基數(八進制)來表示。 JavaScript 中的大多數數字都寫成十進制形式。
通過在整數前面加前導“0x”(零和 x|X)來表示十六進制(“hex”)整數。 字母 A 到 F 以單個數字的形式表示以 10 為基數的 10 到 15。 字母 A 到 F 用于以單個數字的形式表示以 10 為基數的 10 到 15。 即,0xF 相當于 15,0x10 相當于 16。
8.1.2 八進制通過在八進制整數前面加前導“0”(零)來表示八進制整數。 八進制整數只包含 0 到 7 的數字。 具有前導“0”并包含數字“8”和/或“9”的數字將被解釋為十進制數字。
8.2 浮點數值浮點值可以是帶有小數部分的整數。此外,還可以用科學計數法來表示它們。即,使用大寫或小寫字母“e”來表示“10 的冪”。
JavaScript 使用數字表示形式的 8 字節 IEEE 754 浮點標準來表示數字。 這意味著您可以編寫最大為 1.79769x10308 和最小為 5x10-324 的數字。 包含小數點且小數點前面有單個“0”的數字被解釋為十進制浮點數。
8.3 NaNNaN → 英文翻譯 Not A Number
NaN 用于表示一個本來要返回數值的操作數未返回數值的情況(這樣就不會拋出錯誤了)。例如,在其他編程語言中,任何數值除以0都會導致錯誤,從而停止代碼執行。但在JavaScript中,任何數值除以0會返回NaN,因此不會影響其他代碼的執行。8.3.1 兩個特點
NaN本身有兩個非同尋常的特點。首先,任何涉及NaN的操作(例如NaN/10)都會返回NaN,這個特點在多步計算中有可能導致問題。其次,NaN與任何值都不相等,包括NaN本身。例如,下面的代碼會返回false。
8.3.2 isNaN()函數isNaN()函數,用于判斷是否是一個非數字類型。如果傳入的參數是一個非數字類型,那么返回true;否則返回false;
isNaN()函數,傳入一個參數,函數會先將參數轉換為數值。如果參數類型為對象類型,會先調用對象的valueOf()方法, 再確定該方法返回的值是否可以轉換為數值類型。如果不能,再調用對象的toString()方法,再確定返回值。
九、String(字符串)JavaScript的字符串類型用于表示文本數據。9.1 索引和長度
String是一組16位的無符號整數值的“元素”。在字符串中的每個元素占據了字符串的位置。第一個元素的索引為0,下一個是索引1,依此類推。字符串的長度是它的元素的數量。
9.2 不可更改不同于類 C 語言,JavaScript 字符串是不可更改的。這意味著字符串一旦被創建,就不能被修改。但是,可以基于對原始字符串的操作來創建新的字符串。
(1)獲取一個字符串的子串可通過選擇個別字母或者使用 String.substr()
(2)兩個字符串的連接使用連接操作符 (+) 或者 String.concat()
9.3 toString()toString()方法將其他數據類型轉換成 String 類型。但若對 null 或 undefined 進行操作,則會報錯。
9.4 String()String()方法同樣能實現 toString()的效果,并且可以對 null 和 undefined 進行操作。
原理:先調用 toString(),如果可以轉換成字符串,就將結果直接返回。否,再進行判斷是 null 還是 undefined,然后返回‘null" 或 ‘undefined"
十、Symbol(符號類型)符號(Symbols)是ECMAScript 第6版新定義的。符號類型是唯一的并且是不可修改的,并且也可以用來作為Object的key的值。在某些語言當中也有類似的原子類型(Atoms),你也可以認為為它們是C里面的枚舉類型。
閱讀更多
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93759.html
摘要:被識別為結束符。變量時被認為時有名字的容器。常量一旦被聲明初始化,值并不能被改變。字符串可以看成右字符組成的數組,可能被誤認為可變的。表達式沒有顯示的返回任何內容。 Java script 簡介 Javascript 是一門跨平臺,面向對象的輕量級腳本語言,運行于Javascript解釋權/引擎 avascript內置了一個包含一系列對象的標準庫,比如數組,日期,數字和一個語言元素合...
摘要:以和為例,說明中的數字數據如何轉換為二進制數據。對象用來表示通用的固定長度的原始二進制數據緩沖區。中的數字數據如何轉換為二進制數據對和有了一個大概的了解,下面讓我們來看下它是如何進行二進制數據操作的。 概述 本文主要通過對JavaScript中數字數據與二進制數據之間的轉換,讓讀者能夠了解在JavaScript中如何對數字類型(包括但不限于Number類型)進行處理。 二進制數據在日常...
摘要:變量與常量變量定義變量是存儲數據信息的容器。中,變量是弱類型,也被稱為松散類型。三類型布爾類型只有兩個值均為小寫如果大寫活著大小寫混合,識別為另一個變量名稱。 JavaScript簡介 JavaScript是一門跨平臺、面向對象的輕量級腳本語言,運行于JavaScript解釋器或者引擎中。JavaScript中,包括三個主要的部分1.核心語法內容(ECMAScript)2.文檔對象模型...
摘要:通常一個完成的不僅僅包含了還包括了以及相關版本該版本在中使用。基于原型函數先行的語言使用基于原型的的繼承機制,函數是的第一等公民其他相關的語言特性編譯型語言把做好的源程序全部編譯成二進制代碼的可運行程序。 轉載請注明出處,創作不易,更多文章請戳 https://github.com/ZhengMaste... 前言:JavaScript誕生于1995年,它是一門腳本語言,起初的目...
摘要:字符串類型的字符串類型用于表示文本數據。例如,使用一個分隔符,一個可以模仿一個列表一個的數組可能更適合一些。不幸的是,當一個分隔符在用于列表中的元素時,打亂了這個列表。屬性的值可以是任意類型,包括具有復雜數據結構的對象。 編程語言都具有內建的數據結構,但各種編程語言的數據結構常有不同之處。本文試圖列出 JavaScript 語言中內建的數據結構及其屬性,它們可以用來構建其他的數據結構;...
閱讀 2153·2021-11-15 11:36
閱讀 1461·2021-09-23 11:55
閱讀 2486·2021-09-22 15:16
閱讀 2028·2019-08-30 15:45
閱讀 1862·2019-08-29 11:10
閱讀 1025·2019-08-26 13:40
閱讀 915·2019-08-26 10:44
閱讀 3168·2019-08-23 14:55