<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談Javascript數據類型

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-09 16:43 ? 次閱讀

avaScript原始數據類型包括有object,null,undefined,boolean,number,string。

symbol從ES2015開始可用,bigint從ES2020開始可用。其中object是一個復雜的數據類型。

JavaScript是一種動態類型語言。這意味著變量不與類型相關聯。換句話說,一個變量可以保存不同類型的值。

例如在下面的type.js文件中,counter變量初始化的值是120,之后被賦值為布爾值false ,然后又被賦值為字符串foo,

let counter = 120; // counter is a number
counter = false;   // counter is now a boolean
counter = "foo";   // counter is now a string

如果你需要知道當前變量存儲的值類型,可以使用javascript的typeof運算符,獲得變量的數據類型。

let counter = 120;
console.log(typeof(counter)); // "number"


counter = false; 
console.log(typeof(counter)); // "boolean"


counter = "Hi";
console.log(typeof(counter)); // "string"

undefined 未定義

undefined類型是只有一個原始類型的值undefined。默認情況下,當一個變量被聲明但未初始化時,它被賦值為undefined。

在下面的示例中,我們在第一行聲明一個變量counter。由于counter尚未初始化,因此為其分配的值是undefined。counter的類型也是undefined。

值得注意的是,當您使用尚未聲明的變量時,typeof運算符也會返回undefined。


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

null 空類型

null類型是第二種原始數據類型,也只有一個值null。

當你在瀏覽器的控制臺運行代碼typeof null時,代碼將會返回一個對象。這是一個在Javascript的bug。

雖然有人曾經提出過修復此錯誤,但被拒絕。原因是修復此Bug會破壞許多現有站點。

在JavaScript數據類型null是等于undefined的,因為在Javascript的null值是等于布爾值false,undefined也是如此。


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

number 數值類型

JavaScript使用用number類型來表示整數和浮點數。下面的語句聲明一個變量并用一個整數初始化它的值。要表示浮點數,請包含一個小數點,后跟至少一個數字。

如果數字看起來是整數,例如代碼let price = 200.00;,JavaScript會自動將浮點數轉換為整數。

原因是Javascript總是希望使用更少的內存,因為浮點值使用的內存是整數值的兩倍。

如果要獲取數值類型的范圍,可以打開瀏覽器控制臺運行代碼Number.MIN_VALUE獲取最小值和運行代碼Number.MAX_VALUE獲取最大值。


let num = 100;
let price= 12.5;
let discount = 0.05;

NaN 非數值類型

NaN代表非數值。它是一個特殊的數值,表示一個無效的數字。當強制轉換字符串為值時,它會返回NaN。

NaN有兩個特點。第一特點是所有與NaN的運算都會返回NaN ,例如代碼console.log(NaN/2);。

第二個特點是NaN不等于任何值,包括它自己本省,例如代碼console.log(NaN == NaN);。

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

string 字符串類型

在JavaScript,字符串是零個或多個字符的序列。字符串文字以單引號 '或雙引號 " 開始和結束。

以雙引號開頭的字符串必須以雙引號結尾。同樣,以單引號開頭的字符串也必須以單引號結尾。

如果要在字符串中使用單引號或雙引號,則需要使用反斜杠對其進行轉義。例如代碼let message = 'I\\'m also a valid string';

JavaScript字符串是不可變的。這意味著它一旦創建就無法修改。但是,您可以從現有字符串創建新字符串。

string.js例子中首先,聲明str變量并將其初始化為'JavaScript'。其次,使用加號運算符組合'JavaScript'' String',使其值成功為'Javascript String'。

在幕后,JavaScript引擎創建一個新字符串來保存'JavaScript String'并銷毀原始字符串'JavaScript''String'。

let str = 'JavaScript';
str = str + ' String';

boolean 布爾類型

布爾值類型有兩個字面值,分別是truefalse。下面的示例聲明了兩個保存布爾值的變量。

JavaScript允許將其他類型的值轉換為布爾值的truefalse。要將另一種數據類型的值轉換為布爾值,請使用Boolean()函數。

