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

資訊專欄INFORMATION COLUMN

JS 里的數據類型與轉換

yck / 1284人閱讀

摘要:的數據類型,共有七種數值整數和小數比如和。布爾值表示真偽的兩個特殊值,即真和假。符號其中是新增的基本數據類型,本文僅介紹前六種。轉換規則是除了或空字符串六個值被轉為,其他值都視為。屬性對象的每一個鍵名又稱為屬性,它的鍵值可以是任何數據類型。

一、簡介

JavaScript 語言的每一個值,都屬于某一種數據類型。JavaScript 的數據類型,共有七種:

數值(number):整數和小數(比如1和3.14)。

字符串(string):文本(比如Hello World)。

布爾值(boolean):表示真偽的兩個特殊值,即true(真)和false(假)。

undefined:表示“未定義”或不存在。

null:表示空值,即此處的值為空。

對象(object):各種值組成的集合。

符號(Symbol)

其中Symbol是ES6新增的基本數據類型,本文僅介紹前六種。

二、數據類型詳解

1. 數值(number):
1.1 整數和浮點數
JavaScript 內部,所有數字都是以64位浮點數形式儲存,即使整數也是如此。

1 === 1.0 // true

1.2 精度
在國際標準 IEEE 754中,JavaScript 浮點數的64個二進制位,從最左邊開始,第1位數字符號位決定了一個數的正負(0為正數,1為負數),第2~12位指數部分決定了數值的大小,第13~64小數部分決定了數值的精度。
1.3 數值的進制
JavaScript 對整數提供四種進制的表示方法:十進制、十六進制、八進制、二進制。

十進制:沒有前導0的數值。

八進制:有前綴0o或0O的數值。

十六進制:有前綴0x或0X的數值。

二進制:有前綴0b或0B的數值。

1.4 NaN
NaN意為Not a Number,主要出現在將字符串解析成數字出錯的場合,如:

618 - "x" // NaN
NaN不等于任何值,包括它本身。:
NaN === NaN // false

2. 字符串(string):
用""或""引起來,里面沒有包含任何內容則是空字符串,長度為0。而里面有空格的稱為空格字符串,長度為1,兩者是不一樣的。
2.1 多行字符串
如果字符串分成多行,可以在每一行的尾部使用反斜杠,不加則會報錯。除了使用反斜杠外,也可以通過連接運算符(+)來連接多個單行字符串,兩種方法所得結果一致,建議使用連接運算符(+)。

var longString = "Long 
long 
long 
string";

longString
// "Long long long string"
var longString = "Long "
  + "long "
  + "long "
  + "string";

longString
// "Long long long string"

