編程之道,程序員不僅僅要精通一門語言,而是要多學習幾門。
第一課
1:javascript的主要特點
解釋型:不需要編譯,瀏覽器直接解釋執行
基於對象:我們可以直接使用JS已經創建的對象
事件驅動:可以對以事件驅動的方式相應客戶端的輸入,無須經過服務器端程序
安全性:不允許訪問本地硬盤,不能將數據寫入到服務器上
跨平台:js依賴瀏覽器本身,與操作系統無關
第二課
如何在網頁中寫Javascript
1:在頁面中直接嵌入Javascript
<script language="javascript">
javascript程序
</script>
javascript可以插入在<head></head>標簽中間,
也可以放在<body></body>標簽中間
最常用放在<head></head>標簽之間
案例如下,將javascript代碼插入在<head></head>標簽中間。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>初學javascript</title>
<script language="javascript">
var now=new Date();//獲取Date對象的一個實例
var hour=now.getHours();//獲取小時數
var min=now.getMinutes();//獲取分鍾數
alert("當前時間"+hour+":"+min+"\n歡迎訪問檸檬學院http://www.bjlemon.com/");
</script>
</head>
<body>
</body>
</html>
案例運行結果如下
案例2代碼如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>我的年月日</title>
<script language="javascript">
var now=new Date();//獲取日期對象
var year=now.getYear()+1900;//獲得年,在js中年份需要加1900才可以顯示此時此刻的年份
var month=now.getMonth()+1;//獲得月份,月份是0-11,所以在js中需要加1
var date=now.getDate();//獲得日
var day=now.getDay();//獲得星期幾
var day_week=new Array("禮拜日","禮拜一","禮拜二","禮拜三","禮拜四","禮拜五","禮拜六");
var week=day_week[day];
var time="當前時間:"+year+"年"+month+"月"+date+"日"+week;
alert(time);
</script>
</head>
<body></body>
</html>
案例2運行結果如下

