相關文章
博客原文
數(shù)據(jù)類型總結(jié)——概述
數(shù)據(jù)類型總結(jié)——String(字符串類型)
數(shù)據(jù)類型總結(jié)——Number(數(shù)值類型)
數(shù)據(jù)類型總結(jié)——Boolean類型(布爾類型)
數(shù)據(jù)類型總結(jié)——null和undefined
數(shù)據(jù)類型總結(jié)——基本包裝類型
數(shù)據(jù)類型總結(jié)——Array(數(shù)組類型)
大綱
前言
1串纺、關于類型聲明
2真慢、關于強類型和弱類型
3、關于數(shù)據(jù)類型
4乒验、關于數(shù)據(jù)類型的引用類型
5较雕、基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的比較
前言
數(shù)據(jù)類型是每一種語言都需要掌握的內(nèi)容,掌握每一種數(shù)據(jù)類型的使用是掌握這門語言必不可少的。而我也對數(shù)據(jù)類型寫了一系列的博客哮伟,其中包含了對某一數(shù)據(jù)類型的概念的認識和理解以及常使用的方法干花。以下是我對JavaScript這門語言的數(shù)據(jù)類型的總體認識和理解,希望能對讀者有所幫助澈吨。
1把敢、關于類型聲明
有些程序設計語言要求程序員在聲明變量的同時還必須明確地對其數(shù)據(jù)類型做出聲明弧轧,這種做法稱為類型聲明(typing)武花。但是在JavaScript腳本中為他們做出聲明和進行賦值的語法無任何區(qū)別。
2稚配、關于強類型和弱類型
要求程序員必須明確地對數(shù)據(jù)類型做出聲明的程序設計語言被稱為強類型(strongly typed)語言桑阶。像JavaScript這樣不要求程序員進行類型聲明的語言則稱為弱類型(weakly typed)柏副。所謂弱類型以為這程序員可以隨意更改某個變量的數(shù)據(jù)類型。
3蚣录、關于數(shù)據(jù)類型
1割择、ECMAScript由五種簡單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined、Null萎河、Boolean荔泳、Number、String虐杯。
2玛歌、一種復雜數(shù)據(jù)類型:Object,Object實際上是由一組無序的名值對組成的擎椰。
3支子、ECMAScript不支持任何自定義類型的機制,而最終所有值都將是上述的六種數(shù)據(jù)類型之一达舒。
4值朋、關于數(shù)據(jù)類型的引用類型
1、引用類型的值(對象)是引用類型的一個實例巩搏。
2昨登、引用類型也可稱為對象定義,因為它們描述的是一類對象所具有的屬性和方法塔猾,雖然引用類型與類看起來相似篙骡,但它們不是相同的概念。
3丈甸、盡管ECMAScript從技術上講是一門面向?qū)ο蟮恼Z言糯俗,但它不具備傳統(tǒng)的面向?qū)ο笳Z言所支持的類和接口等基本結(jié)構(gòu)。
5睦擂、基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的比較
1得湘、ECMAScript中包含兩種不同類型的值:基本類型和引用類型。
2顿仇、在將一個值賦給變量時淘正,解析器必須確定這個值是基本類型還是引用類型的值摆马。
3、基本數(shù)據(jù)類型的值是保存在棧中鸿吆,有5種基本數(shù)據(jù)類型:Undefined囤采、Null、Boolean惩淳、Number蕉毯、String,這5種基本數(shù)據(jù)類型是按值訪問的思犁,因為可以操作保存在變量中的實際的值代虾。
4、引用類型的值是保存在內(nèi)存中的對象激蹲。與其他對象不同棉磨,JavaScript不允許直接訪問內(nèi)存中的位置,也就是說不能直接操作對象的內(nèi)存空間学辱。在操作對象時乘瓤,實際上是在操作對象的引用而不是實際對象。為此馅扣,引用類型的值是按引用訪問的着降。對象是直接保存在堆中的任洞,變量中保存的是對象的引用交掏,也就是對象的地址盅弛,這個變量的值保存在棧中。操作對象實際上是通過變量操作保存在變量中的對象的引用讨盒。
5步责、定義基本類型值和引用類型值的方式是類似的。
/*
定義基本類型值和引用類型值的方式是類似的:創(chuàng)建一個變量并為該變量賦值振乏。但是當這
個值保存到變量中以后,對不同類型可以執(zhí)行的操作則大相徑庭赋咽。對于引用類型的值脓匿,我們可以
為其添加屬性和方法陪毡,也可以改變和刪除其屬性和方法毡琉。而基本類型的值則不行桅滋。
*/
//引用類型
var person = new Object();
person.name = "Nicholas";
console.log(person.name);//Nicholas
//基本類型
var name = "Nicholas";;
name.age = 27;
console.log(name.age);//undefined
6、不同數(shù)據(jù)類型之間的復制煌珊。
基本類型的值的復制是值的復制定庵,復制之后的兩個變量是完全獨立的兩個變量蔬浙,可以獨自參與任何操作而不受任何影響敛滋。但是對象的復制是引用的復制绎晃,也就是將地址也就是對象的引用復制給變量,兩個不同的變量指向的對象是同一個擎勘。(其中涉及到了深拷貝和淺拷貝的問題,具體可以參考本人的另一篇博客:JavaScript的深拷貝和淺拷貝)