javascript 基礎一

來源:互聯網
上載者:User

兩年前在重溫javascript紅寶書《javascript進階程式設計》時,方便自己臨時查閱某些忘記的基礎知識,順便用evernote整理了一下筆記。這些年在cnblogs拜讀各位大神的blog,而自己沒寫過公開的blog。現在把筆記整理上來,希望對入門的童鞋有點點協助~   javascript基礎一,後面還有兩篇哦~可能個別文字或者表達有問題,歡迎各位指出     附上evernote的公開連結:https://app.yinxiang.com/shard/s10/sh/81bef8e2-f56f-4f28-bb74-ed81f413de2c/3d14cd48699ce4a4a2cea8f55fe8f0cf 標識符:以字母、底線或者貨幣符號開頭,標識符的其他字母可以是字母、底線、貨幣符號或者數字。不能以保留字、關鍵字、true、false或者null作標識符js區分大小寫var   var是一個關鍵字標識符即變數的名稱區分大小寫變數定義了而未初始化(即賦值)的變數,其值為undefined。undefined:任何未定義或者定義了但未初始化的變數,都會儲存undefined,使用未定義變數會報錯注意函數中定義變數為局部變數,隨函數退出時銷毀。變數可以儲存任何類型的值,而且可以隨時改變儲存的類型。資料類型(6種)5種基本(簡單)資料類型:Undefined、Null、Boolean、String、Number1種複雜類型:Objecttypeof操作符返回一個字串   eg:typeof "string""undefiend"-這個值未定義或者未初始化"string"-這個值是字串"boolean"-這個值是布爾值"number"-這個值是數值"object"-這個值是null或者對象"function"-這個值是函數注意:返回的字串是小寫字母開頭Undefined型別宣告(定義)了而未初始化的變數儲存著undefined值未定義的變數直接使用會報錯(typeof操作符例外)typeof 未定義的變數和typeof未初始化的變數都返回"undefined",由此typeof區分不了為定義的變數和未初始化的變數變數定義後推薦立即初始化Null類型null值表示一個null 指標對象!故 var car =  null; alert(typeof car); 返回object     因為null其實是一個特殊的對象!若一個變數準備儲存對象,最好初始化為null,表示它為對象,只要檢查它是否等於null就知道是否儲存了一個對象的引用。即要儲存對象的變數還沒真正儲存對象,就應該明確讓變數儲存null值。undefined派生自null,即alert(null == undefined)  返回true,但其間發生了類型轉換。Boolean類型只有兩個值:true和false,注意大小寫所有資料類型都有與boolean類型相對應的值,通過轉型函數Boolean()實現,注意在判斷條件中自動調用轉型函數。Boolean()的轉換規則(紅皮書P23)Number類型數值表示   不是0開頭表示10進位(12),0開頭且以8為基數表示8進位(070),0x開頭且以16為基數表示16進位(0xaf)。運算時,數值始終轉為十進位,結果也以十進位來表示。浮點數:該數值必須只包含一個小數點,而且小數點後面至少有一位元字。注意浮點數在某些情況下會自動轉為整數浮點數數值計算會產生舍入的誤差問題,不要測試某個特定的浮點數值數值範圍:ECMAScript表示範圍:Number.MIN_VALUE至Number.MAX_VALUE超出範圍,被轉換為特殊的Infinity,正無窮Infinity,負無窮-InfinityisFinite()函數檢查是否在最大和最小值之間,是則返回true,否則返回falseNaN:非數值,表示一個本來要返回數值的運算元未返回數值的情況。任何涉及NaN的操作(如NAN/0)都返回NAN,在計算中要注意NaN不等於任何值,包括他自身(只能通過isNaN()函數來判斷是否為NaN),isNaN()嘗試轉換傳入的參數為數值數值轉換Number()函數:可以傳入任何數實值型別如果是Boolean,true為1,false為0數字值,簡單的傳入和返回Undefined,始終返回NaNNull,始終返回0? Chorme25 返回NaN字串:只含有數字,則轉為十進位,會忽略前置的0含有合法的浮點數,轉為浮點數,同樣忽略前置的0含有有效十六進位格式(如:0xf),轉為十進位返回(注意:八進位就不能識別出來,按照規則1來處理)Null 字元串,返回0字串包含除上述的字元外,其他都轉為NaN對象:先調用valueOf()方法,按照前面的規則處理,如果是NaN,則再調用toString()方法,再次按照規則處理。parseInt()函數:只能轉入字串,原理:看是否符合數值模式他會忽略開始的所有空格,找到第一個非空白字元找到的第一個字元不是數字字元或者是負號,則返回NaN注意:Null 字元串parseInt()返回非數值NaN,而Number()返回0如果第一個字元是數字字元,則會解析到不是數字字元為止,注意:小數點不是有效數字字元!parseInt()能識別各種整數格式(八進位、十進位、十六進位),注意Number()函數只能識別十進位、十六進位eg: parseInt("0x15")  返回21(16*1+5)eg:parseInt("07")  返回7,當做十進位的7parseInt()還能指定轉換基數,即返回何種整數格式,eg:parseInt("010",8);返回8,結果也以八進位返回注意:指定基數時,是指把待處理字串顯示輸出為指定的進位區別:number.toString()中,number被識別為十進位,而且number一定為Number類型,之後再按照傳入的基數返回toString()的值parseFloat()函數:只能轉入字串與parseInt()類似,忽略前置的0,找到第一個合法的浮點數字字元,小數點是合法的,故可以是以小數點作為第一個字元區別:parseFloat()可以識別所有浮點格式(指科學計數法,返回的不是科學計數法的形式),但只能解析十進位值,任何十六進位都會轉為0,八進位按照十進位方式解析,因為八進位是以0作為前置parseFloat()沒有轉換基數parseFloat()可以解析包含合法整數的字串String類型字元字面量逸出序列   eg:   \b(空格)   \n(換行)  \'   \"(轉義單、雙引號)具有長度屬性length,對於單位元組字元有效,雙位元組字元不精確特點:字串是不可變的,一旦建立,他們的賦值就不能改變,要改變,必須銷毀原來的字串,再用新值得字串填充該變數。轉為字串的方法。toString()方法。每個字串都有toString()方法,除了null、undefined值沒有這個方法,其他的值都有。對於Number類型調用時,可以傳入輸出數值的基數。即返回指定有效進位的字串值,eg:  10..toString(8) 返回8,10.toString()返回10,預設基數為10。這樣就為表示各種進位數時提供了方便!但只有十進位Number能調用toString()方法,其他進位的Number類型一律當成十進位!即,把數值輸出成個種進位的表示方式!注意Number..toString()與Number.toString()的區別傳入數值的基數後,返回的是指定的進位表示的數值,但為了完整表示該進位,必須給八進位和十六進位分別添加0和0x作為開頭String()方法。任何類型的值都能轉為字串,但null、undefined同樣沒有轉換規則:先調用toString()方法,若則調用String()方法String()方法不能傳參語句注意:不存在其他語言一樣的塊級範圍,所有流程式控制制語句中定義的變數都可以被流程式控制制外訪問到。if語句:條件可以是運算式,運算式求值的結果可以不為布爾值,那就會自動調用Boolean()來轉換求值的結果而得到布爾值for-in語句:是一種精準的迭代語句,可以枚舉對象的屬性。eg:  var obj = { a: 1, b: 2}; for(key in obj){ console.log( obj[key] ) }  // 1  \n  2 注意,key是字串類型,故不能用點的方式來訪問,必須用對象的方式來訪問switch語句:switch()中的參數可以是任何資料類型,數值、字串、對象都可以。case中的值不一定是常量,可以是變數或者運算式switch中執行的全等操作符,不會發生類型的轉換 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.