2:引用外部的Javascript
如果腳本比較復雜或者是同一段代碼被很多頁面所使用,則可以將這些腳本代碼放置在一個單獨的文件中,該文件的擴展名是.js,然后再需要使用該代碼的web頁面中鏈接該javascript文件即可
<script language="javascript" src="*.js">
</script>
(建議)以上代碼一般寫在<head></head>中間比較好
在.js后綴的文件中,不需要使用<script></script>標簽對括起來
<body onload="getDate()">表示的是加載頁面時調用getDate()方法getdate()是定義在.js后綴的文件中的方法
此案例后綴是.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>引用外部的js</title>
<script language="javascript" src="js1.js">
</script>
</head>
<body onload="getdate()">
</body>
</html>
此案例后綴是.js
function getdate(){ var now=new Date();//獲取日期對象 var year=now.getYear()+1900;//獲得年,在js中年份需要加1900才可以顯示此時此刻的年份 var month=now.getMonth()+1;//獲得月份,月份是0-11,所以在js中需要加1 var date=now.getDate();//獲得日 var day=now.getDay();//獲得星期幾 var day_week=new Array("禮拜日","禮拜一","禮拜二","禮拜三","禮拜四","禮拜五","禮拜六"); var week=day_week[day]; var time="當前時間:"+year+"年"+month+"月"+date+"日"+week; alert(time); }
綜合上面兩個案例的運行結果是

第三課
javascript的語法
1:javascript的語法
1.1:js的變量區分大小寫
usename,useName這是兩個不同的變量
1.2:每行結尾的分號可有可無,如果語句的結束沒有分號,那么js
會自動將這行代碼的結尾作為語句的結尾
alert("hello world");
alert("hello world")
1.3:變量是弱類型
定義變量時只使用var運算符
例如:var usename="biexiansheng";
var age=22;
1.4:使用大括號標簽代碼塊
{ //代碼}被封裝在大括號內的語句按照順序執行
1.5:注釋
1.5.1:單行注釋 //
單行注釋使用雙斜線"//"開頭,在"//"后面的文字即為注釋內容
注釋的內容在代碼執行過程中不起作用。
var now=new Date();//獲取日期對象
1.5.2:多行注釋 /**/
多行注釋以/*開頭,以*/結尾,在兩者之間的內容為注釋內容
在代碼執行過程中不起任何作用。
/*
*功能:獲取當前日期
*作者:biexiansheng
*/
function getClock(){
//內容
}
第四課
javascript的數據類型(不管javascript有多少種數據類型,聲明的時候只可以使用var來聲明)
1:數值型
整形:123 //十進制
0123 //八進制,以0開頭
0x123 //十六進制 ,以0x開頭(是零不是o)
浮點型:整數部分加小數部分,只能以十進制表示,不過可以使用科學記數法
3.1415926 //標准形式的浮點數
3.14E9 //采用科學計數法來表示,代表的是3.14乘以10的9次方
2:字符型
字符型數據是使用單引號或者多引號括起來的一個或者多個字符
例如:'a' 'hello world'
"a" "hello world"
javascript中無char數據類型
如果要表示單個字符,必須要使用長度為1的字符串
單引號包含雙引號 '"hello"'
雙引號包含單引號 "'world'"
3:布爾型
布爾型數據只有true或者false,在js中也可以使用整數0代表false,使用非0的整數代表true
4:轉義字符
以反斜杠開頭的不可顯示的特殊字符通常稱為控制字符,也被稱為轉義字符
\b退格 \n換行 \f換頁 \tTab符 \'單引號 \" 雙引號 \\反斜杠
5:空值
null,用於定義空的或者不存在的引用
例如 var a=null;
6:未定義值
已經聲明但是沒有賦值的變量
var a;
alert(a);
彈出undefined是關鍵字,用來代表未定義值
7:Array型
數組類型,數組是包含基本和組合數據的序列,在javascript腳本語言中
每一種數據類型對應一種對象,數據本質上即為Array對象。
var score=[45,56,45,78,78,65];
由於數組本質上為Array對象,則可用運算符new來創建新的數組,如
var score=new Array(45,65,78,8,45);
訪問數組中特定元素可通過該元素的索引位置index來實現,如下面語句聲明
變量返回數組score中第4個元素
var m=score[3];
第五課
變量的定義與使用
1:變量的命名規則
變量名由字母,數字,下划線組成,但是不能以數字開頭
不能使用javascript中的關鍵字
嚴格區分大小寫
例如 username username
2:變量的聲明
var variable
可以使用一個var聲明多個變量,比如
var now,year,month,date;
可以在聲明變量的同時對它進行賦值,也就是初始化
var now="2016-8-11",year="2016",month="8",date="11";
如果只是聲明了變量,沒有賦值,那么該變量的默認值就是undefined
javascript是弱類型,聲明的時候不需要指定變量的類型,變量的類型將根據變量的值來確定
全局變量的聲明:1:在函數體外的聲明都是全局變量,無論是否有var聲明
2:在函數體內部使用var聲明的變量是局部變量,不使用var聲明的變量是全局變量
//如果給一個尚未聲明的變量類型賦值時,javascript會自動使用該變量創建一個布局變量
例如:a="hello world";
funcation test(){
var c="局部變量";//這個c是局部變量,也是唯一的一種方式定義局部變量
b="全部變量";//這個b也是全部變量
}
function test2(){
alert(b);
}
3:變量的作用域
變量的作用域是指變量在程序中的有效范圍
全部變量:定義在所有函數之外,作用於整個代碼的變量
局部變量:定義在函數體內,只作用於函數體內的變量
第六課
運算符的應用
1:賦值運算符
簡單賦值運算符
例如var useName='tom';//簡單賦值運算符
復合賦值運算符
a+=b;//相當於a=a+b;
a-=b;//相當於a=a-b;
a*=b;//相當於a=a*b;
a/=b;//相當於a=a/b;
a%=b;//相當於a=a%b;
a&b=b;//相當於a=a&b;邏輯與運算
a|=b;//相當於a=a|b;邏輯或運算
a^=b;//相當於a=a^b;邏輯非運算符
2:算術運算符
+ - * / %
++ 前++先加后用 后++先用后加
-- 前--先減后用 后--先用后減
注意:在進行除法運算時,0不能作為除數,如果0作為除數,那么將會返回這個關鍵字infinity
3:比較運算符
>大於 <小於 >=大於等於 <=小於等於
==等於 只是根據表面值進行判斷,不涉及數據類型,alert("11"==11);返回true。
===絕對等於 不僅判斷表面值,還要判斷數據類型是否一樣。
!= 不等於 只是根據表面值進行判斷,不涉及數據類型。
!==不絕對等於 不僅判斷表面值,還要判斷數據類型是否一樣。
4:邏輯運算符
!邏輯非
&&邏輯與。只有當兩個操作數的值都為true的時候,結果才會true
||邏輯或。只有兩個操作數有一個為true,則結果為true
5:條件運算符
條件運算符是javascript支持的一種特殊的三元運算符
語法格式:操作數?結果1:結果2;
如果操作數的值為true,則整個表達式的結果為結果1
如果操作數的值為false,則整個表達式的結果為結果2
6:字符串運算符
連接字符串的兩種方式
+。 var a="hello"+"world";
+=。var a+="hello world!!!";
第七課
流程控制if,switch語句
1:if條件判斷語句
1:if(expression){
//expression為true的時候執行里面的語句
}
2:if(expression){
//expression為true的時候執行里面的語句
}else{
//expression為false的時候執行里面的語句
}
3:if(expression){
//expression為true的時候執行里面的語句
}else if(expression1){
//expression1為true的時候執行里面的語句
}else if(expression2){
//expression2為true的時候執行里面的語句
}else{
//這個else可有可無,如果有的話,則上述條件
//都不滿足的時候指定else
}
2:switch語句
優點:可讀性好,易讀
語法格式
switch(表達式){
case 條件1:語句1;
break;
case 條件2:語句2;
break;
case 條件3:語句3;
break;
case 條件4:語句4;
break;
case 條件5:語句5;
break;
default:語句6//無匹配的執行此語句;
}
第八課
流程控制之for,while,do-while語句
1:for循環語句
語法格式
for(1初始條件;2循環條件;4增長步幅){
3語句體;
}
//先執行初始條件,然后判斷循環條件是否返回true,
//如果返回false,終止條件,如果為true,執行語句體,
//然后執行增長步幅
//1->2true->3->4->2true->3->4
//1->2false->3->4->2false for循環結束
實例
var sum=0;
for(var i=0;i<10;i++){
sum+=i;
}
alert(sum);
2:while循環語句
語法格式
while(表達式1){
2語句體;
}
1true->2->1true->2.....
實例
var sum=0;
var i=1;
while(i<10){
sum+=i;
i++;
}
alert(i);
3:do-while循環語句
do-while循環的循環能夠保證至少執行一次。
語法格式
do{
1執行循環體
}while(2判斷條件);
1->2true->1->2true.....
注意:while循環是先判斷條件是夠成立,然后再根據判斷的結果
是否執行循環體
do-while循環是先執行一次循環體,然后再判斷條件是否為true.
所以do-while循環能夠保證至少執行一次。
實例
var sum=0;
var i=1;
do{
sum+=i;
}while(i<=10);
alert(sum);
