JS數(shù)據(jù)類型和常用方法?

大家好芳悲,我是IT修真院成都分院第一期的學員常開洋,一枚正直純潔善良的web前端程序員

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

大家好惹苗,我是IT修真院成都分院第一期的學員常開洋,一枚正直純潔善良的web前端程序員

1.背景介紹

“數(shù)據(jù)類型”在數(shù)據(jù)結構中的定義“一個值的集合以及定義在這個值集上的一組操作”淋纲。在編程語言中院究,能夠表示并操作的值的類型稱做數(shù)據(jù)類型。 JavaScript 語言的每一個值业汰,都屬于某一種數(shù)據(jù)類型。JavaScript 的數(shù)據(jù)類型为障,共有六種放祟。(ES6新增第七種 Symbol 一種數(shù)據(jù)類型,它的實例是唯一且不可改變的跪妥。類型的值)

2.知識剖析

字符串

字符串值是一個由零或多個 Unicode(統(tǒng)一碼) 字符(字母、數(shù)字和標點符號)組成的鏈表侦香。 使用字符串數(shù)據(jù)類型表示 JavaScript 中的文本纽疟。 在腳本中包含字符串,方法是使用單引號或雙引號將其括起來污朽。 被單引號引起的字符串內(nèi)可以包含雙引號,而被雙引號引起的字符串內(nèi)也可以包含單引號错蝴。

實例:

var answer="Nice to meet you!";

var answer="He is called 'Bill'"; //雙引號包含單引號

var answer='He is called "Bill"'; //單引號包含雙引號

數(shù)值 number

整數(shù) var x=1 //整數(shù)通過十進制颓芭,八進制等的字面值來表示 ;

浮點數(shù) var x=3.14 //數(shù)值中必須包含一個小數(shù)點,且小數(shù)點后必須有一位數(shù)字

在JavaScript內(nèi)部官紫,所有數(shù)字都是以64位浮點數(shù)形式儲存州藕,即使整數(shù)也是如此。所以床玻,1與1.0是相同的,是同一個數(shù)贫堰。

容易造成混淆的是待牵,某些運算只有整數(shù)才能完成,此時JavaScript會自動把64位浮點數(shù)缨该,轉成32位整數(shù),然后再進行運算蛤袒,參見《運算符》一節(jié)的”位運算“部分壮不。

注意:由于浮點數(shù)不是精確的值,所以涉及小數(shù)的比較和運算要特別小心隐孽。

實例: (0.3 - 0.2) === (0.2 - 0.1)//false

極大或極小的數(shù)字可以通過科學(指數(shù))計數(shù)法來書寫:

var y=123e5; // 12300000

var z=123e-5; // 0.00123

布爾值

雖然字符串和數(shù)字數(shù)據(jù)類型實際上可以有無限多個不同的值健蕊,但布爾值數(shù)據(jù)類型只能有兩個值。 它們是文本 true(真) 和 false(假)缩功。

實例:

var x=true;

var y=false;

對象

JavaScript 中的所有事物都是對象:字符串、數(shù)值虑稼、數(shù)組、函數(shù)...(萬物皆對象)

對象是帶有屬性和方法的特殊數(shù)據(jù)類型蛛倦。

創(chuàng)建對象有兩種方法:

1.定義并創(chuàng)建對象的實例

2.使用函數(shù)來定義對象溯壶,然后創(chuàng)建新的對象實例

