国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript中的數(shù)據(jù)類型回顧

ralap / 3149人閱讀

摘要:一門語(yǔ)言可以使用的值的類型,稱為該語(yǔ)言的數(shù)據(jù)類型。中沒(méi)有為字符串定義特殊的數(shù)據(jù)類型。布爾類型表示值和值。輸出支持的布爾操作包括邏輯與邏輯或和邏輯非。在很多常見(jiàn)任務(wù)中,布爾操作對(duì)于檢驗(yàn)要求輸入的字符串非常有用。

1、標(biāo)識(shí)符(Names)

標(biāo)識(shí)符由一個(gè)字母、下劃線和美元符開(kāi)頭,其后可以選擇性的加上一個(gè)或多個(gè)字母、數(shù)字或下劃線。標(biāo)識(shí)符不能使用下面這些保留字:

abstract
boolean、break、byte
case、catch、char、class、const、continue
debugger、default、delete、do、double
else、enume、export、extends
false、final、finally、float、for、function
goto
if、implement、import、in、instanceof、int、interface
long
native、new、null
package、private、protected、public
return
short、static、supper、switch、synchronized
this、throw、throws、transient、true、try、typeof
var、volatile、void
while、with

在這個(gè)列表中大部分保留字尚未在這門語(yǔ)言中使用。這個(gè)列表不包括一些本應(yīng)該被保留而沒(méi)有保留的字,諸如undefined、NaN和Infinity。JavaScript不允許使用保留字來(lái)命名變量或參數(shù)。更糟糕的餓是,JavaScript不遜雨在對(duì)象字面量中,或者用點(diǎn)運(yùn)算符提取對(duì)象屬性時(shí),使用保留字作為對(duì)象的屬性名。

標(biāo)識(shí)符被用于語(yǔ)句、變量、參數(shù)、屬性名、運(yùn)算符和標(biāo)記。

2、數(shù)值(Numbers)

與其他任邊吃語(yǔ)言一樣,JavaScript可以處理諸如數(shù)據(jù)或文本的值。一門語(yǔ)言可以使用的值的類型,稱為該語(yǔ)言的數(shù)據(jù)類型。JavaScript支持基本的數(shù)值和字符串的數(shù)據(jù)類型。在JavaScript中,所有數(shù)值都是64位雙精度的,取值范圍從-5e-324到1.7976931348623157e308。也就是說(shuō),在JavaScript中整數(shù)和浮點(diǎn)數(shù)之間并沒(méi)有什么區(qū)別,二者都是數(shù)值。下面的例子使用了typeof操作符進(jìn)行演示:

> typeof 1;
"number"
> typeof 1.5;
"number"

所有JavaScript數(shù)值都是按照IEEE-754雙精度二進(jìn)制數(shù)標(biāo)準(zhǔn)進(jìn)行表示。當(dāng)執(zhí)行算術(shù)運(yùn)算時(shí)應(yīng)該注意一些問(wèn)題。例如,在把兩個(gè)數(shù)值相加時(shí),在你的腦海中這是一個(gè)通用的操作,然而在JavaScript中可能會(huì)獲得令人大感意外的結(jié)果,下面的代碼演示看著一問(wèn)題:

> .1 + .2;
0.30000000000000004

JavaScript沒(méi)有內(nèi)置的十進(jìn)制數(shù)據(jù)類型,但JavaScript為數(shù)值提供了兩個(gè)方法:toPrecision和toFixed,這兩個(gè)方法可以按照固定位數(shù)的小數(shù)來(lái)格式化數(shù)值。下面的代碼演示了著兩個(gè)方法的使用:

> var num = 1234.123454321;
> num.toFixed(2);
"1234.12"
> var num2 = 1234.123454321;
> num2.toPrecision(8);
"1234.1235"