確切的說Boolean()不是函數,它是一個對象,用于創建布爾值,Boolean接受一個參數,并將指定的參數轉換為布爾值。


let inProgress = true;
let completed = false;


console.log(typeof completed); // boolean
console.log(Boolean('Hi'));// true
console.log(Boolean(''));  // false


console.log(Boolean(20));  // true
console.log(Boolean(Infinity));  // true
console.log(Boolean(0));  // false


console.log(Boolean({foo: 100}));  // true on non-empty object
console.log(Boolean(null));// false

symbol 符號類型

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

要創建符號,請調用函數Symbol,每次調用符號函數都會創建一個新的唯一值。

symbol值可以作為對象屬性的標識符,通常使用它來創建對象的私有屬性與方法數據類型僅有的目的。


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

bigint 類型

**BigInt 是一種內置對象,它提供了一種方法來表示大于2 ^53^ –1的整數。這原本是 Javascript中可以用Number表示的最大數字。 BigInt**可以表示任意大的整數。

它在某些方面類似于Number,但是也有幾個不同點,不能用于Math對象中的方法。

不能和任何Number實例混合運算,兩者必須轉換成同一種類型。在兩種類型來回轉換時要小心,因為BigInt變量在轉換成Number變量時可能會丟失精度。

要創建bigint數字可以在一個整數的后面加追加字母n ,例如10n,或者調用函數 BigInt()并傳遞一個整數值或著是字符串的數字。

如果傳遞的是字符串的數字, BigInt() 將會強制轉換字符串類型為數值。


const theBiggestInt = 9007199254740991n;


const alsoHuge = BigInt(9007199254740991);

object 對象類型

在JavaScript,對象是屬性的集合,每個屬性都定義為鍵值對。對象的屬性名稱可以是任何字符串或者符號symbol的值。

如果屬性名稱不是有效標識符,您可以在屬性名稱周圍使用引號。例如,如果對象的屬性名稱是full-name,則必須將其放在引號中。

對象的屬性不僅可以保存簡單值,也可以保存復雜的數據類型對象。


let contact = {
    firstName: 'web',
    lastName: 'myfreax',
    'full-name':'web@myfreax'
    email: 'web@myfreax.com',
    phone: '408555-9999',
    address: {
        building: '4000',
        street: 'North 1st street',
        city: 'San Jose',
        state: 'CA',
        country: 'USA'
    }
}

要訪問對象的屬性,您可以使用點符號. 或者類似數組的符號[]。當要訪問屬性嵌套的對象時,也可以繼續使用點符號.訪問嵌套的屬性。

如果你訪問一個不存在的屬性,你會得到一個未定義的值。

console.log(contact.firstName);
console.log(contact.lastName);
console.log(contact.age); // undefined
console.log(contact['phone']); // '(408)-555-9999'
console.log(contact['email']); // 'web@myfreax'
console.log(contact['address']['building']); // '4000'
console.log(contact.address.building); // '4000'

結論

JavaScript的基本類型是number、string、boolean、null、undefinedsymbol以及bigint和復雜類型對象object。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • javascript
    +關注

    關注

    0

    文章

    513

    瀏覽量

    53490
  • 數據類型
    +關注

    關注

    0

    文章

    229

    瀏覽量

    13535
  • undefined
    +關注

    關注

    0

    文章

    11

    瀏覽量

    2666
