當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript教程系列-1.JavaScript基础
生活随笔
收集整理的這篇文章主要介紹了
javascript教程系列-1.JavaScript基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
歡迎加入前端交流群來:749539640 轉載請標明出處! JavaScript概述 一個頁面分成三個部分,結構,樣式,行為。??? HTML代表了頁面的結構(骨架),CSS代表了頁面的樣式(皮膚),JavaScript代表了頁面的行為(這種行為是被動的)。主動的行為需要一個大腦,后端作為我們的大腦替我們分析執行數據,執行行為,我們和大腦之間的聯系AJAX(中樞神經)。這個就是我們這個階段要學習的內容。 1.JavaScript是什么,它能做什么? 對頁面進行渲染,讓頁面有行為。讓頁面動起來; http://www.zcool.com.cn/ ? ? JavaScript簡史 JavaScript在設計之初只是為了做表單驗證的。但是現如今,JavaScript已經成為了一門功能全面的變成語言,已經是WEB中不可或缺的一部分,如今的JavaScript是一門既簡單又復雜的語言,說它簡單是因為學會它,幾乎只要一個小時就可以了。但是如果你想要真正掌握它,需要幾年的時間。 JavaScript發展: NetScape公司在1995年著手開發一種名為liveScript的腳本語言, 為了營銷目的搭上當時媒體熱炒的Java順風車,臨時更名liveScript為JavaScript。其實JavaScript和Java沒有一點關系。JavaScript1.0獲得巨大成功。 NetScape公司趁熱打鐵繼續發布JavaScript1.1版本,使得Web獲得更高的關注,同時奠定了自己在瀏覽器界的霸主地位。 如果事情一直這樣下去那么NetScape可能依舊使我們現代瀏覽器的霸主,可是在1996年互聯網巨頭微軟公司進入瀏覽器領域,推出JScript,和NetScape公司開始爭奪霸主地位。 最讓人擔心的問題也因此出現了,當時的JavaScript和JScript是完全不同的兩個版本,這門語言沒有一個標準存在,業內的擔心(吐槽)日益加劇。終于,多方聯合共同制定了一個標準,這個標準也就是ECMAScrip,ECMAScript作為各自JavaScript實現的基礎。雖然制定標準只花費了幾個月,但是這幾個月卻對未來20年的JavaScript發展起到了不可或缺的作用。 瀏覽器的發展經歷了無數的坎坷,各個瀏覽器發現這塊巨大的蛋糕后誰都不愿放棄,于是激烈的廝殺開始了。 第一次瀏覽器大戰: 原始時期,微軟發布了IE瀏覽器,和網景netSpace navigator大打出手,最后網景失敗,將公司賣給AOL,核心團隊全部離職,第一回合,微軟獲勝,netSpace昔日霸主隕落。 但是NetScape并沒有放棄,在1998年公開源碼并重新命名為 Mozilla,并重寫全部程序,在2002年發布了第一個瀏覽器版本,firefox登場。在2004年已經開始叫板IE瀏覽器,iE推出IE7與之抗衡,拉開了第二次瀏覽器大戰的序幕。 第二次瀏覽器大戰: 第二次瀏覽器大戰不再是IE和FF的兩家之爭,在現代瀏覽器群雄并起,同時挪威的?Opera?,幾乎所有的智能手機配備的都是這個瀏覽器,擁有全世界最快V8引擎的Chrom,以及蘋果公司的Safari,全部加入瀏覽器爭奪。至今戰爭還在進行,但是對于瀏覽器大戰我們看到的結果大多是推進了瀏覽器的發展,為更好的用戶體驗做出了非常積極的貢獻。 ? ? JavaScript的組成 ECMAScript 、BOM 、DOM; ECMAScript:這是一個標準,它規定了語法、類型、語句、關鍵字、保留字、操作符、對象。(相當于法律?) BOM(瀏覽器對象模型):可以訪問瀏覽器窗口的的瀏覽器對象模型,對瀏覽器窗口進行操作。 DOM(文檔對象模型):DOM把整個頁面映射為一個多層節點結構。HTML頁面組成都是某種類型的節點,這些節點又包含著不同類型的數據。 ? ? 如何寫JavaScript程序? script標簽使用 <script></script> src : 外聯script 標簽(立即調用,不能在該標簽內寫代碼)<script>//在標簽內書寫內容 </script><script src='javascript.js'>// 這里面不能寫任何內容</script>
一切準備就緒,讓我們從Hello Word開始吧。 document.write的使用 >>>> HelloWord ? ?>>> ?原樣輸出標簽。 注釋 (一份好的代碼,要有三分之二的注釋) 單行注釋: //?要注釋的內容。 多行注釋:/*?注釋的內容寫在這里?*/? 原樣輸出標簽內容 如果我想在頁面中打印出:<strong>標簽怎么辦? 如果按照正常的打印方式進行打印,毫無疑問,標簽會被瀏覽器解析。當我們要打印標簽的時候要對對標簽進行轉義。 ? ? < ?代表 <? > 代表 > document.write('<strong>強大的</strong>'); 變量(別稱) 他叫翠花,他是一只熊。 熊的底層是什么那? 熊皮、熊掌、熊骨...., ?那我們每次呼叫這只熊的時候都要叫她什么?有一張熊皮,500公斤熊肉,第三塊小腳趾骨斷過的,那個玩意? 不!我們叫她翠花!這就是這只熊的別稱!放在計算機里,這就是把這只熊塞入了一個叫做翠花的變量里。 怎么聲明一個變量那? 關鍵字?var?變量名?a = '<strong>強壯的</strong>' ? ?var 聲明變量的底層原理:我們所寫的程序運行在內存中,當我們使用關鍵字var 聲明一個變量的時候,計算機會從內存中留出一定儲存空間,為我們存放不同類型的內容。 分清左右兩側的意義: JavaScript中的 ‘’=‘’ 和我們數學中的 ‘’ = ‘’不一樣,在JavaScript中‘’=‘’的作用是賦值(取別稱)。? var?a?=?'<strong></strong>'; ?這句話分成兩個部分。 左值:在等號左側,是變量名(同時被賦值) 右值 :在等號右側,是存放進變量中的東西(給變量賦值) 變量的類型(因為存放進變量中的數據是放在內存中的,計算機只識別0,1,所以需要對不同類型的數據進行轉義,轉義的結果會導致所需空間不同,所以JavaScript中分成很多種數據類型,以便計算機儲存時使用) 數字類型(number):1234567890 字符類型(string):'123456','字符串類型',.....(有單引號或者雙引號) 未定義類型(undefined):這是一種特殊類型,當變量被聲明但是沒有被賦值的時候,那么該變量的類型為undefined; 布爾值類型:true,false; 對象類型:object; 怎樣直觀地區分不同的數據類型那? 一個關鍵字?typeof 變量使用小技巧: 聲明一串變量:var a=1,b=2,c=3;(不推薦初學者使用這樣的變量聲明方式,因為這樣的變量聲明方式會導致注釋不明確。) ?變量命名規范:(匈牙利命名法:駝峰命名法) 為什么要存在命名規范那? 你的代碼并不是只有你一個人看,變量既然是別稱,那么別稱就要有特殊的含義: 舉個栗子:翠花,我們能從這個名字中得到什么信息那?(這個名字的主人性別應該是女的,家中父母的一個美好愿景); 那么鋼蛋那? 我們從這些名字中能夠讀出很多的含義,是因為我們的語言常識,同樣,變量也有一套類似的標準,代表了各種各樣的含義,這些含義如下: 第二個規則: 開頭必須為字母或者$?或?_ 想要用break作為變量可不可以那? ?????關鍵字: 這些關鍵字用于執行特定操作等。按照規則,關鍵字也是語言保留的,不能用作標識符。
保留字:未來可能作為,標識符存在。
alert()方法 alert()使用 。 停止瀏覽器加載代碼。 瀏覽器解析代碼順序。(從上到下,從左到右); 邏輯運算符: var a=1,b=2; a+b=3? a - b=-1? a * b=2 a / b=0.5 a % b=1 var ?a='1', b='2'; a * b=2 ; a / b=2; a - b=-1; a + b =??? 不同:和我們概念里的邏輯運算符很多都是不一樣的。 + ? = ? == ?=== ?這些都不一樣。 避免問題出現(一眼就看出來了): 讓計算機告訴我:typeof 關鍵字;(數據類型的檢測,意義在于確認是否能夠被使用); 編程習慣:分號,雖然不加分號在JavaScript語法上沒有問題,但是建議不要省略分號,加了分號之后可以用軟件壓縮。良好的變成習慣(JavaScript權威指南)上的理由。 浮點數: 你的電腦做著正確的二進制浮點運算,但問題是你輸入的是十進制的數,電腦以二進制運算,這兩者并不是總是轉化那么好的,有時候會得到正確的結果,但有時候就不那么幸運了; alert(0.7+0.1); //輸出0.7999999999999999 alert(0.6+0.2); //輸出0.8; 類型轉換: var a=3,b='10',c=true; alert(a+b); alert(b+c); alert(a+c); 運算結果好像并不是我們想要的:應該怎么辦那?當我們想做數學運算的時候,應該先對所有的數據類型進行統一(統一成數字格式),這時候我們就該用到數據類型的轉換。 數據類型轉換方法: parseInt(); parseFloat(); 我們嘗試一下數據轉換的結果: 認識NaN:他是一種特殊的Number類型結果,代表意外轉換的數字,NaN和任何東西都是不等的。 關于浮點數:Math.round()四舍五入取整浮點數。 賦值操作:(JavaScript中存在非常多的簡寫) var a=1; a=a+1; a+=1; alert(a) 這些當然還包括 -= 、*=、/=、%= 這些賦值操作符的結果都是什么? 一個更簡便的寫法 a++ ; a - -; ++a ?和 - -a 有什么不同;(思考)? var?a = 5 + 4; ? var?b = a * 2;? var?c = b / 4; var?d = b - c; var?e = -d;? var?f = e % 4; f的結果是什么? var?g = 18.4;? var?h = g % 4; h的結果是什么? var?i=3;? var?j=i++;?? j的結果是什么?
| break | do | instanceof | typeof |
| case | else | new | var |
| catch | finally | return | void |
| continue | for | switch | while |
| debugger* | function | this | with |
| default | if | throw | delete |
| in | try |
| 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 |
總結
以上是生活随笔為你收集整理的javascript教程系列-1.JavaScript基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL语句面试题整理-四年经验
- 下一篇: 直布罗陀ICO规则着重市场驱动