如果使用了一個(gè)超出64位范圍的數(shù)值,或者獲得一個(gè)超出64位范圍的值,JavaScript將返回一個(gè)特殊的值:Infinity(無(wú)窮大)或者-Infinity(負(fù)無(wú)窮大)。除數(shù)為0將返回Infinity。其他特殊值還包括NaN,他表示一個(gè)“非數(shù)值”,她是一個(gè)容易產(chǎn)生錯(cuò)誤的值,常常是一些BUG的根源。

當(dāng)試圖將一個(gè)無(wú)效字符串對(duì)象轉(zhuǎn)換為一個(gè)數(shù)值時(shí),結(jié)果為NaN值。NaN具有“毒性”,在NaN值與數(shù)值之間執(zhí)行一個(gè)操作將返回一個(gè)NaN值。可以使用內(nèi)置的isNaN()函數(shù)來(lái)檢查一個(gè)變量是否是NaN值。

> 10 * 1 + 100 - 1 -NaN;
NaN
> var x = NaN;
> isNaN(x);
true

JavaScript支持八進(jìn)制(基數(shù)為8)和十六進(jìn)制(基數(shù)為16)。八進(jìn)制字面值用一個(gè)0(即零)作為前綴,十六進(jìn)制數(shù)值則以一個(gè)x作為前綴。

JavaScript內(nèi)置Math對(duì)象用于常見(jiàn)的數(shù)學(xué)運(yùn)算。例如,可以使用Math.round()方法獲得兩位數(shù)的精度。

> Math.round( (.1+.2)*100)/100;
0.3

充分利用內(nèi)置對(duì)象可以節(jié)省時(shí)間、提高效率。

3、字符串(Strings)

字符串是一個(gè)由0個(gè)或多個(gè)16位的Unicode字符組成的系列,使用單引號(hào)或雙引號(hào)將字符串括起。這里強(qiáng)調(diào)它是Unicode字符,是出于國(guó)際化環(huán)境中使用JavaScript的重要性。JavaScript中沒(méi)有為字符串定義特殊的數(shù)據(jù)類型。字符串也是(不可變)對(duì)象,一旦被創(chuàng)建,就永遠(yuǎn)無(wú)法改變它。但你可以很容易的通過(guò) + 運(yùn)算符連接其他字符串來(lái)創(chuàng)建一個(gè)新字符串。兩個(gè)包含著完全相同的字符且字符順序也相同的字符串被認(rèn)為是相同的字符串。所以:

> "c" + "a" + "t" === "cat";
true

字符串是對(duì)象,因此字符串具有一些相應(yīng)的屬性和方法。字符串有一個(gè)length屬性。例如,"JavaScript".length是10;再比如下面的代碼:

> "test String".indexOf("s");
2
> "test String".charAt(5);
"S"

我們也可以擴(kuò)展內(nèi)置的String對(duì)象以滿足開(kāi)發(fā)人員的需要。

4、布爾(Boolean)

Boolean類型表示true值和false值。在適當(dāng)?shù)纳舷挛闹校热缭谝粋€(gè)if語(yǔ)句中,任何條件判斷的值都將被轉(zhuǎn)換為Boolean值以判斷“真”或“假”。在判斷條件中,空字符串、NaN值、null、undefined、數(shù)值0和關(guān)鍵字false都將被計(jì)算為false,其它的任何值都將被解析為true。

if("") {
  console.log("something happens");
} else {
  console.log("nothing happens");
}
//輸出:nothing happens

JavaScript支持的布爾操作包括:邏輯與(&&)、邏輯或(||)和邏輯非(!)。在很多常見(jiàn)任務(wù)中,布爾操作對(duì)于檢驗(yàn)要求輸入的字符串非常有用。

function validate(){
    var name_input = "java";
    var age_input;
    return name_input && age_input;
}
if(validate()){
    console.log("pass");
} else {
    console.log("fail");
}
//輸出 fail

NaN值表示一個(gè)非數(shù)值的值,但你如果輸入下面的代碼,結(jié)果將會(huì)很奇怪:

