国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript 數(shù)據(jù)類型(一)

Charlie_Jade / 2329人閱讀

摘要:默認(rèn)情況下,會(huì)將小數(shù)點(diǎn)后面帶有個(gè)零以上的浮點(diǎn)數(shù)值轉(zhuǎn)換為科學(xué)計(jì)數(shù)法。有效,不推薦小數(shù)點(diǎn)后沒有數(shù)字,解析為整數(shù),解析為科學(xué)計(jì)數(shù)法。字符字面量數(shù)據(jù)類型包含一些特殊的字符字面量,也叫轉(zhuǎn)義序列。

Undefined 類型

只有一個(gè)值,即特殊的 undefined。聲明了但未對(duì)其加以初始化時(shí),這個(gè)變量的值就是undefined。對(duì)未聲明的變量使用typeof操作符會(huì)返回undefined。但是其它操作的話就會(huì)報(bào)錯(cuò)。

console.log(typeof foo) // "undefined"
console.log(foo) // ReferenceError

關(guān)于 undefined 還有一種嚴(yán)謹(jǐn)?shù)淖龇ň褪峭ㄟ^ void 0 來實(shí)現(xiàn)。這樣實(shí)現(xiàn)的原因是 undefined 不是 JavaScript 的關(guān)鍵字,也就是說可以將 undefined 作為標(biāo)識(shí)符,或者說 window.undefined 的值是可以被修改的。

Null 類型

只有一個(gè)值,即特殊的 null。從邏輯角度來看,null值表示一個(gè)空對(duì)象指針,所以使用typeof操作符檢測(cè)null值返回object

如果定義的變量準(zhǔn)備在將來用于保存對(duì)象,那么最好將該變量初始化為null
Boolean 類型

主要介紹 Boolean() 函數(shù)

console.log(Boolean("a")) // true
console.log(Boolean("")) // false
console.log(Boolean(1)) // true
console.log(Boolean(0)) // false
console.log(Boolean(-1)) // true
console.log(Boolean(NaN)) // false
console.log(Boolean(Infinity)) // true
console.log(Boolean(-Infinity)) // true
console.log(Boolean({})) // true
console.log(Boolean(null)) // false
console.log(Boolean(undefined)) // false
Number 類型

采用IEEE754格式來表示整數(shù)和浮點(diǎn)數(shù)值。

// 十進(jìn)制

const intNum = 55; 

// 八進(jìn)制 -- 第一位必須是 0 ,后面是八進(jìn)制數(shù)字序列(0 ~ 7)在嚴(yán)格模式下無(wú)效,并拋出錯(cuò)誤。

const octalNum1 = 070; // 八進(jìn)制的 56
const octalNum2 = 079; // 無(wú)效的八進(jìn)制數(shù)值--解析為79
const octalNum3 = 08; // 無(wú)效的八進(jìn)制數(shù)值--解析為8

// 十六進(jìn)制 -- 前兩位必須是 0x ,后面是十六進(jìn)制數(shù)字(0 ~ 9 及 A ~ F),字母 A ~ F 不分大小寫。

const hexNum1 = 0xA; // 十六進(jìn)制的10
const hexNum1 = 0x1f; // 十六進(jìn)制的31

在進(jìn)行算數(shù)運(yùn)算時(shí),所有八進(jìn)制和十六進(jìn)制的數(shù)值都將被轉(zhuǎn)換為十進(jìn)制數(shù)值。

浮點(diǎn)數(shù)值

最高精度是17位小數(shù)。

默認(rèn)情況下,ECMAScript會(huì)將小數(shù)點(diǎn)后面帶有6個(gè)零以上的浮點(diǎn)數(shù)值轉(zhuǎn)換為科學(xué)計(jì)數(shù)法。

永遠(yuǎn)不要測(cè)試某個(gè)特定的浮點(diǎn)數(shù)值。

const floatNum1 = .1; // 有效,不推薦
const floatNum2 = 1.; // 小數(shù)點(diǎn)后沒有數(shù)字,解析為1
const floatNum3 = 10.0; // 整數(shù),解析為10
const floatNum4 = 3.125e7; // 科學(xué)計(jì)數(shù)法。3.125乘以10的7次方。等于 31250000。

//判斷兩個(gè)數(shù)是否相等
function equal(n1, n2) {
    return Math.abs(n1 - n2) < Number.EPSILON;
}
equal(0.1 + 0.2, 0.3) // true
數(shù)值范圍

Number.MIN_VALUE。最小數(shù)值,多數(shù)瀏覽器這個(gè)值是 5e-324

Number.MAX_VALUE。最大數(shù)值,多數(shù)瀏覽器這個(gè)值是 1.7976931348623157e+308

