在一個月前,我已經瞭解到了關於JavaScript這門編程語言的相關知識,而且跟着一些教學視頻實現了一些輪播、動畫等效果,但我知道這確定是不夠的。JS雖然是一種專爲與網頁交互而設計的腳本語言,顯然也不只僅只能作這一點點事,我接觸到的還只是冰山一角罷了。目前高程3這本書我已經看到第十章了,看得時候是本着「欣賞、瞭解」的原則去看的,不少地方沒有仔細分析,也沒有筆記,慢慢地也發現這樣過一遍是不行的,原聲JS的基礎不打好,後面的路就不會太平坦,因此再來一遍,把一些學到的知識和須要深刻的記錄一下。javascript
JavaScript的組成部分:核心(ECMAScript)、文檔對象模型(DOM)、瀏覽器對象模型(BOM)前端
ECMAScript做爲核心,規定了語法、類型、語句、關鍵字、保留字、操做符和對象。如今好像已經最新已經到了ECMAScript第6版,即「ES6」;java
DOM是針對XML但通過拓展用於HTML的應用編程接口(API)。DOM將整個頁面映射爲多層次節點結構,DOM級別有1級、2級和3級;編程
BOM使得開發人員控制瀏覽器頁面之外的部分,好比彈出、關閉新的窗口,顯示器分比率詳細信息等等,它一直以來沒有肯定的標準,HTML5中把不少不少BOM功能寫入了正式規範,之後兼容性會愈來愈高。瀏覽器
現狀:目前JavaScript的三個部分在當前主要的五個瀏覽器(IE、FireFox、Chrome、Safari、Opera)獲得了不一樣程度的支持,因此其兼容性是前端開發中很是重視的問題。異步
HTML中添加JavaScript腳本的方式通常分兩種,一是直接在<scripe></script>
中直接寫;第二種是引入外部文件:<script src="js/main.js"><script>
。async
延遲腳本:defer屬性。代表腳本在執行時不會影響頁面的構造,即腳本會延遲到整個頁面解析完畢以後再執行(當即下載,延遲執行)。格式:<script src="js/main.js" defer(="defer")></script>
。編程語言
異步腳本:async屬性。告訴瀏覽器當即下載文件。異步腳本必定會在頁面的load事件前執行(異步加載問題在大項目中確定是要着重研究的,之後再分析)。函數
一切(變量、函數名和操做符)區分大小寫;動畫
標識符: 指變量、函數、屬性的名字,或者函數的參數。第一個字符必須是字母、下劃線(_)或者美圓符號($),JS中的標識符通常用駝峯式大小寫格式:oText,aLi等等;
單行註釋://
多行註釋:/* (中間每一行也能夠用一個*號來提升可讀性) */
;
嚴格模式: ECMAScript第五版引入的一種不一樣的解析和執行模型(strict mode),代碼頂部添加 "use strict"
;
語句 : 每一句後面用分號結尾,也能用{}
將多條語句組合到一塊兒,建議始終在控制語句中使用,例如: if( test) { alert('hello!') }
;
ECMAScript中的變量爲鬆散變量,便可以保存任何類型的數據,變量只是一個保存值的佔位符.定義變量要用var
,做用爲 將變量定義爲該變量的做用域中的局部變量,退出做用域變量即銷燬。(不用var會建立全局變量);
五種基本數據類型:Undefined
、Boolean
、Number
、String
、Null
;複雜數據類型:Object
typeof操做符用來檢測給定變量的數據類型 。檢測語法: typeof( 95)
或者 typeof 95
;
「undefined」——這個值未定義;
「boolean」—— 布爾值,有true和false兩個值;
「string」—— 字符串;
「number」—— 數值;
「object」—— 對象或是ull;
「function」—— 函數 (函數其實也是對象);
「null」返回object,由於特殊值null是一個空的對象引用;
只有一個值就是它本身,var聲明瞭一個變量可是沒對其初始化時,變量的值就是undefined;
只有一個值那就是它本身,表示一個空對象指針,注意: 意在保存對象的變量尚未真正保存對象,就應明確地讓該變量保存null值;
兩個值:true和false,true不必定等於1,false不必定等於0;
浮點數值中包含一個小數點,極大或極小的數能夠用e表示,var aNumber=1.23e7;
(等價於1.23*10的7次方,不要輕易比較兩個特色的浮點數);
數值範圍(5e-324,1.7976931348623157e+308)超過這個數值範圍則會轉換爲-Infinity,Infinity;
NaN(not a Number)非數值 ,任何數值除以非數值都會返回NaN;isNaN()函數檢測一個值是否「不是數值」;
數值轉換:三個函數:Number()、parseInt()、parseFloat()。Number()能夠用於任何數據類型true返回一、false返回0 、null返回0、undefined返回NaN、‘ ’返回0;parseInt()忽略字符串前的空格,找到的第一個字符不是負號或者數字就會返回NaN,返回整數(由於小數點不是有效的數字字符);parseFloat()和parseInt()同樣,只是它返回浮點數;
表示由0或多個16位Unicode字符( 爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,以知足跨語言、跨平臺進行文本轉換、處理的要求)組成的字符序列,即字符串。字符串一旦創造值就不能變,只能銷燬原來的再用一個包含新值的字符串填充變量。
對象,一組數據和功能的集合。建立自定義對象的語法var a = new object ()
;object類型是它全部實例的基礎, object類型擁有的方法它的實例也擁有。
一組用於操做數據值的操做符,包括算術操做符(+-*/)、位操做符、關係操做符和相等操做符...
下次作筆記了再寫...