JS有哪些數(shù)據(jù)類型和常用方法

大家好敬察,我是IT修真院鄭州分院第三期的學(xué)員高雪峰薪捍,一枚正直、純潔抽兆、善良的前端程序員

今天給大家分享一下识补,修真院官網(wǎng)JS(職業(yè))任務(wù)1,深度思考中的知識點——JS有哪些數(shù)據(jù)類型和常用方法

1.背景介紹

我們目前對Javascript多少都有一些了解和使用辫红。其中最基礎(chǔ)的凭涂,就是js的數(shù)據(jù)類型,分為兩大塊贴妻,一個是基本數(shù)據(jù)類型切油,包括:undefined、null名惩、boolean澎胡、number、string等娩鹉;一個是引用數(shù)據(jù)類型攻谁,包括object、array弯予、Date戚宦、RegExp等。在引用類型中锈嫩,還有三個特殊的引用類型受楼,和基本數(shù)據(jù)類型相似,我們接下來來認識一下:boolean呼寸、number艳汽、string。

2.知識剖析

2.1 特殊的引用類型之string

var a = "Hello World!";

var b = a.substring(3);

console.log(b);? // "lo World!"

如同上邊代碼所示对雪,字符串是一個基本數(shù)據(jù)值河狐。但是,我們知道基本數(shù)據(jù)類型不是對象慌植,在邏輯上來講甚牲,它不應(yīng)該有方法义郑,但是上邊的substring()是如何實現(xiàn)的呢蝶柿?詳細剖析的話,我們可以把它分成一下這種步驟:

var a = new String("Hello World!");//創(chuàng)建String類型的一個實例非驮;

var b = a.substring(3); //在實例上調(diào)用指定的方法交汤;

a = null; //銷毀這個實例;

console.log(b);? // "lo World!"

通過上一頁的代碼細節(jié)的展示,我們可以看出芙扎,基本類型的字符串就變成了和對象一樣星岗。這就引入了基本包裝類型的概念:每當(dāng)讀取一個基本類型值的時候,后臺就會創(chuàng)建一個對應(yīng)的基本包裝類型的對象戒洼,從而讓我們能夠調(diào)用一些方法來操作這些數(shù)據(jù)俏橘。

作為特殊的引用類型,其與引用類型的的主要區(qū)別在于對象的生存期上圈浇。使用new或者其他簡寫的方法創(chuàng)建引用類型的實例寥掐,在執(zhí)行六離開當(dāng)前作用域之前都一直保存在內(nèi)存中。自動創(chuàng)建的基本包裝類型的對象磷蜀,則只存在于一行代碼執(zhí)行的瞬間召耘,然后立即被銷毀了。這就意味著褐隆,不能在運行時為基本類型值添加屬性和方法污它。

var a = "something";

a.color = "red";

console.logo(a.color); //undefined

String類型在ECMAScript中提供了一些方法,用于對字符串進行解析和操作庶弃。

//字符方法

var svalue = "Hello World!";

console.log(svalue.length); ? // 12

console.log(svalue.charAt(4)); ?// o ?首位和數(shù)組一樣衫贬,index從0開始

console.log(svalue.charCodeAt(4)); //這里會顯示字符編碼

console.log(svalue[3]); //這個方法支持IE8+ 及所有其他瀏覽器,顯示結(jié)果和svalue.charAt(3)一樣

字符串的方法:

concat()用于對一個或者多個字符串進行拼接顯示虫埂,生成新的字符串祥山,不會影響原有字符串。

//字符串方法

var svalue = "Hello";

var result = svalue.concat("Da Wa");

console.log(result);

console.log(svalue);

var b = svalue + 'Er Wa';

相比于concat()方法掉伏,我們一般較多使用的是 “+”的方法進行字符串的拼接顯示缝呕,也比較方便簡單。

還有三種創(chuàng)建新字符串的方法:slice()斧散、substr()供常、substring()。以上三種方法都可輸入1到2個參數(shù)鸡捐。三種方法的第一個參數(shù)都是指字符串操作的起始位置栈暇,slice()、substring()的第二個參數(shù)指的是結(jié)束位置后一個位置的箍镜,substr()的第二個參數(shù)則指的是從第一個參數(shù)開始的位置起要返回的字符的個數(shù)源祈。這里注明一下。同時在參數(shù)為負值時的表現(xiàn)效果和定義也不一致色迂,需要注意香缺!

var a = "tianqingle";

console.log(a.slice(3)); //“nqingle”

console.log(a.substring(3)); //“nqingle”

console.log(a.substr(3)); //“nqingle”

console.log(a.slice(3, 7)); //"nqin"

console.log(a.substring(3, 7)); //"nqin"

console.log(a.substr(3, 7)); //“nqingle”

2.4 特殊的引用類型之Boolean

var aobj = new Boolean(false);

var result = aobj && true;

console.log(result); ? // ?true

var bvalue = false;

result = bvalue && true;

console.log(result); // ?false

在布爾值運算中,fals&&true返回false歇僧,一假全假图张;布爾表達式中所有對象會返回true。

