變量和數(shù)據(jù)類(lèi)型

一.直接量(字面量)

字面量:英語(yǔ)叫做literals痘括,也做直接量』舆耄看見(jiàn)什么俊扳,它就是什么。

1. 數(shù)字的字面量

數(shù)字的字面量猛遍,就是這個(gè)數(shù)字自己

1.1 整數(shù)

三種進(jìn)制

整數(shù)可以被表示成十進(jìn)制(基數(shù)為10)馋记、十六進(jìn)制(基數(shù)為16)以及八進(jìn)制(基數(shù)為8)

10進(jìn)制:十進(jìn)制整數(shù)字組成的數(shù)字序列,

8進(jìn)制:帶前導(dǎo)0、0O懊烤、0o 的整數(shù)字面值表明它是八進(jìn)制梯醒。八進(jìn)制整數(shù)只能包括數(shù)字0-7。

16進(jìn)制:如帶前導(dǎo)0x,0X開(kāi)頭的就是十六進(jìn)制腌紧。十六進(jìn)制整數(shù)可以包含(0-9)和字母 a-f 或 A-F

// 八進(jìn)制  最終顯示是以十進(jìn)制方式顯示
alert(015)   // 1*8 + 5  =  13
alert(017)     // 1*8 + 7 *1 =15
alert(0o21)     // 2*8 + 1 *1 =17
alert(0O21);    // 2*8 + 1 *1 =17

八進(jìn)制0-7這八個(gè)數(shù)字,如果小時(shí)不合法,js還自動(dòng)給你轉(zhuǎn)成10進(jìn)制,轉(zhuǎn)不了就報(bào)錯(cuò)

console.log(088);  //88
// 按理說(shuō)以0開(kāi)頭是八進(jìn)制,但是后面數(shù)字寫(xiě)錯(cuò)了,所以以十進(jìn)制方式限制

如果以0o或0O開(kāi)頭的八進(jìn)制將報(bào)錯(cuò)

console.log(0o88);  // 報(bào)語(yǔ)法錯(cuò)誤
console.log(0O88);   // 報(bào)語(yǔ)法錯(cuò)誤
1.2 浮點(diǎn)數(shù)(小數(shù)或指數(shù))

小數(shù)的字面量也很簡(jiǎn)單茸习,就是數(shù)學(xué)上的點(diǎn)。計(jì)算機(jī)世界中壁肋,小數(shù)稱(chēng)為“浮點(diǎn)數(shù)”号胚。

浮點(diǎn)數(shù)字面值可以有以下的組成部分:

一個(gè)十進(jìn)制整數(shù),它可以帶符號(hào)(即前面的“+”或“ - ”號(hào))浸遗,如果整數(shù)部分是0可以不寫(xiě)

一個(gè)小數(shù)點(diǎn)

一個(gè)小數(shù)部分(由一串十進(jìn)制數(shù)表示)猫胁,

一個(gè)指數(shù)部分

console.log(3.14159269);
console.log(5e4);       //50000
console.log(5e-4)       //0.0005

注意:

只有十進(jìn)制有小數(shù)的字面量,八進(jìn)制跛锌、十六進(jìn)制沒(méi)有小數(shù)的字面量弃秆。所以小數(shù)沒(méi)有進(jìn)制之分

1.3 特殊字面量

Infinity 無(wú)窮大

Infinity 用于存放表示正無(wú)窮大的數(shù)值。

-Infinity 用于存放表示負(fù)無(wú)窮大的數(shù)值髓帽。

console.log(3e31415926);     // Infinity

NaN

英語(yǔ)全名叫做not a number菠赚,不是一個(gè)數(shù)。

console.log(0/0);   // NaN
1.4 總結(jié)一下郑藏,
  • 數(shù)字字面量有整數(shù)字面量(十進(jìn)制衡查、16進(jìn)制、八進(jìn)制)必盖,

  • 浮點(diǎn)數(shù)字面量(要記住e)拌牲,

  • 特殊字面量:Infinity,NaN

2. 字符串的字面量