篇幅有限,這里就只講下創(chuàng)建直接的實例對象且改。((object)是JavaScript的核心概念,推薦:http://javascript.ruanyifeng.com/grammar/object.html)碍拆,這個例子創(chuàng)建了對象的一個新實例效扫,并向其添加了四個屬性:

person=new Object(); //定義一個名為person的對象

person.firstname="Bill"; //對象firstname屬性值為Bill

person.lastname="Gates"; //對象lastname屬性值為Gates

person.age=56; //對象age屬性值為56

person.eyecolor="blue"; //對象eyecolor屬性值為blue

替代語法(使用對象 literals):

person={firstname:"John",lastname:"Doe",age:56,eyecolor:"blue"};

null

null 數(shù)據(jù)類型在 JavaScript 中僅具有一個值:null。null 關鍵字不能用作函數(shù)或變量的名稱浩习。

null用來表示空值济丘,即沒有對象被呈現(xiàn),可以通過將變量的值設置為 null 來清空變量:

var car="Volvo"; //把字符串Volvo賦值給變量car

document.write(car + "

"); //輸出變量car摹迷,應該顯示Volvo

var car=null; //把null賦值給變量car

document.write(car + "

"); //輸出變量car,應該顯示null

undefined

如果使用的對象屬性不存在近哟,或使用的是已聲明但未賦值的變量鲫寄,undefined 值將被返回。

一個未初始化的變量的值為undefined,一個沒有傳入實參的形參變量的值為undefined,如果一個函數(shù)什么都不返回,則該函數(shù)默認返回undefined戳玫。

你可以使用嚴格相等運算符來判斷一個值是否是undefined:

var x;

if (x === undefined) {

// 執(zhí)行到這里

}

else {

// 不會執(zhí)行到這里

}

3.常見問題

怎么樣判斷值的數(shù)據(jù)類型未斑?

4.解決方案

好用的typeof

typeof可以解決大部分的數(shù)據(jù)類型判斷,是一個一元運算,typeof運算符可以返回一個值的數(shù)據(jù)類型缆镣,可能有以下結果肌似。

var a="string"; console.log(typeof a); //string

var a=1; console.log(typeof a); //number

var a=false; console.log(typeof a); //boolean

var a; console.log(typeof a); //undfined

var a = null; console.log(typeof a); //object

var a = document; console.log(typeof a); //object

var a = []; console.log(a); //object

var a = function(){}; console.log(typeof a) //function 除了可以判斷數(shù)據(jù)類型還可以判斷函數(shù)類型

這樣一來就很明顯了,除了前四個類型外,null睬澡、對象、數(shù)組返回的都是object類型斗躏;對于函數(shù)類型返回的則是function昔脯。

然后這里就可以再引申出另一個灰常熱門并且解決方法已普遍存在的問題,如何判斷數(shù)據(jù)是個數(shù)組類型云稚?

js判斷數(shù)組類型的方法(這里只說一種最簡單的方法):

instance,故名思義燕雁,“實例”鲸拥,所以instanceof 用于判斷一個變量是否是某個對象的實例,是一個三元運算---和typeof最實質(zhì)上的區(qū)別 a instanceof b?alert("true"):alert("false") //注意b值是你想要判斷的那種數(shù)據(jù)類型捏浊,不是一個字符串撞叨,比如Array:

var a=[];

console.log(a instanceof Array) //返回true

5.編碼實戰(zhàn)

6.拓展思考

如何將字符串轉換為數(shù)字

更多請參考:http://www.runoob.com/js/js-type-conversion.html

7.參考文獻

w3c:http://www.w3school.com.cn/js/js_datatypes.asp

微軟Javascript開發(fā)者文檔:https://msdn.microsoft.com/zh-cn/library/7wkd9z69(v=vs.94).aspx

重點推薦:Javascript標準參考(阮一峰)

8.更多討論:判斷數(shù)據(jù)類型還有沒有更多方法?


小課堂視頻鏈接:https://v.qq.com/x/page/x0533v0tnua.html

下期不見不散~

今天的分享就到這里啦谒所,歡迎大家點贊、轉發(fā)姐军、留言、拍磚~

下期不見不散~

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末著觉,一起剝皮案震驚了整個濱河市惊暴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肄鸽,老刑警劉巖油啤,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逮诲,居然都是意外死亡,警方通過查閱死者的電腦和手機幽告,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門冗锁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒿讥,你說我怎么就攤上這事∶窖常” “怎么了摔敛?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長桃犬。 經(jīng)常有香客問我行楞,道長攒暇,這世上最難降的妖魔是什么形用? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮妒御,結果婚禮上镇饺,老公的妹妹穿的比我還像新娘。我一直安慰自己奸笤,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布肥橙。 她就那樣靜靜地躺著秸侣,像睡著了一般宠互。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上予跌,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天券册,我揣著相機與錄音,去河邊找鬼烁焙。 笑死,一個胖子當著我的面吹牛膳殷,可吹牛的內(nèi)容都是我干的九火。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼勒极,長吁一口氣:“原來是場噩夢啊……” “哼虑鼎!你這毒婦竟也來了辱匿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤散休,失蹤者是張志新(化名)和其女友劉穎乐尊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體限府,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡痢缎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年独旷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嵌洼。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡麻养,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鳖昌,到底是詐尸還是另有隱情,我是刑警寧澤懂盐,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布车要,位于F島的核電站,受9級特大地震影響类垫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悉患,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一榆俺、第九天 我趴在偏房一處隱蔽的房頂上張望坞淮。 院中可真熱鬧陪捷,春花似錦、人聲如沸啡直。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舷丹。三九已至,卻和暖如春颜凯,著一層夾襖步出監(jiān)牢的瞬間仗扬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凡简,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓帜乞,卻偏偏與公主長得像筐眷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匀谣,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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