> typeof NaN;
"number"

這是typeof操作符奇怪的行為之一。

5、類型比較

JavaScript具有等于(==)操作符和等同(===)操作符。==操作符是危險(xiǎn)的,因?yàn)樗趫?zhí)行比較之前,強(qiáng)制執(zhí)行類型轉(zhuǎn)換。例如:

> 1 == "1";
true

顯然,這不是我們想要的比較結(jié)果。如果左操作數(shù)和右操作數(shù)真正完全相同,===操作符才會(huì)返回true。

> 1 === "1";
false

對(duì)應(yīng)的還有!=和!==操作符,請(qǐng)總是使用===和!==操作符。

6、日期(Data)

JavaScript內(nèi)置了Date對(duì)象,可以使用new操作符和Date()構(gòu)造函數(shù)來(lái)創(chuàng)建Date對(duì)象,Date對(duì)象用于表示日期和時(shí)間。不帶任何參數(shù)創(chuàng)建一個(gè)新的Date對(duì)象,獲得的是一個(gè)表示當(dāng)前日期和時(shí)間的Date對(duì)象。

> var thisMoment = new Date();
> console.log(thisMoment);
Date {Sun Aug 30 2015 10:47:14 GMT+0800}
> thisMoment.getFullYear();
2015

雖然Date是一個(gè)方便的對(duì)象,了解該對(duì)象當(dāng)然還是有用的。強(qiáng)烈建議使用開(kāi)源的Date.js庫(kù)來(lái)執(zhí)行日期/時(shí)間的計(jì)算,可以從https://github.com/datejs/Datejs找到該js庫(kù),datajs官方網(wǎng)站現(xiàn)在已經(jīng)無(wú)法打開(kāi),返回503狀態(tài)。

7、其他類型

聲明一個(gè)變量時(shí)未對(duì)其賦值,或者訪問(wèn)了一個(gè)不存在的對(duì)象屬性,結(jié)果都會(huì)產(chǎn)生一個(gè)稱為undefined的類型。null時(shí)JavaScript的一個(gè)內(nèi)置對(duì)象,它表示沒(méi)有值。在執(zhí)行比較操作時(shí),undefined和null二者都被裝換成false值,但是最好避免使用undefined。在很多JavaScript解析器中,undefined是可以重新賦值的,因而可能會(huì)產(chǎn)生存在弊病的代碼:

undefined = true;
if(undefined){
    console.log("騙你!");
}
//輸出:騙你!

下面列出了JavaScript支持的各種數(shù)據(jù)類型。正則表達(dá)式,或稱為RegEx不在這里介紹。

Number

String

Boolean

Object

Function

Array

Date

RegEx

Null

Undefined

在使用try/catch語(yǔ)句時(shí),某些附加的內(nèi)置error類型是非常有用的。通常在throw語(yǔ)句中創(chuàng)建error對(duì)象。

try{
    throw new Error("非常糟糕的事情發(fā)生了!");
}catch(e){
    console.log(e.name + ":" + e.message);
}
//輸出:Error:非常糟糕的事情發(fā)生了!

下面的列表列出了各種不同的error類型

Error

EvalError

RangError

ReferenceError

SyntaxError

TypeError

URIError

對(duì)于我來(lái)說(shuō),最常見(jiàn)的莫過(guò)于SyntaxError這個(gè)經(jīng)典的語(yǔ)法錯(cuò)誤,太熟悉了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/86288.html

