1.歷史
-
1.什么是JavaScript
- 1995年在網(wǎng)景公司,發(fā)明的JavaScript。一開始JavaScript叫做LiveScript,但是由于當時Java這個語言特別火,就改名為JavaScript,同時期還有其他的網(wǎng)頁語言,比如VBScript、JScript等等,但是后來都被JavaScript打敗,所以現(xiàn)在的瀏覽器中,只運行一種腳本語言就是JavaScript,簡稱:JS。
-
2.JavaScript與ECMAScript的關(guān)系
- ECMAScript是一種由Ecma國際前身為歐洲計算機制造商協(xié)會,英文名稱是European Computer Manufacturers Association,制定的標準。
JavaScript是由公司開發(fā)而成的,公司開發(fā)而成的一定是有一些問題,不便于其他的公司拓展和使用。所以歐洲的這個ECMA的組織,牽頭制定JavaScript的標準,取名為ECMAScript。
簡單來說ECMAScript不是一門語言,而是一個標準。符合這個標準的比較常見的有:JavaScript、Action Script(Flash中用的語言)
- ECMAScript是一種由Ecma國際前身為歐洲計算機制造商協(xié)會,英文名稱是European Computer Manufacturers Association,制定的標準。
-
3.JavaScript作用
- 在HTML網(wǎng)頁中,主要分為三大塊:HTML、CSS、JavaScript
- HTML從語義上構(gòu)造網(wǎng)頁
- CSS從審美上美化界面
- JavaScript從交互上提升用戶的用戶體驗
- 在HTML網(wǎng)頁中,主要分為三大塊:HTML、CSS、JavaScript
4.js被稱為對初學(xué)者友好的語言
2.第一個JavaScript程序
-
1.Script標簽的說明
- 位置: 可以放在html中的任意位置,但是最好放在body的結(jié)束標簽上面
- 和style標簽一樣type可以省略不寫
-
2.演示helloWorld
// 括號里面只能放字符串/數(shù)值/元素/對象 alert('hello world'); -
3.JavaScript中的注釋
- 單行注釋: 以 // 開頭,后面的內(nèi)容就是注視
- 快捷鍵 ctr(cmd) + /
- 多行注釋: /**/ 多行注釋可以換行,但是不能嵌套
- 快捷鍵 ctr(cmd) + shift + /
3.變量
1.概念: 變量是用來存儲信息的容器
-
2.使用一個變量分為3步
a.聲明變量 用var來定義一個變量例如 var a; b.賦值 賦值采用 = 來賦值 a=10; c.使用 聲明的一個變量的時候可以直接賦值 例如 var b = 20; -
3.變量的命名規(guī)范
1.以字母 a-z A-Z 數(shù)字0-9 字符 _ $ 組成 2.變量不能以數(shù)字開頭, 不能使用關(guān)鍵字命名 3.變量的命名采用駝峰命名法 首個單詞字母小寫,后面的單詞首字母大寫 例如 lastName- 變量命名不能和保留字重名
[圖片上傳失敗...(image-e67c7-1511529697813)]
[圖片上傳失敗...(image-94c5d1-1511529697813)]
- 變量命名不能和保留字重名
-
4.變量的類型
-
變量類型為5種
- 字符串(string)
- 數(shù)字(number) 0-9
- 布爾(boolean) true/false
- 對象(object)
- 未定義(undefined)
用 console.log(typeof a);來查看輸出的類型
typeof 關(guān)鍵字用來輸出變量的類型
-
-
5.控制臺輸出
console.log(1); // 輸出普通日志 console.warn('1'); // 輸出警告日志 console.error('1'); // 輸出錯誤日志 輸出日志的快捷鍵 a.log + enter
4.運算符
-
1.算數(shù)運算符 + - * / %(取余/取模) ++ --
var a = 5; var b = 10; var c = a + b; var d = a - b; var e = a * b; var f = a / b; var g = a % b; a++; a--; -
2.算數(shù)運算符的優(yōu)先級, 先乘除(取余)后加減
var a = 2 + 3 * 4; 結(jié)果是 14 如果想提升優(yōu)先級的話用 ()來提升 var a = (2 + 3) * 4; 輸出 20 如果要 a = a + 5;可以簡寫成 a+=5; -
3.關(guān)系運算符
> < == >= <= != ===- 關(guān)系運算符得到的結(jié)果為布爾值
- 關(guān)系運算符不能連用,如果想連用用邏輯運算符
-
4.邏輯運算符
&& || ! && 有假則為假 || 有真則為真 ! 取反- 邏輯運算符參與運算的是布爾值
5.if語句
-
1.if語句
在開發(fā)中需要判斷條件執(zhí)行代碼的時候需要用if語句 if(判斷條件){ 當條件為真的時候執(zhí)行代碼 } -
2.if else
if(判斷條件){ 當條件為真的時候執(zhí)行代碼塊 }else{ 當條件為假的時候執(zhí)行代碼塊 }else 可以省略
-
3.三目運算符: 判斷條件 ? 語句1 : 語句2
- 當判斷條件為真執(zhí)行語句1, 為假 執(zhí)行語句2
-
4.if else語句 特點: 只能執(zhí)行一個代碼塊
if(判斷條件1){ 當為真的時候執(zhí)行代碼塊 1 }else if(判斷條件2){ 當為真的時候執(zhí)行代碼塊 2 }else if(判斷條件3){ 當為真的時候執(zhí)行代碼塊3 }else if(判斷條件4){ 當為真的時候執(zhí)行代碼塊 4 }else if(判斷條件5){ 當為真的時候執(zhí)行代碼塊 5 } ... else{ 當以上所有的條件都不為真的時候執(zhí)行代碼塊 }
6.switch語句
switch (變量){
case 值1:
語句1;
break;
case 值2:
語句2;
break;
case 值3:
語句3;
break;
case 值4:
語句4;
break;
...
default:
語句n;
break;
}
使用 break 來阻止代碼自動地向下一個 case 運行
案例星期一到星期日
7.循環(huán)
-
1.for循環(huán)
for(單次表達式;條件表達式;末尾循環(huán)體) { 中間循環(huán)體; }- 終止循環(huán)用break
- 終止本次循環(huán)用continue
-
2.while循環(huán)
while(判斷條件){ 循環(huán)體 } -
3.do-while循環(huán)
do{ 循環(huán)體 }while(判斷條件)
while循環(huán)和do-while循環(huán)的區(qū)別是 do-while循環(huán)先執(zhí)行代碼,再判斷,while循環(huán)是先判斷再執(zhí)行代碼
8.函數(shù)
1.函數(shù)是由事件驅(qū)動的或者當它被調(diào)用時執(zhí)行的可重復(fù)使用的代碼塊
-
2.函數(shù)是用來封裝特定的功能的代碼塊 利用函數(shù)可以提高代碼的復(fù)用性
function 函數(shù)名() { 函數(shù)體/要執(zhí)行的代碼 } 函數(shù)只有調(diào)用的時候才會執(zhí)行封裝的代碼 函數(shù)調(diào)用 函數(shù)名() -
3.函數(shù)可以傳遞參數(shù)
function sum(a,b) { alert(a+b); } sum(1,2); -
4.獲取函數(shù)實際傳入?yún)?shù)的個數(shù),和定義傳入?yún)?shù)的個數(shù)
function sum(a,b) { // 獲取函數(shù)的實際傳入的參數(shù)的個數(shù) console.log(sum.arguments.length); // 獲取函數(shù)定義的參數(shù)個數(shù) console.log(sum.length); alert(a+b); } sum(1,2,3); -
5.函數(shù)的返回值
function sum(a,b) { return a+b; } // 將函數(shù)執(zhí)行的結(jié)果賦值給變量 s var s = sum(1,2,3); console.log(s);
使用return 結(jié)束并返回 return后面的代碼不再執(zhí)行
-
6.函數(shù)的變量提升
var a = 10; function fn() { console.log(a); var a = 20; } fn();如果函數(shù)內(nèi)部有變量和函數(shù)外部的變量是一樣的,會優(yōu)先取函數(shù)內(nèi)部的變量
如果在使用后面定義變量,這個時候就會將函數(shù)的聲明定義在使用之前,而賦值還在函數(shù)后面
116409-106.jpg
