99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談Javascript數(shù)據(jù)類型

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-09 16:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

avaScript原始數(shù)據(jù)類型包括有object,nullundefined,booleannumber,string

symbol從ES2015開始可用,bigint從ES2020開始可用。其中object是一個(gè)復(fù)雜的數(shù)據(jù)類型。

JavaScript是一種動(dòng)態(tài)類型語言。這意味著變量不與類型相關(guān)聯(lián)。換句話說,一個(gè)變量可以保存不同類型的值。

例如在下面的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

如果你需要知道當(dāng)前變量存儲(chǔ)的值類型,可以使用javascript的typeof運(yùn)算符,獲得變量的數(shù)據(jù)類型。

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


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


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

undefined 未定義

undefined類型是只有一個(gè)原始類型的值undefined。默認(rèn)情況下,當(dāng)一個(gè)變量被聲明但未初始化時(shí),它被賦值為undefined。

在下面的示例中,我們?cè)诘谝恍新暶饕粋€(gè)變量counter。由于counter尚未初始化,因此為其分配的值是undefinedcounter的類型也是undefined。

值得注意的是,當(dāng)您使用尚未聲明的變量時(shí),typeof運(yùn)算符也會(huì)返回undefined。


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

null 空類型

null類型是第二種原始數(shù)據(jù)類型,也只有一個(gè)值null。

當(dāng)你在瀏覽器的控制臺(tái)運(yùn)行代碼typeof null時(shí),代碼將會(huì)返回一個(gè)對(duì)象。這是一個(gè)在Javascript的bug。

雖然有人曾經(jīng)提出過修復(fù)此錯(cuò)誤,但被拒絕。原因是修復(fù)此Bug會(huì)破壞許多現(xiàn)有站點(diǎn)。

在JavaScript數(shù)據(jù)類型null是等于undefined的,因?yàn)樵贘avascript的null值是等于布爾值falseundefined也是如此。


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

number 數(shù)值類型

JavaScript使用用number類型來表示整數(shù)和浮點(diǎn)數(shù)。下面的語句聲明一個(gè)變量并用一個(gè)整數(shù)初始化它的值。要表示浮點(diǎn)數(shù),請(qǐng)包含一個(gè)小數(shù)點(diǎn),后跟至少一個(gè)數(shù)字。

如果數(shù)字看起來是整數(shù),例如代碼let price = 200.00;,JavaScript會(huì)自動(dòng)將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)。

原因是Javascript總是希望使用更少的內(nèi)存,因?yàn)楦↑c(diǎn)值使用的內(nèi)存是整數(shù)值的兩倍。

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


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

NaN 非數(shù)值類型

NaN代表非數(shù)值。它是一個(gè)特殊的數(shù)值,表示一個(gè)無效的數(shù)字。當(dāng)強(qiáng)制轉(zhuǎn)換字符串為值時(shí),它會(huì)返回NaN

NaN有兩個(gè)特點(diǎn)。第一特點(diǎn)是所有與NaN的運(yùn)算都會(huì)返回NaN ,例如代碼console.log(NaN/2);。

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

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

string 字符串類型

在JavaScript,字符串是零個(gè)或多個(gè)字符的序列。字符串文字以單引號(hào) '或雙引號(hào) " 開始和結(jié)束。

以雙引號(hào)開頭的字符串必須以雙引號(hào)結(jié)尾。同樣,以單引號(hào)開頭的字符串也必須以單引號(hào)結(jié)尾。

如果要在字符串中使用單引號(hào)或雙引號(hào),則需要使用反斜杠對(duì)其進(jìn)行轉(zhuǎn)義。例如代碼let message = 'I\\'m also a valid string';

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

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

在幕后,JavaScript引擎創(chuàng)建一個(gè)新字符串來保存'JavaScript String'并銷毀原始字符串'JavaScript''String'。

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

boolean 布爾類型

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

