JavaScript是什麼,能幹什麼?
一個網頁的結構,是經過HTML決定的
CSS決定了這個網頁的樣式
這個網頁的行爲是經過JavaScript決定的
JavaScript發展史
它最初由Netscape的Brendan Eich設計。JavaScript是甲骨文公司的註冊商標。Ecma國際以JavaScript爲基礎制定了ECMAScript標準。JavaScript也能夠用於其餘場合,如服務器端編程。完整的JavaScript實現包含三個部分:ECMAScript,文檔對象模型,瀏覽器對象模型。 Netscape在最初將其腳本語言命名爲LiveScript,後來Netscape在與Sun合做以後將其更名爲JavaScript。JavaScript最初受Java啓發而開始設計的,目的之一就是「看上去像Java」,所以語法上有相似之處,一些名稱和命名規範也借自Java。但JavaScript的主要設計原則源自Self和Scheme。JavaScript與Java名稱上的近似,是當時Netscape爲了營銷考慮與Sun微系統達成協議的結果。爲了取得技術優點,微軟推出了JScript來迎戰JavaScript的腳本語言。爲了互用性,Ecma國際(前身爲歐洲計算機制造商協會)建立了ECMA-262標準(ECMAScript)。二者都屬於ECMAScript的實現。儘管JavaScript做爲給非程序人員的腳本語言,而非做爲給程序人員的腳本語言來推廣和宣傳,可是JavaScript具備很是豐富的特性。發展初期,JavaScript的標準並未肯定,同期有Netscape的JavaScript,微軟的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(歐洲計算機制造商協會)的協調下,由Netscape、Sun、微軟、Borland組成的工做組肯定統一標準:ECMA-262。
javascript
JavaScript的使用
在前端開發中,JavaScript不能單獨運行(除非是單獨安裝了JavaScript運行壞境)
JavaScript必須掛載在網頁上
HTML引入JavaScript有兩種方式
html
方式一:內部引用
使用script標籤,把JavaScript代碼包起來
注意:內部引用的話要把代碼放在網頁的最下層,由於代碼是的運行是從上到下的,而JavaScript是沒有樣式的,因此說若是把代碼放在網頁最上方就會形成因編譯js代碼致使的網頁加載速度變慢
前端
方式二:外部引用
- 將JavaScript代碼單獨放入js文件中
- 在HTML文件中引入js文件
<script src=」.js文件」></script>
- 外部使用的時候,通常來講都是放在的外面,也就是說上面下面均可以,在企業開發中,通常使用外部引入,這樣作html與JavaScript的分開的,有利於分工合做,更方便後期的維護
變量
Var系統內部的關鍵字用來申明變量java
變量的命名
規則:
1.變量名不能以數字開頭(會與八進制或者十六進制衝突)
2.變量名只能包含數字,字母,下劃線
3.區分大小寫
4.變量名不能和系統內部關鍵字相同
5.建議:變量名要起得有意義
編程
規範:
- 起名要見名知義,看到名字就知道這個變量是用來幹嗎的
- 要使用英文單詞,不要使用拼音,也不要使用中文
- 小駝峯命名是第一個單詞首字母小寫,從第二個單詞開始後的每一個單詞首字母大寫
數據類型
變量的數據類型是由數據的值決定的,不一樣的數據類型分配不一樣的存儲空間大小。數組
數字類型:number,數字
字符類型:string,字母,漢字,符號「內容」,空字符也是字符類型「」
空類型:null,表示什麼都沒有
未定義類型:Undefined:表示沒有定義(由於JavaScript中變量類型是由它的值來決定的,若是一個變量沒有賦值,那它就是未定義)
布爾類型:true,false,boolean(bool)
複合數據類型:複雜類型,array數組,object對象(對象包含屬性)
Typeof,查看數據的類型
瀏覽器
字符串string
字符串是以但引號或者雙引號服務器
數字number
整數和小數,但JavaScript裏不區分整數與小數,統一number10進制,2進制,8進制,16進制都算數字。spa
布爾類型Boolean
裏面值有兩個,true/false,表示真或者假。設計
未定義undefined
由於JavaScript中變量的類型是由他的值來決定的,若是一個變量沒有給值,那麼它就是未定義。
對象object
對象類型對象類型是很複雜的一個類型。
怎麼去描述一我的,這我的有身高,體重,年齡,這時候就須要一個對象屬性一切皆對象,對象包含屬性的。
人對象:身高,體重,年齡…
狗對象:名字,花色,年齡…學生對象:學號,班級,成績…
對象定義:
<script> //方式一:建立對象 var dog={ name:"藏獒", color:"yellow", age:20 }; dog.sex='公'; console.log(dog); console.log(dog.name+"的顏色是"+dog.color); //方式二:經過new var cat=new Object(); cat.name="小花"; cat.age=25; cat.sex='母'; cat.color="green"; console.log(cat); </script>
如何訪問對象:
對象名稱.屬性名
注意:建立對象時對象屬性用都好隔開,最好在代碼開始的就聲明全部變量 語句與註釋
語句:
一行一行的代碼就叫作語句,一個語句使用分號做爲結束符;雖然JavaScript不寫分號沒有問題,可是帶了項目上線代碼壓縮的時候就會出現問題。
註釋:
對代碼的解釋,爲了讓你和你同事能夠輕鬆的看懂你的的代碼
註釋不會影響代碼的運行,註釋也能夠阻止代碼的運行(註釋掉要執行的代碼)
方式一:單行註釋
//註釋的語句
方式二:多行註釋
/*註釋的語句*/
運算符
算數運算符
+,-,*,/,%(取餘),++(自增),–(自減)
j=n++與j=++n的區別 n++是先把n賦值給j,i再加1
++n是n先加1,再吧值賦值給j
賦值運算符
在JavaScript裏「=」表示賦值,「==」表示等於
複合運算符
+=、-=、*=、/=
n+=5就是n=n+5其餘同理
關係運算符
>、<、>=、<=、==、!=、===(全等於)、!==(不全等於) 比較返回結果爲布爾值,true、false ===:判斷兩個數據類型是否相同,數值與類型都相同則返回true ==與===的區別: ==:比較值 ===:比較值和類型
邏輯運算符
&&(與)、||(或)、!(非) 與運算(&&):全部條件都知足,結果才成立
或運算(||):只要有一個條件知足,結果就成立
非運算(!):取反,真變假,假變真
三元運算符
表達式?結果1:結果2 若是表達式運行結果爲true,則返回結果1 若是表達式運行結果爲false,則返回結果2