收藏 人收藏

    評論

    相關推薦

    GaussDB 數據類型介紹

    GaussDB 數據庫 GaussDB 是華為基于 openGauss 自研生態推出的云化企業級分布式關系型數據庫,它支持多種數據類型,包括數值、字符、日期等。在使用 GaussDB 時,可能需要
    的頭像 發表于 06-05 16:40 ?1352次閱讀
    GaussDB <b class='flag-5'>數據類型</b>介紹

    JavaScript 【1】 基礎數據類型

    。推薦閱讀:https://www.runoob.com/js/js-tutorial.html這里我們重點介紹JavaScript的9個知識點。key- val二、數據類型:值類型(基本類型
    發表于 07-17 10:32

    vhdl數據類型

    VHDL中的標識符可以是常數、變量、信號、端口、子程序或參數的名字。VHDL中的數據類型可以分成四大類: 標量型(SCALAR TYPE):屬單元素的最基本的數據類型,通常用于描述一個單值數據對象
    發表于 03-30 15:59 ?11次下載

    51單片機學習筆記(9)——C51的基本數據類型和擴充數據類型

    基本數據類型:擴充數據類型
    發表于 11-14 13:36 ?1次下載
    51單片機學習筆記(9)——C51的基本<b class='flag-5'>數據類型</b>和擴充<b class='flag-5'>數據類型</b>

    Struct結構數據類型

    Struct類型是一種由多個不同數據類型元素組成的數據結構,其元素可以是基本數據類型,也可以是Struct、數組等復雜數據類型以及PLC
    的頭像 發表于 07-25 17:02 ?2585次閱讀

    結構數據類型(Struct)及應用案例

    Struct數據類型使用非常靈活,隨時可以使用,但是相對于PLC數據類型 (UDT) 有以下缺點,所以建議需要使用Struct類型時,可以使用PLC數據類型(UDT)代替。
    的頭像 發表于 07-27 16:10 ?1432次閱讀

    什么是數據類型轉換

    常用的3種數據類型:1、Python數據類型第一種:字符串(str)。 2、Python數據類型第二種:整數(int)。 3、Python數據類型第三種:浮點數(float)。
    的頭像 發表于 02-23 15:21 ?1265次閱讀

    定義數據類型

    在運算之前我們必須首先定義出數據類型,定義出腳本支持的數據類型,這是運算的基礎。 這一小節我們將定義出數據類型,在這里我們暫時定義四個數據類型:
    的頭像 發表于 03-03 10:10 ?681次閱讀

    ARRAY 數據類型的變量

    要求 全局數據塊已打開。 操作步驟 要聲明一個 ARRAY 數據類型的變量,請按以下步驟操作: 在“名稱”(Name) 列中,輸入變量的名稱。 在“數據類型”列中輸入“Array”數據類型
    的頭像 發表于 07-06 11:08 ?738次閱讀

    淺談PLC定義數據類型的應用

    PLC定義數據類型以下用一個例子介紹PLC定義數據類型的應用,以便進一步理解PLC定義數據類型。
    的頭像 發表于 07-24 16:07 ?949次閱讀
    <b class='flag-5'>淺談</b>PLC定義<b class='flag-5'>數據類型</b>的應用

    Redis的數據類型有哪些

    Redis的數據類型有哪些?有五種常用數據類型:String、Hash、Set、List、SortedSet。以及三種特殊的數據類型:Bitmap、HyperLogLog、Geospatial
    的頭像 發表于 10-09 10:51 ?476次閱讀

    javascript的基本數據類型有哪些

    JavaScript 是一種動態的、面向對象的編程語言,廣泛應用于 Web 開發中。在 JavaScript 中,有七種基本數據類型(Primitive Types),它們分別是 Undefined
    的頭像 發表于 12-03 11:17 ?436次閱讀

    javascript的typeof返回哪些數據類型?

    JavaScript的typeof操作符用于確定一個值的數據類型,可能的返回值包括以下幾種: "undefined":當一個變量被聲明但未被賦值時,其類型為undefined。 "boolean
    的頭像 發表于 12-03 11:41 ?568次閱讀

    oracle的數據類型有哪些

    Oracle數據庫中有許多數據類型可供選擇,每種數據類型都有其各自的特點和適用場景。下面是對Oracle數據庫中最常用的數據類型的詳盡說明,
    的頭像 發表于 12-05 16:45 ?926次閱讀

    plc數據類型怎么理解和應用

    PLC(可編程邏輯控制器)是一種工業自動化設備,用于控制機械和工業過程。在PLC編程中,數據類型是非常重要的概念,因為它決定了程序中數據的存儲和處理方式。正確理解和應用PLC數據類型是編寫有效、可靠
    的頭像 發表于 12-19 11:39 ?2251次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>