如果超出范圍就會(huì)自動(dòng)轉(zhuǎn)為特殊的 Infinity 值,如果是正數(shù)就是 Infinity(正無(wú)窮),負(fù)數(shù)就是 -Infinity(負(fù)無(wú)窮)。

isFinite() 函數(shù)判斷一個(gè)數(shù)是否是有窮的。

Number.NEGATIVE_INFINITY。負(fù)無(wú)窮的值。

Number.POSITIVE_INFINITY。正無(wú)窮的值。

NaN

任何涉及NaN的操作都會(huì)返回NaN。

NaN不等于任何值,包括NaN本身。

通過 isNaN() 函數(shù)檢查傳入的參數(shù)是否“不是數(shù)值”。

console.log(0/0); // NaN
console.log(10/0); // Infinity
console.log(-10/0); // -Infinity
console.log(10/"a"); // NaN
console.log(10/""); // Infinity
console.log(10/undefined); // NaN
console.log(10/true); // 10
console.log(10/false); // Infinity 
console.log(10/null); // Infinity

console.log(isNaN(NaN)); // true
console.log(isNaN(10)); // false
console.log(isNaN("10")); // false -- 可以被轉(zhuǎn)換成數(shù)值10
console.log(isNaN("blue")); // true -- 不能轉(zhuǎn)換成數(shù)值
console.log(isNaN(true)); // true -- 可以被轉(zhuǎn)換成數(shù)值 1

// isNaN() 也適用于對(duì)象。會(huì)先調(diào)用對(duì)象的 valueOf() 方法,如果返回值不能轉(zhuǎn)換為數(shù)值,則基于這個(gè)返回值再調(diào)用 toString() 方法,再測(cè)試返回值。

數(shù)值轉(zhuǎn)換

Number()

parseInt()

parseFloat()

console.log(Number(10)); // 10
console.log(Number("")); // 0
console.log(Number("abc")); // NaN
console.log(Number("000011")); // 11
console.log(Number("123abc")); // NaN
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(undefined)); // NaN
console.log(Number(null)); // 0

// 使用 parseInt() 推薦始終帶上第二個(gè)參數(shù):轉(zhuǎn)換時(shí)使用的基數(shù)(即多少進(jìn)制)。
console.log(parseInt(22.5); // 22
console.log(parseInt("")); // NaN
console.log(parseInt("70")); // 70
console.log(parseInt("123abc")); // 1234
console.log(parseInt("070")); // ECMAScript 5 認(rèn)為是70(十進(jìn)制),ECMAScript 3 認(rèn)為是56(八進(jìn)制)
console.log(parseInt("0xA")); // 10
console.log(parseInt("0xf")); // 15

// parseFloat() 會(huì)解析每個(gè)字符,或解析到遇見一個(gè)無(wú)效的浮點(diǎn)數(shù)字符為止。而且始終會(huì)忽略前導(dǎo)的零。只解析十進(jìn)制值。

console.log(parseFloat("22.5")); // 22.5
console.log(parseFloat("123abc")); // 123
console.log(parseFloat("0xA")); // 0
console.log(parseFloat("22.34.5")); // 22.34
console.log(parseFloat("0908.5")); // 908.5
console.log(parseFloat("3.125e7")); // 31250000
String 類型

String 類型用于表示由零或多個(gè)16位Unicode字符組成的字符序列,即字符串。任何字符串的長(zhǎng)度都可以通過訪問其length屬性取得。

字符字面量
String數(shù)據(jù)類型包含一些特殊的字符字面量,也叫轉(zhuǎn)義序列。
字面量 含義
換行
制表
 退格
回車
f 進(jìn)紙
斜杠
" 單引號(hào) ( " ) ,在用單引號(hào)表示的字符串中使用,例如: "He said,? "hey." "
" 雙引號(hào) ( " ) ,在用雙引號(hào)表示的字符串中使用,例如: "He said,? "hey." "
xnn 以十六進(jìn)制代碼 nn 表示的一個(gè)字符(其中 n 為 0 ~ F)。例如, x41 表示 "A"
unnnn 以十六進(jìn)制代碼 nnnn 表示的一個(gè) Unicode 字符(其中 n 為 0 ~ F)。例如, u03a3 表示希臘字符?Σ
轉(zhuǎn)換為字符串

1. toString()
除了nullundefined沒有這個(gè)方法,其它都有。有一個(gè)參數(shù):輸出數(shù)值的基數(shù),默認(rèn)是十進(jìn)制。