字符串是一個(gè)術(shù)語(yǔ)筑悴,說(shuō)白了就是我們?nèi)苏f(shuō)的話们拙。

2.1 字符串字面量的書(shū)寫(xiě)方式

字符串的字面量有限定符,就是必須用雙引號(hào)阁吝、單引號(hào)包裹起來(lái)。字符串被限定在同種引號(hào)之間械拍;也就是說(shuō),必須是成對(duì)單引號(hào)或成對(duì)雙引號(hào)突勇。

console.log("今天你好帥哦");
2.2 特殊字符

在字符串中可以使用一些特殊字符,他們有特定的含義

\n New line 換行符
\t Tab tab縮進(jìn)

但是可以使用字符串中可以使用轉(zhuǎn)義字符装盯,

' 單引號(hào)
\” 雙引號(hào)
\ 反斜杠

二.變量

變量(Variables),和高中數(shù)學(xué)中的x甲馋、y埂奈、z很像,它們此時(shí)不是字母定躏,而是蘊(yùn)含值的符號(hào)账磺。

什么是變量呢?

就是值可以變化的符號(hào),能夠存儲(chǔ)JS不同數(shù)據(jù)類(lèi)型的值

1. 變量聲明

使用關(guān)鍵詞var

var a;  // 聲明一個(gè)變量a

所謂關(guān)鍵字,就是有特殊功能的小詞語(yǔ)痊远。關(guān)鍵字后面一定要有空格隔開(kāi).

2. 變量命名規(guī)則

變量的名字就是標(biāo)識(shí)符(identifiers)垮抗,任何標(biāo)識(shí)符的命名都需要遵守一定的規(guī)則:

JS中標(biāo)識(shí)符的定義規(guī)則,可先理解為變量的規(guī)則,以后我們還會(huì)接觸到其他標(biāo)識(shí)符

  • 由字母、下劃線(_)碧聪、美元($)符號(hào)冒版、數(shù)字(0-9)組成

  • 但不能以數(shù)字開(kāi)頭

    也就是說(shuō),一個(gè)標(biāo)識(shí)符必須由字母逞姿、下劃線辞嗡、美元符號(hào)開(kāi)頭,后續(xù)可以有字母滞造、下劃線续室、美元符號(hào)、數(shù)字

  • 嚴(yán)格區(qū)分大小寫(xiě)

    所以A和a不是同一個(gè)變量

  • 不要使用中文變量名

  • 不能使用關(guān)鍵字和保留字

    關(guān)鍵字=>js已經(jīng)賦予特殊功能的字 保留字=>js預(yù)訂可能未來(lái)要使用的字

關(guān)鍵字:

JS語(yǔ)法中有特殊意義的詞

break谒养、else猎贴、new、var蝴光、 case她渴、 finally 、 return蔑祟、 void 趁耗、 catch 、for 疆虚、switch 苛败、 while 、 continue径簿、 function 罢屈、this 、 with 篇亭、default 缠捌、 if 、 throw 译蒂、 delete 曼月、 in 谊却、 try 、do 哑芹、 instranceof炎辨、 typeof

保留字:

JS語(yǔ)法中現(xiàn)在不存在,但是以后會(huì)成為關(guān)鍵字的單詞(替補(bǔ)關(guān)鍵詞)

abstract 、 enum 聪姿、int 碴萧、 short 、 boolean 末购、export 破喻、interface、 static招盲、 byte 低缩、extends 、 long 曹货、 super 咆繁、 char 、 final 顶籽、native 玩般、synchronized 、 class 礼饱、float 坏为、 package 、throws 镊绪、 const 匀伏、goto 、private 蝴韭、transient 够颠、 debugger 、 implements 榄鉴、protected 履磨、 volatile 、 double 庆尘、import 剃诅、public

3. 變量的賦值

等號(hào)表示賦值,會(huì)將等號(hào)右邊的值驶忌,賦給左邊的變量矛辕。。

var a;      //定義
a = 200;    //賦初值
console.log(a);