JavaScript允許將其他類型的值轉(zhuǎn)換為布爾值的truefalse。要將另一種數(shù)據(jù)類型的值轉(zhuǎn)換為布爾值,請(qǐng)使用Boolean()函數(shù)。

確切的說Boolean()不是函數(shù),它是一個(gè)對(duì)象,用于創(chuàng)建布爾值,Boolean接受一個(gè)參數(shù),并將指定的參數(shù)轉(zhuǎn)換為布爾值。


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 符號(hào)類型

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

要?jiǎng)?chuàng)建符號(hào),請(qǐng)調(diào)用函數(shù)Symbol,每次調(diào)用符號(hào)函數(shù)都會(huì)創(chuàng)建一個(gè)新的唯一值。

symbol值可以作為對(duì)象屬性的標(biāo)識(shí)符,通常使用它來創(chuàng)建對(duì)象的私有屬性與方法數(shù)據(jù)類型僅有的目的。


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

bigint 類型

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

它在某些方面類似于Number,但是也有幾個(gè)不同點(diǎn),不能用于Math對(duì)象中的方法。

不能和任何Number實(shí)例混合運(yùn)算,兩者必須轉(zhuǎn)換成同一種類型。在兩種類型來回轉(zhuǎn)換時(shí)要小心,因?yàn)?code>BigInt變量在轉(zhuǎn)換成Number變量時(shí)可能會(huì)丟失精度。

要?jiǎng)?chuàng)建bigint數(shù)字可以在一個(gè)整數(shù)的后面加追加字母n ,例如10n,或者調(diào)用函數(shù) BigInt()并傳遞一個(gè)整數(shù)值或著是字符串的數(shù)字。

如果傳遞的是字符串的數(shù)字, BigInt() 將會(huì)強(qiáng)制轉(zhuǎn)換字符串類型為數(shù)值。


const theBiggestInt = 9007199254740991n;


const alsoHuge = BigInt(9007199254740991);

object 對(duì)象類型

在JavaScript,對(duì)象是屬性的集合,每個(gè)屬性都定義為鍵值對(duì)。對(duì)象的屬性名稱可以是任何字符串或者符號(hào)symbol的值。

如果屬性名稱不是有效標(biāo)識(shí)符,您可以在屬性名稱周圍使用引號(hào)。例如,如果對(duì)象的屬性名稱是full-name,則必須將其放在引號(hào)中。

對(duì)象的屬性不僅可以保存簡(jiǎn)單值,也可以保存復(fù)雜的數(shù)據(jù)類型對(duì)象。


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'
    }
}

要訪問對(duì)象的屬性,您可以使用點(diǎn)符號(hào). 或者類似數(shù)組的符號(hào)[]。當(dāng)要訪問屬性嵌套的對(duì)象時(shí),也可以繼續(xù)使用點(diǎn)符號(hào).訪問嵌套的屬性。

如果你訪問一個(gè)不存在的屬性,你會(huì)得到一個(gè)未定義的值。

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'

結(jié)論