const num = 10;
console.log(num.toString()); // "10"
console.log(num.toString(2)); // "1010"
console.log(num.toString(8)); // "12"
console.log(num.toString(10)); // "10"
console.log(num.toString(16)); // "a"

const bool = true;
console.log(bool.toString()); // "true"

const obj = {};
console.log(obj.toString()); // "[object Object]"

const func = function() {};
console.log(func.toString()); // "function() {}"

const nul = null;
console.log(nul.toString()); // TypeError: Cannot read property "toString" of null

const unde= undefined;
console.log(unde.toString()); // TypeError: Cannot read property "toString" of undefined

2. String()
在不知道要轉(zhuǎn)換的值是不是nullundefined的情況下,還可以使用轉(zhuǎn)型函數(shù)String(),這個(gè)可以將任何類型的值轉(zhuǎn)為字符串。遵循以下轉(zhuǎn)換規(guī)則

如果值有toString()方法,則調(diào)用該方法(沒有參數(shù))并返回相應(yīng)的結(jié)果;

如果值是null,則返回"null"

如果值是undefined,則返回"undefined"

3. 使用加號(hào)操作符與一個(gè)字符串(" ")加在一起

const bool = true;
console.log(bool + ""); // "true"

const nul = null;
console.log(nul + ""); // "null"

const unde= undefined;
console.log(unde + ""); // "undefined"
typeof 操作符
// typeof的操作數(shù)可以是變量也可以是字面量
console.log(typeof foo) // "undefined"
console.log(typeof true) // "boolean"
console.log(typeof "abcd") // "string"
console.log(typeof 1) // "number"
console.log(typeof null) // "object"
console.log(typeof {}) // "object"
console.log(typeof function(){}) // "function"
參考

《JavaScript高級(jí)程序設(shè)計(jì)》(第三版)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/54046.html

相關(guān)文章

  • JavaScript學(xué)習(xí)總結(jié)()基礎(chǔ)部分

    摘要:前綴規(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)鍵詞定義的變量,編譯完成后從...

    AlanKeene 評(píng)論0 收藏0
  • JS程序

    摘要:設(shè)計(jì)模式是以面向?qū)ο缶幊虨榛A(chǔ)的,的面向?qū)ο缶幊毯蛡鹘y(tǒng)的的面向?qū)ο缶幊逃行┎顒e,這讓我一開始接觸的時(shí)候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續(xù)了解設(shè)計(jì)模式必須要先搞懂面向?qū)ο缶幊蹋駝t只會(huì)讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學(xué)習(xí)總結(jié)。知識(shí)只有分享才有存在的意義。 是時(shí)候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...

    melody_lql 評(píng)論0 收藏0
  • 《JSON必知必會(huì)》學(xué)習(xí)筆記(

    摘要:基于對(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ù)交換格式)。常見的數(shù)據(jù)交換格式...

    rickchen 評(píng)論0 收藏0
  • 《JSON必知必會(huì)》學(xué)習(xí)筆記(

    摘要:基于對(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ù)交換格式)。常見的數(shù)據(jù)交換格式...

    imccl 評(píng)論0 收藏0
  • JavaScript基本語(yǔ)法(

    摘要:目錄語(yǔ)句變量小結(jié)基本語(yǔ)法一是核心知識(shí)點(diǎn)的基本語(yǔ)法的第一部分,主要介紹了語(yǔ)句表達(dá)式變量和數(shù)據(jù)類型不包括函數(shù)類型的基本知識(shí)點(diǎn),函數(shù)類型將在下一章函數(shù)二中詳細(xì)探討語(yǔ)句程序的執(zhí)行是由一條條語(yǔ)句組成的每一條語(yǔ)句是為完成特定任務(wù)而執(zhí)行的操作語(yǔ)句當(dāng)中可以 目錄 1. 語(yǔ)句 2. 變量 3. 小結(jié) JavaScript基本語(yǔ)法(一)是JavaScript核心知識(shí)點(diǎn)(ECMAScript)的基本語(yǔ)法的...

    shiina 評(píng)論0 收藏0
  • JavaScript的語(yǔ)言特性以及重要版本

    摘要:通常一個(gè)完成的不僅僅包含了還包括了以及相關(guān)版本該版本在中使用。基于原型函數(shù)先行的語(yǔ)言使用基于原型的的繼承機(jī)制,函數(shù)是的第一等公民其他相關(guān)的語(yǔ)言特性編譯型語(yǔ)言把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。 轉(zhuǎn)載請(qǐng)注明出處,創(chuàng)作不易,更多文章請(qǐng)戳 https://github.com/ZhengMaste... 前言:JavaScript誕生于1995年,它是一門腳本語(yǔ)言,起初的目...

    Yangder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Charlie_Jade

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<