ES6中新增反引號(`)來寫多行字符串,而這個多行字符串的length會包含回車的長度。
2.2 轉義
反斜杠()在字符串內有特殊含義,用來表示一些特殊字符,所以又稱為轉義符。常需要用反斜杠轉義的特殊字符有:

0 :null(u0000)

n :換行符(u000A)

r :回車鍵(u000D)

t :制表符(u0009)

" :單引號(u0027)

" :雙引號(u0022)

:反斜杠(u005C)

2.3 length屬性
length屬性返回字符串的長度,該屬性由字符串本省決定,無法通過賦值改變。

var s = "mamamoo";
s.length // 7

s.length = 5;
s.length // 7

3. 布爾值(boolean):
布爾值只有“真”和“假”這兩個值。“真”用關鍵字true表示,“假”用關鍵字false表示。如果 JavaScript 預期某個位置應該是布爾值,會將該位置上現有的值自動轉為布爾值。轉換規則是除了undefined、null、false、0、NaN、""或""(空字符串)六個值被轉為false,其他值都視為true。

4. undefined和null:
null與undefined都可以表示“沒有”,含義非常相似。兩者的區別是:

null是一個表示“空”的對象,轉為數值時為0;undefined是一個表示"此處無定義"的原始值,轉為數值時為NaN。

變量沒有值返回的是undefined。

當有一個對象object但還不想賦值時推薦使用null;當有一個非對象但還不想賦值時推薦使用undefined。

5. 對象(object):
5.1 生成方法
對象簡單來說就是一組“鍵值對”(key-value)的集合,是一種無序的復合數據集合。
生成方法是用大括號把鍵值對包起來后賦值給變量,兩個鍵值對之間用逗號分隔。“:”前是鍵名,“:”后是鍵值。如:

var obj = {
  foo: "Hello",
  bar: "World"
};

5.2 鍵名與鍵值
對象的所有鍵名都是字符串,要加引號,不加也會自動轉為字符串。如果鍵名不符合標識名的條件(比如第一個字符為數字,或者含有空格或運算符),且也不是數字,則必須加上引號,否則會報錯。而鍵值是什么類型就用該類型的格式。
5.3 屬性
對象的每一個鍵名又稱為“屬性”(property),它的“鍵值”可以是任何數據類型。

屬性的讀取

讀取對象的屬性,有兩種方法,一種是使用點運算符,還有一種是使用方括號運算符。

var obj = {
  p: "Hello World"
};

obj.p // "Hello World"
obj["p"] // "Hello World",[]內""一定要加

屬性的刪除delete(無value無key)

var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []

屬性的查看Object.keys

var obj = {
  key1: 1,
  key2: 2
};

Object.keys(obj);
// ["key1", "key2"]

屬性是否存在:in

in運算符用于檢查對象是否包含某個屬性(注意,檢查的是鍵名,不是鍵值),如果包含就返回true,否則返回false。

屬性的遍歷:for...in 循環

var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {
  console.log("鍵名:", i);
  console.log("鍵值:", obj[i]);
}
// 鍵名: a
// 鍵值: 1
// 鍵名: b
// 鍵值: 2
// 鍵名: c
// 鍵值: 3
三、如何知道變量類型?

使用type of可得變量的數據類型,如:

var t = 619;
type of t;//"number"

特別注意的是:

當數據類型為null時,用type of打出的數據類型卻是"object"。

當定義了一個函數時,用type of打出的數據類型卻是"function"。

四、數據類型的轉換

4.1 轉為string

使用toString()

var t = 619;
t.toString();//"619"

null沒有toString這個API,不能使用toString,會報錯

var n = null;
n.toString;
//Uncaught TypeError: Cannot read property "toString" of null

undefined也會報錯

var n = undefined;
n.toString();
//Uncaught TypeError: Cannot read property "toString" of undefined

object使用toString會得到"[object Object]"。

var object = {name:"po"};
object.toString()
//"[object Object]"

通過與空字符串相加(+"")也能轉化為字符串類型,且null、undefined也適用。

使用window.String()

window.String(null)//"null"

為什么1 + "1" = "11"?
這是因為當兩個不同數據類型相加時,會優先選擇轉化為字符串,所以1 + "1"相當于1.toString() + "1",于是結果為兩個字符串1相加,即字符串11。
4.2 轉為布爾

使用Boolean()

Boolean(0)//false
Boolean("")//false
Boolean(" ")//true

使用!!

!! ""http://false
!! " "http://true

五個falsy值:0、NaN、空字符串、null、undefined
4.3 轉為Number

使用Number()

Number("1")//1

使用parseInt()

//第二位參數要寫,是表示進制

使用parseFloat()

parseFloat("1.23")//1.23

使用 -0

"1"-0//1

使用 +

+ null//0

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98802.html

相關文章

  • JS 里的數據類型轉換

    摘要:的數據類型轉換一中的數據類型中的數據類型一共有六種,即,,,,,。數據類型指的是數字,包括整型和浮點數。如布爾類型只有和,用于條件判斷。數據類型的相互轉換任意數據類型轉字符串特殊用法任意數據類型轉數字任意數據類型轉布爾值五個值 JS的數據類型轉換 一、js中的數據類型Js中的數據類型一共有六種,即number,string,boolean,underfine,null,object。 ...

    RaoMeng 評論0 收藏0
  • JS里的數據類型轉換

    摘要:一任意類型轉換為字符串要大寫這種方法可以將,,轉化為字符串,但是無法轉換,這兩種數據類型要大寫是一個全局函數,功能更強大可以轉換基本上所有類型為字符串這是最簡單最便捷的一種方法,把加上一個空字符串就可以快速將其他類型轉換成字符串二任意類型轉 一、任意類型轉換為字符串 1、x.toString(S要大寫) 這種方法可以將number,boolean,object轉化為字符串,但是無法轉換...

    CloudDeveloper 評論0 收藏0
  • 前端設計——數據轉換

    摘要:于是,轉換層就此誕生。轉換層顧名思義,把接口數據格式轉換成頁面所需要格式。第二版設計在第一版設計中,遇到轉換方法與使用頁面對應不明確的問題。在第三版設計,也是從調整劃分子模塊方式下手,改回數據類型的維度劃分,同時,規范方法命名。 前言 在工作中,經常會遇到,接口的數據格式與頁面布局/交互不匹配的情況,需要前端進行處理。 心想:數據處理與業務無關,單獨抽離一個模塊來寫吧。 于是,轉換層就...

    lei___ 評論0 收藏0
  • 前端設計——數據轉換

    摘要:于是,轉換層就此誕生。轉換層顧名思義,把接口數據格式轉換成頁面所需要格式。第二版設計在第一版設計中,遇到轉換方法與使用頁面對應不明確的問題。在第三版設計,也是從調整劃分子模塊方式下手,改回數據類型的維度劃分,同時,規范方法命名。 前言 在工作中,經常會遇到,接口的數據格式與頁面布局/交互不匹配的情況,需要前端進行處理。 心想:數據處理與業務無關,單獨抽離一個模塊來寫吧。 于是,轉換層就...

    zhigoo 評論0 收藏0
  • 溫故js系列(9)-相等==&嚴格相等===&代碼里的那些判斷

    摘要:業務越復雜,邏輯就越復雜,判斷就越多比較判斷比較判斷是比較兩個值,返回一個布爾值,表示是否滿足比較條件。對于非布爾值的數據,取反運算符會自動將其轉為布爾值。 前端學習:教程&開發模塊化/規范化/工程化/優化&工具/調試&值得關注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:========== JavaScript-判斷 代碼中,多多少少會有判斷語句。業務越復雜,邏輯就越...

    libin19890520 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<