JavaScript的基本類型是numberstring、boolean、null、undefinedsymbol以及bigint和復(fù)雜類型對(duì)象object。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54820
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    237

    瀏覽量

    13897
  • undefined
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    2962
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    JavaScript 【1】 基礎(chǔ)數(shù)據(jù)類型

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

    vhdl數(shù)據(jù)類型

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

    Struct結(jié)構(gòu)數(shù)據(jù)類型

    Struct類型是一種由多個(gè)不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struct、數(shù)組等復(fù)雜數(shù)據(jù)類型以及PLC
    的頭像 發(fā)表于 07-25 17:02 ?3422次閱讀

    結(jié)構(gòu)數(shù)據(jù)類型(Struct)及應(yīng)用案例

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

    什么是數(shù)據(jù)類型轉(zhuǎn)換

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

    定義數(shù)據(jù)類型

    在運(yùn)算之前我們必須首先定義出數(shù)據(jù)類型,定義出腳本支持的數(shù)據(jù)類型,這是運(yùn)算的基礎(chǔ)。 這一小節(jié)我們將定義出數(shù)據(jù)類型,在這里我們暫時(shí)定義四個(gè)數(shù)據(jù)類型:
    的頭像 發(fā)表于 03-03 10:10 ?1324次閱讀

    PLC數(shù)據(jù)類型

    基本數(shù)據(jù)類型 ? ? ? 基本數(shù)據(jù)類型? ? 包括位、位序列、整數(shù)、浮點(diǎn)數(shù)、日期時(shí)間。(常見的) 1、位 字節(jié) 字 雙字 2、數(shù)據(jù)類型 3 浮點(diǎn)數(shù) 實(shí)(或浮點(diǎn))數(shù)以 32 位單精度數(shù) (Real
    發(fā)表于 04-17 15:49 ?0次下載
    PLC<b class='flag-5'>數(shù)據(jù)類型</b>

    ARRAY 數(shù)據(jù)類型的變量

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

    淺談PLC定義數(shù)據(jù)類型的應(yīng)用

    PLC定義數(shù)據(jù)類型以下用一個(gè)例子介紹PLC定義數(shù)據(jù)類型的應(yīng)用,以便進(jìn)一步理解PLC定義數(shù)據(jù)類型
    的頭像 發(fā)表于 07-24 16:07 ?1761次閱讀
    <b class='flag-5'>淺談</b>PLC定義<b class='flag-5'>數(shù)據(jù)類型</b>的應(yīng)用

    F型PLC數(shù)據(jù)類型與標(biāo)準(zhǔn)PLC數(shù)據(jù)類型(UDT)之間的差別在哪?

    可以像使用標(biāo)準(zhǔn) PLC 數(shù)據(jù)類型 (UDT) 那樣,聲明和使用 F 型 PLC 數(shù)據(jù)類型 (UDT) 。可以在安全程序中以及標(biāo)準(zhǔn)用戶程序中使用 F 型 PLC 數(shù)據(jù)類型 (UDT) 。
    的頭像 發(fā)表于 08-27 09:54 ?1549次閱讀
    F型PLC<b class='flag-5'>數(shù)據(jù)類型</b>與標(biāo)準(zhǔn)PLC<b class='flag-5'>數(shù)據(jù)類型</b>(UDT)之間的差別在哪?

    Redis的數(shù)據(jù)類型有哪些

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

    javascript的基本數(shù)據(jù)類型有哪些

    JavaScript 是一種動(dòng)態(tài)的、面向?qū)ο蟮木幊陶Z言,廣泛應(yīng)用于 Web 開發(fā)中。在 JavaScript 中,有七種基本數(shù)據(jù)類型(Primitive Types),它們分別是 Undefined
    的頭像 發(fā)表于 12-03 11:17 ?1119次閱讀

    javascript的typeof返回哪些數(shù)據(jù)類型?

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

    oracle的數(shù)據(jù)類型有哪些

    Oracle數(shù)據(jù)庫中有許多數(shù)據(jù)類型可供選擇,每種數(shù)據(jù)類型都有其各自的特點(diǎn)和適用場(chǎng)景。下面是對(duì)Oracle數(shù)據(jù)庫中最常用的數(shù)據(jù)類型的詳盡說明,
    的頭像 發(fā)表于 12-05 16:45 ?3095次閱讀

    plc數(shù)據(jù)類型怎么理解和應(yīng)用

    PLC(可編程邏輯控制器)是一種工業(yè)自動(dòng)化設(shè)備,用于控制機(jī)械和工業(yè)過程。在PLC編程中,數(shù)據(jù)類型是非常重要的概念,因?yàn)樗鼪Q定了程序中數(shù)據(jù)的存儲(chǔ)和處理方式。正確理解和應(yīng)用PLC數(shù)據(jù)類型是編寫有效、可靠
    的頭像 發(fā)表于 12-19 11:39 ?5588次閱讀