相關(guān)文章

  • JavaScript中的數(shù)據(jù)類型回顧

    摘要:一門語(yǔ)言可以使用的值的類型,稱為該語(yǔ)言的數(shù)據(jù)類型。中沒(méi)有為字符串定義特殊的數(shù)據(jù)類型。布爾類型表示值和值。輸出支持的布爾操作包括邏輯與邏輯或和邏輯非。在很多常見(jiàn)任務(wù)中,布爾操作對(duì)于檢驗(yàn)要求輸入的字符串非常有用。 1、標(biāo)識(shí)符(Names) 標(biāo)識(shí)符由一個(gè)字母、下劃線和美元符開(kāi)頭,其后可以選擇性的加上一個(gè)或多個(gè)字母、數(shù)字或下劃線。標(biāo)識(shí)符不能使用下面這些保留字: abstract boolean...

    ideaa 評(píng)論0 收藏0
  • JavaScript回顧學(xué)習(xí):數(shù)據(jù)類型

    摘要:本篇文章將回顧學(xué)習(xí)種基本類型和及數(shù)據(jù)類型之間的轉(zhuǎn)化。如果不能,再調(diào)用對(duì)象的方法,再測(cè)試返回值是否可以被轉(zhuǎn)化為數(shù)值。首先可以用于任何數(shù)據(jù)類型,另外兩個(gè)則是專門用于把字符串轉(zhuǎn)換成數(shù)值。 概述 ECMAScript中有5中基本數(shù)據(jù)類型:Undefined,Null,Boolean,Number,String,還有一種復(fù)雜數(shù)據(jù)類型對(duì)象(Object),Object本質(zhì)上是由一組無(wú)序的名值對(duì)組成...

    youkede 評(píng)論0 收藏0
  • 基礎(chǔ)回顧javascript數(shù)據(jù)類型

    摘要:棧區(qū)由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。屬性返回對(duì)創(chuàng)建此對(duì)象的構(gòu)造函數(shù)的引用。所有的和都是宿主對(duì)象參考高級(jí)程序設(shè)計(jì)堆和棧的概念和區(qū)別全面解析中的數(shù)據(jù)類型與類型轉(zhuǎn)換 數(shù)據(jù)類型 數(shù)據(jù)類型劃分 javascript中定義了6中基本數(shù)據(jù)類型(原始值類型),和一種復(fù)雜數(shù)據(jù)類型(引用類型),所謂復(fù)雜類型,其本質(zhì)是由無(wú)序的名值對(duì)(key:val...

    codergarden 評(píng)論0 收藏0
  • 重新回顧JavaScript的數(shù)值類型

    摘要:中有兩中數(shù)值類型基本數(shù)值類型和對(duì)象類型引用數(shù)據(jù)類型基本數(shù)據(jù)類型新增對(duì)象類型可變與不可變基本上數(shù)據(jù)類型是不可變的,我們不能給他添加屬性,即使添加了屬性也是無(wú)效的。基本上數(shù)據(jù)類型比較很簡(jiǎn)單,常規(guī)思維可以理解基本數(shù)據(jù)類型對(duì)比,沒(méi)毛病,很好理解。 JavaScript中有兩中數(shù)值類型:基本數(shù)值類型和對(duì)象類型(引用數(shù)據(jù)類型) 基本數(shù)據(jù)類型: Boolean undefined Null ...

    cncoder 評(píng)論0 收藏0
  • 前端面試回顧(1)---javascript的面向?qū)ο?/b>

    摘要:每個(gè)類有三部分構(gòu)成第一部分是構(gòu)造函數(shù)內(nèi),供實(shí)例對(duì)象化復(fù)制用。第二部分是構(gòu)造函數(shù)外,直接通過(guò)點(diǎn)語(yǔ)法添加,供類使用,實(shí)例化對(duì)象訪問(wèn)不到。組合繼承還有一個(gè)要注意的地方在代碼處,將子類原型的屬性指向子類的構(gòu)造函數(shù)。 前言 前一陣面試,過(guò)程中發(fā)現(xiàn)問(wèn)到一些很基礎(chǔ)的問(wèn)題時(shí)候,自己并不能很流暢的回答出來(lái)。或者遇到一些基礎(chǔ)知識(shí)的應(yīng)用,由于對(duì)這些點(diǎn)理解的不是很深入,拿著筆居然什么都寫不出來(lái),于是有了回顧一...

    animabear 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<