console.log(typeof aobj); ?//object

console.log(typeof bvalue); // ?boolean

console.log(aobj instanceof Boolean); ? // ?true

console.log(bvalue instanceof Boolean); ?// ?false

由于以上的原因,建議輕易不要使用Boolean對象祸轮。

2.3 特殊的引用類型之Number

Number類型是與數(shù)字值對應(yīng)的引用類型兽埃。

var num = new Number(100);

console.log(num.toString()); ? ?// ?"100"

console.log(num.toLocaleString()); ?// ?"100"

console.log(num.valueOf()); ? // ?100(數(shù)字,不是字符串适袜,和上邊有區(qū)別)

console.log(num.toFixed(3));? //? 100.000

console.log(num.toExponential(3));? //? ? 1.000e+2 (指數(shù)顯示)

console.log(num.toPrecision(2));? ? //? ? 1.0e+2 ?(根據(jù)需要顯示的位數(shù)柄错,自行判斷是使用指數(shù)顯示還是整數(shù)顯示或者浮點數(shù)顯示) ? 支持1到21位小數(shù)

與Boolean類型一樣,同樣不建議顯式實例化Number類型苦酱,原因同Boolean類型一樣鄙陡,在使用valueOf()和instanceof()方法時會出現(xiàn)容易讓人誤解的結(jié)果,從而造成混亂躏啰。

3.常見問題

問題: 如何分割一個很長的字符串趁矾?

4.解決方案

通過字符串模式匹配的方法。

var s = "天上的云给僵,地上的水毫捣,水清了,就可以低頭看見天上的云帝际!"蔓同;

var b = s.split(',');

var c = s.split(',',2);

console.log(b); ?// ?會顯示一個分割后的字符串?dāng)?shù)組

console.log(c); ? // ?根據(jù)顯示的項數(shù),只顯示前幾項

5.編碼實戰(zhàn)

參看上邊簡單的demo演示蹲诀,暫無更多demo斑粱!

6.擴展思考

問題: 如何替換子字符串的內(nèi)容?

這里使用了replace()的方法:

var h = "cat, bat, sat, fat";

console.log(h.replace("at", "ond")); ?// ?只會修改第一個與“at”相匹配的內(nèi)容

console.log(h.replace(/at/g, "end")); ?// ?使用正則脯爪,由于追加使用全局g则北,會將全部與“at”匹配的內(nèi)容都更換掉

7.參考文獻

參考一:JavaScript高級程序設(shè)計

8.更多討論

討論點:大家對于基本包裝類型還有哪些認識,分享一下痕慢?

PPT: https://ptteng.github.io/PPT/PPT/js-01-JS%20basic%20package%20type.html#/

視頻鏈接:https://v.qq.com/x/page/d0517gyp303.html


JavaScript中的基本包裝類型_騰訊視頻

文本鏈接: http://www.jnshu.com/daily/26631?dailyType=others&total=152&page=1&uid=7446&sort=0&orderBy=3

------------------------------------------------------------------------------------------------------------------------

技能樹.IT修真院

“我們相信人人都可以成為一個工程師尚揣,現(xiàn)在開始,找個師兄掖举,帶你入門快骗,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷盟危”方篮。

這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線励负,學(xué)習(xí)透明化藕溅,成長可見化,師兄1對1免費指導(dǎo)熄守◎诳澹快來與我一起學(xué)習(xí)吧~

你可以直接點擊此鏈接:http://jnshu.com/login/1/84959420

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市裕照,隨后出現(xiàn)的幾起案子攒发,更是在濱河造成了極大的恐慌,老刑警劉巖晋南,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惠猿,死亡現(xiàn)場離奇詭異,居然都是意外死亡负间,警方通過查閱死者的電腦和手機偶妖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來政溃,“玉大人趾访,你說我怎么就攤上這事《” “怎么了扼鞋?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長愤诱。 經(jīng)常有香客問我云头,道長,這世上最難降的妖魔是什么淫半? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任溃槐,我火速辦了婚禮,結(jié)果婚禮上科吭,老公的妹妹穿的比我還像新娘昏滴。我一直安慰自己,他們只是感情好对人,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布影涉。 她就那樣靜靜地躺著,像睡著了一般规伐。 火紅的嫁衣襯著肌膚如雪蟹倾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天猖闪,我揣著相機與錄音鲜棠,去河邊找鬼。 笑死培慌,一個胖子當(dāng)著我的面吹牛豁陆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吵护,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盒音,長吁一口氣:“原來是場噩夢啊……” “哼表鳍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祥诽,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤譬圣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雄坪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厘熟,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年维哈,在試婚紗的時候發(fā)現(xiàn)自己被綠了绳姨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡阔挠,死狀恐怖飘庄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情购撼,我是刑警寧澤竭宰,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站份招,受9級特大地震影響切揭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锁摔,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一廓旬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谐腰,春花似錦孕豹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至砸西,卻和暖如春叶眉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芹枷。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工衅疙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸳慈。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓饱溢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親走芋。 傳聞我的和親對象是個殘疾皇子绩郎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容