小編給大家分享一下javascript中數據類型是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯公司是一家專業(yè)從事網站制作、做網站、網頁設計的品牌網絡公司。如今是成都地區(qū)具影響力的網站設計公司,作為專業(yè)的成都網站建設公司,創(chuàng)新互聯公司依托強大的技術實力、以及多年的網站運營經驗,為您提供專業(yè)的成都網站建設、營銷型網站建設及網站設計開發(fā)服務!
一、簡介
JavaScript 語言的每一個值,都屬于某一種數據類型。JavaScript 的數據類型,共有七種:
數值(number):整數和小數(比如1和3.14)。
字符串(string):文本(比如Hello World)。
布爾值(boolean):表示真?zhèn)蔚膬蓚€特殊值,即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 預期某個位置應該是布爾值,會將該位置上現有的值自動轉為布爾值。轉換規(guī)則是除了undefined、null、false、0、NaN、""或''(空字符串)六個值被轉為false,其他值都視為true。
4. undefined和null:
null與undefined都可以表示“沒有”,含義非常相似。兩者的區(qū)別是:
null是一個表示“空”的對象,轉為數值時為0;undefined是一個表示"此處無定義"的原始值,轉為數值時為NaN。
變量沒有值返回的是undefined。
當有一個對象object但還不想賦值時推薦使用null;當有一個非對象但還不想賦值時推薦使用undefined。
5. 對象(object):
5.1 生成方法
對象簡單來說就是一組“鍵值對”(key-value)的集合,是一種無序的復合數據集合。
生成方法是用大括號把鍵值對包起來后賦值給變量,兩個鍵值對之間用逗號分隔?!埃骸鼻笆擎I名,“:”后是鍵值。如:
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 循環(huán)
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'?
這是因為當兩個不同數據類型相加時,會優(yōu)先選擇轉化為字符串,所以1 + '1'相當于1.toString() + '1',于是結果為兩個字符串1相加,即字符串11。
4.2 轉為布爾
使用Boolean()
Boolean(0)//false Boolean('')//false Boolean(' ')//true
使用!!
!! ''//false !! ' '//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
看完了這篇文章,相信你對javascript中數據類型是什么有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道,感謝各位的閱讀!
標題名稱:javascript中數據類型是什么
地址分享:http://www.rwnh.cn/article48/jgjshp.html
成都網站建設公司_創(chuàng)新互聯,為您提供營銷型網站建設、網站維護、標簽優(yōu)化、ChatGPT、網站內鏈、Google
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