




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一天1:定義javascript是一種弱類型、動態類型、解釋型的腳本語言。弱類型:類型檢查不嚴格,偏向于容忍隱式類型轉換。強類型:類型檢查嚴格,偏向于不容忍隱式類型轉換。動態類型:運行的時候執行類型檢查。靜態類型:編譯的時候就知道每個變量的類型。解釋型:程序不需要編譯,程序在運行的時候才翻譯成機器語言,每執行一次都要翻譯一次,因此效率比較低,但是跨平臺性好。編譯型:程序在執行之前需要一個專門的翻譯過程,把程序編譯為機器語言的文件,運行時直接使用編譯的結果就行了。標記語言:標記語言的存在就是用來被讀取(瀏覽)的,而其本身是沒有行為能力的,在標記語言里你會看到<和>這些尖括號,這是用來寫出“層次”和”屬性”的,換句話說,它是被動的。并不具備與訪問者互動的能力。編程語言:它是具有邏輯性和行為能力,這是主動的。說通俗一點,它是有思想的。腳本語言:它介于標記語言和編程語言之間,腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。2:JS歷史1:Netsape發明了javascript。1994年,網景公司(Netscape)發布了Navigator瀏覽器0.9版。這是歷史上第一個比較成熟的網絡瀏覽器,轟動一時。但是這個版本的瀏覽器只能用來瀏覽,不具備與訪問者互動的能力。比如,網頁上有一欄用戶名需要填寫,瀏覽器無法判斷用戶是否真的填寫了,只有讓服務器去判斷。如果沒有填寫就返回錯誤,要求用戶重新填寫。太浪費時間和服務器資源了。更何況在那個用調制解調器上網的年代。2:JS之父BrendanEich(布蘭登·艾奇)網景公司急需一種網頁腳本語言,使得瀏覽器可以與網頁互動。當時工程師BrendanEich就是負責開發這種新語言。3:為什么叫JavaScript1995年Sun公司將Oak語言改名為Java,正式向市場推出。Sun公司大肆宣傳,允諾這種語言可以”一次編譯,到處運行”。很有可能成為未來市場的主宰。網景公司動了心,決定與Sun公司結成聯盟。它不僅允許JAVA程序以applet(小程序)的形式,直接在瀏覽器中運行。甚至還考慮直接將Java作為腳本語言嵌入網頁,只是因為這樣使HTML網頁過于復雜,后來才不得不放棄。總之,因為Sun公司完全介入網頁腳本語言的決策。Js后來就是網景公司和Sun兩家公司一起攜手推向市場的,這種語言被命名為java+script不是偶然的。4:JS和JAVA語言沒有任何關系JS之父并不喜歡JAVA,為了應付公司安排的任務,他只用了十天就把JS設計出來了。因為設計時間太短,語言的一些細節考慮的并不太嚴謹。設計思路:1:借鑒C語言的基本語法。2:借鑒JAVA語言的數據類型和內存管理。3:借鑒Scheme語言,將函數提升到”第一等公民的地位”。4:借鑒Self語言,使用基于原型(prototype)的繼承機制。所以,JS實際是兩種語言風格的混合產物:(簡化的)函數式編程+(簡化的)面向對象編程。5:JS標準化---ECMAScript因為javascript1.0的成功,netscape在navigator3.0中發布1.1版。此時微軟決定進軍瀏覽器,在IE3.0種搭載了javascript的克隆版,叫JScript。在微軟進來以后,有三種不同的javascript版本存在,即navigator3.0的javascript、IE的JScript、以及Cenvi中的ScriptEase。由于javascript沒有一個標準來統一其語法和特性,3種不同版本的恰恰突出了這個問題,這個語言的標準化顯然勢在必行。1997年,javascript1.1作為一個草案提交給歐洲計算機制造協會(ECMA)。最后定義為ECMAScript的全新腳本語言。從此,瀏覽器開始努力將ECMAScript作為Javascript的基礎。3:JS組成js組成:ECMAScript+BOM+DOM10:js變量變量是存儲信息的容器,用var關鍵詞來聲明(創建)變量。***變量命名規則:以字母、數字、下劃線和$組成,但是不能以數字開頭。JS語句和JS變量都是嚴格區分大小寫。不能用拼音來命名。我們可以在一條語句中聲明多個變量,該語句以var開頭,并使用英文逗號分隔。我們可以通過=給變量賦值,然后通過alert查看變量內容。11:變量常用命名法***駝峰命名法(Camel):第一個單詞的首字母小寫,后面的單詞首字母大寫。帕斯卡命名法(Pascal):所有單詞的首字母大寫。匈牙利命名法(Hungarian):在變量名最前面添加相應小寫字母來標識變量的類型,后面的單詞首字母大寫。12:保留關鍵字13:數據類型原始數據類型:字符串類型(string)、數值類型(number)、布爾類型(boolean)、undefined、null。引用數據類型:對象(object),函數(function)。字符串類型:必須要由成對的單引號或雙引號包起來。內容可以是任意文本,只要不包含包圍字符串的引號就可以。如果一定要包含,則用反斜杠轉義。數值類型:可以帶小數點,也可以不帶小數點。布爾類型:只有兩個值:true,false。undefined:表示聲明的變量沒有值。null:用來表示尚未存在的對象。對象、函數后面再詳細講解。我們可以通過typeof來查看變量的類型。14:運算符算術運算符:+、-、*、/、%(取余)、++(遞增)、--(遞減)賦值運算符:=、+=、-=、*=、/=、%=+運算符:可用于把字符串變量連接起來。66當用/運算符的時候,Math.round的用法(四舍五入)。parseInt:將字符串轉換成整數。parseFloat:將字符串轉換成浮點數。關系(比較)運算符:>、<、>=、<=、==、===、!=、!=====與==的區別:對于string和number等基本類型,不同類型之間比較,==比較會將變量隱式轉換成同一類型的值進行比較。而===如果類型不同,其結果就是不等。如果是array和object等引用類型,==和===沒有區別,如果兩個的變量是同一個對象就為true,否則為false。基本類型和引用類型進行比較,==會將引用類型轉換成基本類型,再進行值比較。而===因為類型不同,結果為false。邏輯運算符:&&、||、!三目運算符:?:15:運算符的優先級.[]():字段訪問、數組下標、函數調用以及表達式分組++、--、!、delete、new、typeof*、/、%+、-、+ 加、減、字符串連接關系運算符、instanceof(判斷某個對象是否是某個類的一個實例)邏輯運算符賦值運算符()作用:可以表達式分組、改變運算符的優先級、函數調用。new運算符:用來創建對象。應用:1:為抵抗洪水,戰士連續作戰89小時,編程計算共多少天零多少小時?2:小明要到美國旅游,可是那里的溫度是以華氏度為單位記錄的。他需要一個程序將華氏溫度(80度)轉換為攝氏度,并以華氏度和攝氏度為單位分別顯示該溫度。
提示:攝氏度與華氏度的轉換公式為:攝氏度=5/9.0*(華氏度-32)保留3位小數。16:強制轉換**強制轉換主要指使用Number、String和Boolean三個構造函數,手動將各種類型的值,轉換成數字、字符串或者布爾值。1:Num=ber強制轉換參數為原始類型值的轉換規則:原始類型的值主要是字符串、布爾值、undefined和null,它們都能被Number轉成數值或NaN。NaN:notanumber,當數學計算得不到數字結果時,該值就是NaN。isNaN:判斷變量是否為NaN。//數值:轉換后還是原來的值Number(324)//324//字符串:如果可以被解析為數值,則轉換為相應的數值Number('324')//324//字符串:如果不可以被解析為數值,返回NaNNumber('324abc')//NaN//空字符串轉為0Number('')//0//布爾值:true轉成1,false轉成0Number(true)//1Number(false)//0//undefined:轉成NaNNumber(undefined)//NaN//null:轉成0Number(null)//0Number函數將字符串轉為數值,要比parseInt函數嚴格很多。基本上,只要有一個字符無法轉成數值,整個字符串就會被轉為NaN。參數為對象的轉換規則:簡單的規則是,Number方法的參數是對象時,將返回NaN。Number({a:1})//NaNNumber([1,2,3])//NaN實際上,Number背后的真正規則復雜得多,內部處理步驟如下:1:調用對象自身的valueOf方法。如果返回原始類型的值,則直接對該值使用Number函數,不再進行后續步驟。2:如果valueOf方法返回的還是對象,則改為調用對象自身的toString方法。如果返回原始類型的值,則對該值使用Number函數,不再進行后續步驟。3:如果toString方法返回的是對象,就報錯。2:String強制轉換參數為原始類型值的轉換規則:數值:轉為相應的字符串。字符串:轉換后還是原來的值。布爾值:true轉為"true",false轉為"false"。undefined:轉為"undefined"。null:轉為"null"。參數為對象的轉換規則:String方法的參數如果是對象,返回一個類型字符串;如果是數組,返回該數組的字符串形式。String內部處理步驟如下:1:先調用對象自身的toString方法。如果返回原始類型的值,則對該值使用String函數,不再進行以下步驟。2:如果toString方法返回的是對象,再調用valueOf方法。如果返回原始類型的值,則對該值使用String函數,不再進行以下步驟。3:如果valueOf方法返回的是對象,就報錯。3:Boolean強制轉換參數為原始類型值的轉換規則:轉換規則相對簡單:除了以下六個值的轉換結果為false,其他的值全部為true。undefined、null、-0、0或+0、NaN、''(空字符串)參數為對象的轉換規則:所有對象(包括空對象)的轉換結果都是true。17:自動轉換自動轉換的規則:預期什么類型的值,就調用該類型的轉換函數。比如,某個位置預期為字符串,就調用String函數進行轉換。如果該位置即可以是字符串,也可能是數值,那么默認轉為數值。由于自動轉換具有不確定性,而且不易除錯,建議在預期為布爾值、數值、字符串的地方,全部使用Boolean、Number和String函數進行顯式轉換。1:自動轉換為布爾值當JavaScript遇到預期為布爾值的地方(比如if語句的條件部分),就會將非布爾值的參數自動轉換為布爾值。系統內部會自動調用Boolean函數。if(!undefined&&!null&&!0&&!NaN&&!''){console.log('true');}//true//寫法一expression?true:false//寫法二!!expression2:自動轉換為字符串當JavaScript遇到預期為字符串的地方,就會將非字符串的數據自動轉為字符串。系統內部會自動調用String函數。字符串的自動轉換,主要發生在加法運算時。當一個值為字符串,另一個值為非字符串,則后者轉為字符串。'5'+1//'51''5'+true//"5true"'5'+false//"5false"'5'+{}//"5[objectObject]"'5'+[]//"5"'5'+function(){}//"5function(){}"'5'+undefined//"5undefined“'5'+null//"5null"3:自動轉換為數值當JavaScript遇到預期為數值的地方,就會將參數值自動轉換為數值。系統內部會自動調用Number函數。'5'-'2'//3'5'*'2'//10true-1//0false-1//-1'1'-1//0'5'*[]//0false/'5'//0'abc'-1//NaN除加法運算符有可能把運算子轉為字符串,其他運算符都會把運算子自動轉成數值。+'abc'//NaN-'abc'//NaN+true//1-false//0特殊:null==undefined//truenull==false //falseundefined==false
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 漢語言文學的試題及答案
- 晚春中考試題及答案
- java面試題及答案機器人
- 做法口訣考試題及答案
- 機電工程創新方法論試題及答案
- 軟件設計師考試重要知識點及試題答案
- 應試技巧軟件設計師試題及答案
- 國際法對公共政策的影響試題及答案
- 公共政策過程中的協作機制研究試題及答案
- 網絡工程師持續學習試題及答案
- 消化道出血護理查房7
- 太陽能光伏發電設備采購合同
- 江蘇省常州市教育學會2023-2024學年下學期八年級數學考試卷
- DZ∕T 0214-2020 礦產地質勘查規范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 2024年新教科版六年級下冊科學期末綜合測試卷(十九)
- 精神科進修匯報
- 2023年新高考天津卷歷史高考真題解析(參考版)
- 人工智能在文化遺產數字化保護中的應用
- GB/T 41666.4-2024地下無壓排水管網非開挖修復用塑料管道系統第4部分:原位固化內襯法
- 智能安防行業的技術應用與商業模式
- 煤礦機電和運輸安全管理
評論
0/150
提交評論