運(yùn)行結(jié)果:200

3.1 可以將變量定義和賦值寫(xiě)在一起
var a = 200;
3.2 定位變量未賦值

用 var 聲明的未賦初值的變量,值會(huì)被設(shè)定為undefined

var a ;
console.log(a);

注意:

變量只需要var一次如筛,今后更改變量的值堡牡,無(wú)需重復(fù)var,如果多次定位也 不會(huì)報(bào)錯(cuò)

4. 變量聲明的提升

JavaScript 變量的另一特別之處是抒抬,你可以引用稍后聲明的變量杨刨,而不會(huì)引發(fā)異常。這一概念稱(chēng)為變量聲明提升.JavaScript 變量感覺(jué)上是被“舉起”或提升到了所有函數(shù)和語(yǔ)句之前擦剑。然而提升后的變量將返回 undefined 值妖胀,所以即使在使用或引用某個(gè)變量之后存在聲明和初始化操作,仍將得到 undefined 值惠勒。

5. 不寫(xiě)var的情況呢

我們可以直接使用一個(gè)變量赚抡,直接給它賦值,不寫(xiě)var纠屋。系統(tǒng)不會(huì)報(bào)錯(cuò)涂臣,但是這樣做,以后你會(huì)發(fā)現(xiàn)有后遺癥:這個(gè)變量不是局部變量售担,而是一個(gè)全局變量赁遗。

a = 33;
console.log(a);

7. 同時(shí)定義多個(gè)變量

定義多個(gè)變量時(shí),中間用逗號(hào)隔開(kāi)

var a = 7 , b = 9 , c = 10;

8. 區(qū)分變量還是直接量

變量的時(shí)候,不能加引號(hào)族铆。如果變量加上引號(hào)岩四,就變成字符串的直接量了。

var a = 200;
console.log("a");     //a

引號(hào)是“字符串”的定界符哥攘,所以在雙引號(hào)里面的a已經(jīng)失去了變量的意思剖煌,就是一個(gè)字符串a(chǎn)。

三. 數(shù)據(jù)類(lèi)型

JavaScript中的值逝淹,無(wú)論是字面量還是變量耕姊,都有明確的類(lèi)型。

1. 概述

1.1 基本類(lèi)型5種

number 數(shù)字類(lèi)型

string 字符串類(lèi)型

boolean 布爾類(lèi)型栅葡,僅有兩個(gè)值true 和 false茉兰,講if語(yǔ)句時(shí)我們細(xì)說(shuō)

undefined undefined類(lèi)型,這中類(lèi)型值只有一個(gè),就是undefined

null null類(lèi)型妥畏,這種類(lèi)型的值也就只有一個(gè)null,之后在說(shuō)

1.2 引用類(lèi)型

{ } 普通的對(duì)象

[ ] 數(shù)組對(duì)象

function 函數(shù)對(duì)象

學(xué)到了在講

2. 數(shù)據(jù)類(lèi)型的檢測(cè)

使用typeof關(guān)鍵字檢查數(shù)據(jù)類(lèi)型,通常用來(lái)檢測(cè)變量的類(lèi)型,以為直接量的類(lèi)型一眼就看的出來(lái)

檢測(cè)出的數(shù)據(jù)類(lèi)型是以字符串形式呈現(xiàn)的

console.log(typeof 123);       //number
console.log(typeof "haha");       //string

四. 運(yùn)算符:加號(hào) +

我們先講一個(gè)運(yùn)算符加號(hào)邦邦,因?yàn)樗容^特殊,我們先講

加法運(yùn)算符(+)在設(shè)計(jì)數(shù)字和字符串運(yùn)算的表達(dá)式中醉蚁,JavaScript 會(huì)把數(shù)字值轉(zhuǎn)換為字符串燃辖。

在其它類(lèi)型數(shù)據(jù)運(yùn)算時(shí),JavaScript語(yǔ)言不會(huì)把數(shù)字變?yōu)樽址?/p>

五. 數(shù)據(jù)類(lèi)型轉(zhuǎn)換

