摘要:默認情況下,會將小數點后面帶有個零以上的浮點數值轉換為科學計數法。有效,不推薦小數點后沒有數字,解析為整數,解析為科學計數法。字符字面量數據類型包含一些特殊的字符字面量,也叫轉義序列。
Undefined 類型
只有一個值,即特殊的 undefined。聲明了但未對其加以初始化時,這個變量的值就是undefined。對未聲明的變量使用typeof操作符會返回undefined。但是其它操作的話就會報錯。
console.log(typeof foo) // "undefined" console.log(foo) // ReferenceError
關于 undefined 還有一種嚴謹的做法就是通過 void 0 來實現。這樣實現的原因是 undefined 不是 JavaScript 的關鍵字,也就是說可以將 undefined 作為標識符,或者說 window.undefined 的值是可以被修改的。
Null 類型只有一個值,即特殊的 null。從邏輯角度來看,null值表示一個空對象指針,所以使用typeof操作符檢測null值返回object。
如果定義的變量準備在將來用于保存對象,那么最好將該變量初始化為null。Boolean 類型
主要介紹 Boolean() 函數
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)) // falseNumber 類型
采用IEEE754格式來表示整數和浮點數值。
// 十進制 const intNum = 55; // 八進制 -- 第一位必須是 0 ,后面是八進制數字序列(0 ~ 7)在嚴格模式下無效,并拋出錯誤。 const octalNum1 = 070; // 八進制的 56 const octalNum2 = 079; // 無效的八進制數值--解析為79 const octalNum3 = 08; // 無效的八進制數值--解析為8 // 十六進制 -- 前兩位必須是 0x ,后面是十六進制數字(0 ~ 9 及 A ~ F),字母 A ~ F 不分大小寫。 const hexNum1 = 0xA; // 十六進制的10 const hexNum1 = 0x1f; // 十六進制的31
在進行算數運算時,所有八進制和十六進制的數值都將被轉換為十進制數值。
浮點數值最高精度是17位小數。
默認情況下,ECMAScript會將小數點后面帶有6個零以上的浮點數值轉換為科學計數法。
永遠不要測試某個特定的浮點數值。
const floatNum1 = .1; // 有效,不推薦 const floatNum2 = 1.; // 小數點后沒有數字,解析為1 const floatNum3 = 10.0; // 整數,解析為10 const floatNum4 = 3.125e7; // 科學計數法。3.125乘以10的7次方。等于 31250000。 //判斷兩個數是否相等 function equal(n1, n2) { return Math.abs(n1 - n2) < Number.EPSILON; } equal(0.1 + 0.2, 0.3) // true數值范圍
Number.MIN_VALUE。最小數值,多數瀏覽器這個值是 5e-324
Number.MAX_VALUE。最大數值,多數瀏覽器這個值是 1.7976931348623157e+308
如果超出范圍就會自動轉為特殊的 Infinity 值,如果是正數就是 Infinity(正無窮),負數就是 -Infinity(負無窮)。
isFinite() 函數判斷一個數是否是有窮的。
Number.NEGATIVE_INFINITY。負無窮的值。
Number.POSITIVE_INFINITY。正無窮的值。
NaN任何涉及NaN的操作都會返回NaN。
NaN不等于任何值,包括NaN本身。
通過 isNaN() 函數檢查傳入的參數是否“不是數值”。
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 -- 可以被轉換成數值10 console.log(isNaN("blue")); // true -- 不能轉換成數值 console.log(isNaN(true)); // true -- 可以被轉換成數值 1 // isNaN() 也適用于對象。會先調用對象的 valueOf() 方法,如果返回值不能轉換為數值,則基于這個返回值再調用 toString() 方法,再測試返回值。數值轉換
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() 推薦始終帶上第二個參數:轉換時使用的基數(即多少進制)。 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 認為是70(十進制),ECMAScript 3 認為是56(八進制) console.log(parseInt("0xA")); // 10 console.log(parseInt("0xf")); // 15 // parseFloat() 會解析每個字符,或解析到遇見一個無效的浮點數字符為止。而且始終會忽略前導的零。只解析十進制值。 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")); // 31250000String 類型
String 類型用于表示由零或多個16位Unicode字符組成的字符序列,即字符串。任何字符串的長度都可以通過訪問其length屬性取得。
字符字面量String數據類型包含一些特殊的字符字面量,也叫轉義序列。
字面量 | 含義 |
---|---|
換行 | |
制表 | |
退格 | |
回車 | |
f | 進紙 |
斜杠 | |
" | 單引號 ( " ) ,在用單引號表示的字符串中使用,例如: "He said,? "hey." " |
" | 雙引號 ( " ) ,在用雙引號表示的字符串中使用,例如: "He said,? "hey." " |
xnn | 以十六進制代碼 nn 表示的一個字符(其中 n 為 0 ~ F)。例如, x41 表示 "A" |
unnnn | 以十六進制代碼 nnnn 表示的一個 Unicode 字符(其中 n 為 0 ~ F)。例如, u03a3 表示希臘字符?Σ |
1. toString()
除了null和undefined沒有這個方法,其它都有。有一個參數:輸出數值的基數,默認是十進制。
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()
在不知道要轉換的值是不是null或undefined的情況下,還可以使用轉型函數String(),這個可以將任何類型的值轉為字符串。遵循以下轉換規則
如果值有toString()方法,則調用該方法(沒有參數)并返回相應的結果;
如果值是null,則返回"null"
如果值是undefined,則返回"undefined"
3. 使用加號操作符與一個字符串(" ")加在一起
const bool = true; console.log(bool + ""); // "true" const nul = null; console.log(nul + ""); // "null" const unde= undefined; console.log(unde + ""); // "undefined"typeof 操作符
// typeof的操作數可以是變量也可以是字面量 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高級程序設計》(第三版)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54046.html
摘要:前綴規范每個局部變量都需要有一個類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對象,例如,表示全局變量,例如,是一種區分大小寫的語言。布爾值與字符串相加將布爾值強制轉換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當解釋器。js執行時,在同一個作用域內是先解釋再執行。解釋的時候會編譯function和var這兩個關鍵詞定義的變量,編譯完成后從...
摘要:設計模式是以面向對象編程為基礎的,的面向對象編程和傳統的的面向對象編程有些差別,這讓我一開始接觸的時候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續了解設計模式必須要先搞懂面向對象編程,否則只會讓你自己更痛苦。 JavaScript 中的構造函數 學習總結。知識只有分享才有存在的意義。 是時候替換你的 for 循環大法了~ 《小分享》JavaScript中數組的那些迭代方法~ ...
摘要:基于對象字面量,但是獨立于任何編程語言,真正重要的是表示法本身,所以在學習之前不必先學習。鍵必須是字符串,值可以是合法的數據類型字符串數字對象數組布爾值或。布爾類型中的布爾值僅可使用小寫形式或,其他任何寫法都會報錯。 什么是JSON JSON全稱是Javascript Object Notation(對象表示法),是一種在不同平臺間傳遞數據的文本格式(數據交換格式)。常見的數據交換格式...
摘要:基于對象字面量,但是獨立于任何編程語言,真正重要的是表示法本身,所以在學習之前不必先學習。鍵必須是字符串,值可以是合法的數據類型字符串數字對象數組布爾值或。布爾類型中的布爾值僅可使用小寫形式或,其他任何寫法都會報錯。 什么是JSON JSON全稱是Javascript Object Notation(對象表示法),是一種在不同平臺間傳遞數據的文本格式(數據交換格式)。常見的數據交換格式...
摘要:目錄語句變量小結基本語法一是核心知識點的基本語法的第一部分,主要介紹了語句表達式變量和數據類型不包括函數類型的基本知識點,函數類型將在下一章函數二中詳細探討語句程序的執行是由一條條語句組成的每一條語句是為完成特定任務而執行的操作語句當中可以 目錄 1. 語句 2. 變量 3. 小結 JavaScript基本語法(一)是JavaScript核心知識點(ECMAScript)的基本語法的...
摘要:通常一個完成的不僅僅包含了還包括了以及相關版本該版本在中使用。基于原型函數先行的語言使用基于原型的的繼承機制,函數是的第一等公民其他相關的語言特性編譯型語言把做好的源程序全部編譯成二進制代碼的可運行程序。 轉載請注明出處,創作不易,更多文章請戳 https://github.com/ZhengMaste... 前言:JavaScript誕生于1995年,它是一門腳本語言,起初的目...
閱讀 1748·2021-10-13 09:39
閱讀 1317·2019-08-30 13:58
閱讀 1412·2019-08-29 16:42
閱讀 3561·2019-08-29 15:41
閱讀 2991·2019-08-29 15:11
閱讀 2470·2019-08-29 14:10
閱讀 3406·2019-08-29 13:29
閱讀 2087·2019-08-26 13:27