javascript
JS的数据类型分类以及用法,没有这些基础,学不好js
JS有多種數據類型。數據類型就好比我們學習詞匯的時候,詞匯也有多種類型一樣,比如,動詞、名詞、形容詞等等。
JS數據類型包括:字符串值、數值、布爾值、數組、對象。
- 字符串值
字符串值用于存儲和操作文本。字符串是引號中的零個或多個字符,引號可以是雙引號也可以是單引號。字符可以是任意字符。比如:
"Hello Word"
"123"
"我是劉小妞"
""
''
雙引號和單引號可以嵌套。比如:
var a = " 我是 '劉小妞' " var b = ' "劉小妞" 的棲息地 '我們可以輸出一下上面的兩個值,完整代碼如下:
<div id="testA"></div> <div id="testB"></div><script> var a = " 我是 '劉小妞' " var b = ' "劉小妞" 的棲息地 'document.getElementById("testA").innerHTML = a; document.getElementById("testB").innerHTML = b; </script>但是,單引號里不能嵌套單引號,雙引號里不能嵌套雙引號。比如下面這樣寫就會出錯:
" 我是 "劉小妞" "
' '劉小妞' 的棲息地 '
如果我們遇到必須在雙引號里嵌套雙引號、單引號里必須嵌套單引號這種情況怎么辦?
我們可以在里面的引號用轉移字符。
轉移字符是一個反斜杠 " \ "。寫個例子:
" 我是 \"劉小妞\" " 輸出結果是:我是"劉小妞"單引號也類似。比如:
' \'劉小妞\' 的棲息地 ' 輸出結果是:'劉小妞'的棲息地那如果想輸出反斜杠怎么辦? 連著寫兩個反斜杠就可以了。
如何知道一個字符串的長度呢? 字符串有一個自帶屬性:length
它是這樣用的:
<div id="test"></div><script> var a = "我是劉小妞"; var b = a.length;document.getElementById("test").innerHTML = b; </script>- JS的數值
JS只有一種數值類型,即64位浮點數。它不區分整型、浮點型。超大或者超小的數可以用科學計數法來寫,比如:
var a = 123e6; //123000000 var b = 123e-6; //0.000123var c = 3; var d = 3.00;var e = c===d //e的值是true如果不使用科學計數法,整數會被精確到15位,小數最大數是17位。
介紹幾個特殊的值:NaN、Infinity、十六進制。
NaN:Not a Number(不是一個數字)。它屬于JS保留詞,表示某個數不是合法數。它的數據類型是數值。
這個值經常會在報錯里看到。比如,一個字符串和一個數值做乘除減法運算。
var a = "劉小妞" * 100; //a的值是NaN。但是,如果字符串里是個數字,在做乘除減運算的時候,JS會強制把數字的字符串轉換成數值,比如:
var a = "100" * 10; //a的值是1000。如果在運算過程中,有一個值是NaN,那么結果也是NaN。比如:
var a = NaN + 100; //a的值是NaN。但是,如果是加法運算符,一邊是字符串,一邊是NaN,那結果會是字符串拼接。比如:
var a = NaN + '100'; //a的值是NaN100。字符串很牛的,只要是加號,誰和它挨著,它就把誰轉成字符串。
有一個全局函數:isNaN() ,可以確定某個值是否是數值。比如:
var a = "劉小妞" * 100; var b = isNaN(a); //b的值true。Infinity/-Infinity:JS計算數時,超出最大數范圍返回的值。
除以0也會生成Infinity或者-Infinity。比如:
var a = 100 / 0; //a的值是Infinity var b = -100 / 0; //b的值是-Infinity十六進制:前綴為0x的數值常常被解釋為十六進制。比如:
var a = 0xFF; //a的值是255在寫數值的時候,不要以0開頭,比如(07)等等。因為一些JS版本會把前綴為0的解釋成八進制。不要給自己找麻煩。當然,進制之間是可以相互轉換的,這個我們知道就行,不經常用。
- JS的布爾值
布爾值只有兩個值:true和false。
布爾值經常用在條件判斷中。
true是真,即條件成立;false是假,即條件不成立。
寫個小例子:
var a = 1,b = 2; var c = a>b; //c的值是false- JS的數組
什么是數組?
數組就是一組數,這是我自己定義的。
數組是一種特殊的變量,它能夠一次存放一個以上的值。通過索引號來訪問這些值。
它的格式如下:
[item1,item2,……]
一個中括號,里面可以有多個值,多個值用逗號分隔。
里面值的類型可以是任意類型,字符串、數值、布爾值、數組、對象都可以。一個數組里可以有多個類型的值。
索引號也叫下標號。它是從0開始的整數字。
寫個例子:
var a = ["北京","河北","天津"]; var b = a[0]; //b的值是:北京也可以定義空數組,比如:
var a = [];可以通過給數組賦值改變數組的元素的值,比如:
<div id="test"></div><script> var a = ["北京","河北","天津"]; a[0] = "上海";document.getElementById("test").innerHTML = a; </script>數組a的第一個值就變成上海了。
-JS的對象
對象和數組很像。其實,數組是一種特殊類型的對象。
對象也是存儲多個值的,只不過,對象里的值不叫值,叫屬性。和我們學HTML里的屬性類似。
對象是用大括號定義的。里面可以有多個屬性,多個屬性用逗號分隔,屬性是由名稱:值的形式寫的。名稱和值用冒號分隔。它的格式如下:
{name1:value1,name2:value2,……}
屬性值可以是任意數據類型。
也可以定義空對象,比如:
var a = {};獲取對象的值,是通過訪問屬性名稱來實現獲取相應的值,有兩種寫法。如下:
var people = {eye:"black",height:180,weight:"70kg" }我們定義了一個people對象。我們想獲取eye的值,可以有下面兩種寫法:
var a = people.eye; var b = people['eye'];用點(.)或者中括號[]都可以。
是不是和數組很像?定義的時候,把中括號換成了大括號,訪問的時候,下標由數字換成了屬性名。
對象不光有屬性,還有方法。
結合我們生活中的例子,其實,對象隨處可見。
比如,一個人就可以是一個對象,一輛車也可以是一個對象。
屬性一般是對象自有的靜態屬性。比如人的身高、體重、鼻子、眼睛等等。
方法一般是對象的動態行為。比如人的跑、跳等等。
本質上,所有的數據類型都是屬于對象,他們都有對應的屬性和方法。
什么時候用數組,什么時候用對象呢?
一般需要指定屬性名的時候,用對象,否則用數組。
undefined:在JS中,沒有值的變量,其值是undefined。比如:
<div id="test"></div><script> var a; document.getElementById("test").innerHTML = a; </script>div標簽里將顯示undefined。
undefined類型就是undefined。
注意一點,空字符串不是undefined,空字符串的值是空,類型是字符串。比如:
var a = ""; //a的值是空。null:就是nothing,不存在的事物。但是,它的數據類型是對象。可以理解成一個不存在的對象。
null一般是我們在調取后臺接口的時候,如果后臺傳過來的是個空,前端一般會顯示成null。
undefined和null的值是相等的,但是類型不一樣。
像null、undefined、NaN這種值,一般是在程序報錯的時候才會出現,正常寫程序的時候,一般用不到它們。當報錯的時候,知道錯誤原因就可以了。
- JS的typeof運算符
我們可以通過typeof運算符來確定JS變量的類型。
typeof "Bill" //返回 "string" typeof 3.14 //返回 "number" typeof NaN //返回 "number" typeof false //返回 "boolean" typeof [1,2,3,4] //返回 "object" typeof undefined //返回 "undefined" typeof null //返回 "object" typeof {name:'Bill', age:62} //返回 "object"數組返回的是object,因為在JS中,數組是對象。
null也算是一種特殊的對象.
其他更多的技術文章,大家可以搜索微信公眾號“劉小妞的棲息地”或者掃描下面的圖片閱讀,如果有寫的不好的地方,歡迎大家指教。也希望這些能夠幫助到大家。
總結
以上是生活随笔為你收集整理的JS的数据类型分类以及用法,没有这些基础,学不好js的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx日志格式分析
- 下一篇: Android 判断当前设备是手机还是平