1. 轉(zhuǎn) number

有一些方法可以將內(nèi)存中表示其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字

  • Number()

    1. string "12px" => NaN “” => 0
    2. boolean true => 1 false => 0
    3. null null => 0
    4. undefined undefined => NaN
    Number('wuwei')
    
  • parseInt()

    parseInt 僅能夠返回整數(shù)网棍,所以使用它會(huì)丟失小數(shù)部分

    parseInt("250px")     //250
    

    另外黔龟,調(diào)用 parseInt 時(shí)最好總是帶上進(jìn)制(radix) 參數(shù),這個(gè)參數(shù)用于指定使用哪一種數(shù)制。

    parseInt(17,8);      // 15
    
  • parseFloat()

    parseFloat就是將字符串轉(zhuǎn)為浮點(diǎn)數(shù)

    盡可能的將一個(gè)字符串轉(zhuǎn)為浮點(diǎn)數(shù)

     console.log(parseFloat(123.456.888));   //123.456
    

    也就是說(shuō)氏身,數(shù)字類(lèi)型都是number巍棱,不分整數(shù)和浮點(diǎn)數(shù),但是轉(zhuǎn)換的+時(shí)候分蛋欣。

  • **正負(fù)運(yùn)算符 **

    console.log(+'88');
    

    正負(fù)號(hào)轉(zhuǎn)換為數(shù)字是內(nèi)部調(diào)用為了Number方法

2. 轉(zhuǎn) string
  • + 號(hào)運(yùn)算符

    將一個(gè)數(shù)字航徙,與一個(gè)空字符串進(jìn)行連字符運(yùn)算,那么就是自動(dòng)轉(zhuǎn)為字符串了陷虎。

    var a = 123;
    var b = a + "";
    console.log(b);
    console.log(typeof b);
    
3. 轉(zhuǎn) boolean
  • Boolean() 方法

    只有六種情況Boolean(被轉(zhuǎn)換的數(shù)據(jù))的結(jié)果是false,其余全是true

    1. 0 數(shù)字0
    2. NaN 數(shù)字NaN
    3. "" 空字符串
    4. false 布爾值false
    5. undefined undefined類(lèi)型
    6. null null類(lèi)型

    用的不多了解幾個(gè),大多用隱式轉(zhuǎn)換,這個(gè)后面會(huì)將,先了解

今天遇見(jiàn)的所有API:

alert("您好");

prompt("請(qǐng)輸入數(shù)字","默認(rèn)值");

console.log("您好");

Number(“33”)

parseInt("250",8);

parseFloat("250.666");

Boolean("")

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末到踏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子尚猿,更是在濱河造成了極大的恐慌窝稿,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凿掂,死亡現(xiàn)場(chǎng)離奇詭異伴榔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)庄萎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)踪少,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人惨恭,你說(shuō)我怎么就攤上這事秉馏。” “怎么了脱羡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵萝究,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我锉罐,道長(zhǎng)帆竹,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任脓规,我火速辦了婚禮栽连,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘侨舆。我一直安慰自己秒紧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布挨下。 她就那樣靜靜地躺著熔恢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪臭笆。 梳的紋絲不亂的頭發(fā)上叙淌,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天秤掌,我揣著相機(jī)與錄音,去河邊找鬼鹰霍。 笑死闻鉴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茂洒。 我是一名探鬼主播孟岛,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼获黔!你這毒婦竟也來(lái)了蚀苛?” 一聲冷哼從身側(cè)響起在验,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤玷氏,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后腋舌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體盏触,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年块饺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赞辩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡授艰,死狀恐怖辨嗽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淮腾,我是刑警寧澤糟需,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站谷朝,受9級(jí)特大地震影響洲押,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜圆凰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一杈帐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧专钉,春花似錦挑童、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至回怜,卻和暖如春大年,著一層夾襖步出監(jiān)牢的瞬間换薄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工翔试, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轻要,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓垦缅,卻偏偏與公主長(zhǎng)得像冲泥,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子壁涎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344