<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【JavaScript 教程】第二章基礎(chǔ)知識03—JavaScript 數(shù)據(jù)類型

          共 5936字,需瀏覽 12分鐘

           ·

          2021-10-17 21:54

          英文 | https://www.javascripttutorial.net/

          譯文 | 楊小愛


          在上節(jié)中,我們學(xué)習(xí)了JavaScript的變量,錯過的小伙伴可以點擊文章《【JavaScript 教程】第二章基礎(chǔ)知識02—JavaScript 變量》進(jìn)行學(xué)習(xí)。

          那么,在今天的內(nèi)容中,我們將一起來學(xué)習(xí)JavaScript 數(shù)據(jù)類型及其獨特的特性。

          JavaScript 有六種原始數(shù)據(jù)類型:

          • null

          • undefined

          • boolean

          • number

          • string

          • symbol (僅適用于 ES6)

          和一種稱為Object的復(fù)雜數(shù)據(jù)類型。
          JavaScript 是一種動態(tài)語言或松散類型,因此變量不與任何類型相關(guān)聯(lián)。但是,它的價值確實如此。
          換句話說,同一個變量可以隨時保存不同類型的值。例如:
          let counter = 120; // counter is a numbercounter = false;   // counter is now a booleancounter = "foo";   // counter is now a string

          要獲取變量值的當(dāng)前類型,請使用 typeof 運算符:

          let counter = 120; // counter is a numberconsole.log(typeof(counter)); // "number"
          counter = false; // counter is now a booleanconsole.log(typeof(counter)); // "boolean"
          counter = "Hi"; // counter is now a stringconsole.log(typeof(counter)); // "string"

          輸出:

          "number""boolean""string"

          1、Undefined類型

          未定義類型是一種具有未定義值的原始類型。

          默認(rèn)情況下,當(dāng)一個變量被聲明但未初始化時,它會被賦值為 undefined。

          考慮以下示例:

          let counter;console.log(counter);        // undefinedconsole.log(typeof counter); // undefined

          在這個例子中,counter是一個變量。由于counter尚未初始化,因此它被分配了undefined的值。counter的類型也是未定義的。

          需要注意的是,當(dāng)你在一個尚未聲明的變量上調(diào)用 typeof 運算符時,它也會返回 undefined ,這一點很重要:

          console.log(typeof undeclaredVar); // undefined

          2、Null類型

          null 類型是第二種基本數(shù)據(jù)類型,它也只有一個值:null。

          Javascript 定義 null 是一個空對象指針。請參閱以下示例:

          let obj = null;console.log(typeof obj); // object

          將稍后保存對象的變量分配給 null 是一個好習(xí)慣,以便你可以使用 if 語句檢查對象是否為 null,如下所示:

          if(obj != null) {   // call method of the object}

          JavaScript 定義 null 等于 undefined,如下面的語句所示。

          console.log(null == undefined); // true

          3、Number類型

          JavaScript 使用 IEEE-754 格式來表示整數(shù)和浮點數(shù)。

          整數(shù)

          以下語句聲明了一個保存整數(shù)的變量。

          let num = 100;

          如果要表示八進(jìn)制(基數(shù)為 8)文字,請將第一個數(shù)字設(shè)為零 (0),后跟八進(jìn)制數(shù)字(0 到 7),如下所示:

          let oct = 060// octal for 48

          如果八進(jìn)制數(shù)的字面量超出范圍,JavaScript 會將其視為十進(jìn)制數(shù),如下例所示。

          let d = 090; // intepreted as 90


          為避免混淆,ES6 允許您使用前綴 0o后跟從 0 到 7 的八進(jìn)制數(shù)字序列來指定八進(jìn)制文字:

          let v = 0o45;console.log(v); // 37


          要創(chuàng)建十六進(jìn)制(基數(shù)為 16)文字,您使用 0x(小寫)作為前兩個字符,后跟任意數(shù)量的十六進(jìn)制數(shù)字(0 到 9,以及 A 到 F)。

          let h = 0xf; // same as 0xF hexadecimal for 15
          浮點數(shù)字
          要表示浮點數(shù),您需要包含一個小數(shù)點,后跟至少一個數(shù)字。例如:
          let f1 = 12.5; let f2 = .3;   // same as 0.3, also valid but not recommended
          如果數(shù)字看起來是整數(shù),JavaScript 會將浮點數(shù)轉(zhuǎn)換為整數(shù)。
          原因是 Javascript 總是希望使用更少的內(nèi)存,因為浮點值使用的內(nèi)存是整數(shù)值的兩倍。
          let f3 = 200.00; // interpreted as integer 200

          JavaScript 允許您使用 e-notation 來表示非常大或非常小的數(shù)字,如下例所示。

          let f4 = 2.17e6; // ~ 2170000

          JavaScript 提供了可以使用Number.MIN_VALUE和訪問的數(shù)字的最小值和最大值Number.MAX_VALUE。

          此外,JavaScript 使用Infinity和-Infinity來表示有限的數(shù)字,包括正數(shù)和負(fù)數(shù)。

          請參閱以下示例:

          console.log(Number.MAX_VALUE); // 1.7976931348623157e+308console.log(Number.MIN_VALUE); // 5e-324console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinityconsole.log(-Number.MAX_VALUE - Number.MAX_VALUE); // -Infinity

          NaN

          JavaScript 有一個特殊的數(shù)值叫做 NaN,它代表 Not a Number。事實上,它意味著一個無效的數(shù)字。

          例如,字符串除以數(shù)字返回 NaN,如下例所示。

          console.log('a'/2); // NaN;

          在NaN有兩個特點:

          • 任何帶有 NaN 的操作都會返回 NaN。

          • NaN 不等于任何值,包括其自身。

          這里有些例子:

          console.log(NaN/2); // NaNconsole.log(NaN == NaN); // false

          4、String類型

          在 JavaScript 中,字符串是零個或多個字符的序列。文字字符串以單引號 (‘) 或雙引號 (“) 開頭和結(jié)尾。

          以雙引號開頭的字符串必須以雙引號結(jié)尾,以單引號開頭的字符串必須以單引號結(jié)尾。

          這里有些例子:

          let greeting = 'Hi';let s = "It's a valid string";let str = 'I\'m also a string'; // use \ to escape the single quote (')
          JavaScript 字符串是不可變的。這意味著一旦創(chuàng)建字符串就不能修改它。
          但是,您可以根據(jù)對原始字符串的操作創(chuàng)建一個新字符串,如下所示:
          let str = 'JavaScript';str = str + ' String';
          在這個例子中:
          首先,聲明 str 變量并將其初始化為“JavaScript”字符串。
          其次,使用 + 運算符將 'JavaScript' 與 'String' 結(jié)合起來,使其值為 'Javascript String'。
          在幕后,JavaScript 引擎創(chuàng)建一個新字符串,其中包含新字符串“JavaScript String”并銷毀另外兩個原始字符串“JavaScript”和“String”。
          5、Boolean類型
          boolean 類型有兩個值:true 和 false,小寫。
          以下示例聲明了兩個保存布爾值的變量。
          let inProgress = true;let completed = false;console.log(typeof completed); // boolean

          JavaScript 允許將其他類型的值轉(zhuǎn)換為 true 或 false 的布爾值。

          要將另一種數(shù)據(jù)類型的值轉(zhuǎn)換為布爾值,請使用布爾函數(shù)。下表顯示了轉(zhuǎn)換規(guī)則:

          請參閱以下演示:

          console.log(Boolean('Hi'));// trueconsole.log(Boolean(''));  // false
          console.log(Boolean(20)); // trueconsole.log(Boolean(Infinity)); // trueconsole.log(Boolean(0)); // false
          console.log(Boolean({foo: 100})); // true on non-empty objectconsole.log(Boolean(null));// false

          6、Symbol類型

          JavaScript 在 ES6 中添加了一個原始類型:symbol。與其他原始類型不同,該symbol類型沒有文字形式。

          要創(chuàng)建符號,請按如下方式調(diào)用Symbol函數(shù):

          let s1 = Symbol();

          請注意,Symbol 是一個函數(shù),而不是一個對象構(gòu)造函數(shù),因此,您不能使用 new 運算符。如果你這樣做,你會得到一個 TypeError。

          每次調(diào)用 Symbol 函數(shù)時,它都會創(chuàng)建一個新的唯一值。

          console.log(Symbol() == Symbol()); // false

          您可以將描述性字符串傳遞到 Symbol 函數(shù)中以進(jìn)行記錄和調(diào)試。

          let s2 = Symbol('event.save');

          當(dāng)您對Symbol變量調(diào)用 toString() 方法時,它會返回一個更具描述性的名稱,如下所示:

          console.log(s2.toString()); // Symbol(event.save)

          您可以將Symbol用于多種用途。其中之一是創(chuàng)建一個不能與任何其他值發(fā)生沖突的類似字符串的常量。

          下面的示例創(chuàng)建一個表示click事件的Symbol。

          const click = Symbol('click');

          字符串 'click' 可能用于不同的目的而不是唯一的。但是,click symbol 絕對是獨一無二的。

          7、Object類型

          在 JavaScript 中,對象是屬性的集合,其中每個屬性都定義為一個鍵值對。

          以下示例使用對象字面量形式定義了一個空對象:

          let emptyObject = {};

          以下示例定義了具有兩個屬性的 person 對象:

          let person = {    firstName: 'John',    lastName: 'Doe'};

          對象的屬性名稱可以是任何字符串。如果它不是有效的 JavaScript 標(biāo)識符,您可以在屬性名稱周圍使用引號。

          例如,如果您有一個屬性 first-name,則必須使用諸如“first-name”之類的引號,但 firstName 是有效的 JavaScript 標(biāo)識符,因此引號是可選的。

          如果您有多個屬性,請使用逗號 (,) 來分隔這些對。

          JavaScript 允許您嵌套對象,如下例所示:

          let contact = {    firstName: 'John',    lastName: 'Doe',    email: '[email protected]',    phone: '(408)-555-9999',    address: {        building: '4000',        street: 'North 1st street',        city: 'San Jose',        state: 'CA',        country: 'USA'    }}
          聯(lián)系人對象由名字、姓氏、電子郵件、電話和地址屬性組成。
          地址屬性本身也是一個對象,由建筑物、街道、城市、州和國家屬性組成。
          您可以使用兩種表示法訪問對象的屬性:點表示法 (.) 和類似數(shù)組的表示法 ([])。
          下面的示例使用點符號 (.) 來訪問聯(lián)系人對象的 firstName 和 lastName 屬性。
          console.log(contact.firstName);console.log(contact.lastName);

          要獲取嵌套對象的屬性,請使用以下形式:

          console.log(contact.address.country);

          如果你引用一個不存在的屬性,你會得到一個 undefined 值,如下所示:

          console.log(contact.age); // undefined

          以下示例使用類似數(shù)組的表示法來訪問聯(lián)系人對象的電子郵件和電話屬性。

          console.log(contact['phone']); // '(408)-555-9999'console.log(contact['email']); // '[email protected]'

          除了對象字面量形式,您還可以使用 new 關(guān)鍵字創(chuàng)建一個新對象,如下所示:

          let customer = new Object();

          并為對象的屬性賦值:

          customer.name = 'ABC Inc.';

          在 JavaScript 中,所有對象都派生自 Object 類型。我們將在后面教程中更多地討論 Object 類型。

          總結(jié)

          JavaScript 有六種基本類型:Number、String、Boolean、Null、Undefined和Symbol。

          它還有一個復(fù)雜的類型,稱為Object。


          學(xué)習(xí)更多技能

          請點擊下方公眾號

          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月婷婷激情网 | 黄色A视频 | 亚洲天天操 | 奇米狠狠二区 | 熟女作爱一区二区视频 |