目錄
一、javaScript概述
1.javaScript歷史
2.JavaScript與html,css關系
二、基本語法
①放在head中?
②放在 body中??
③寫在外部的.js文件中
1.變量
2.數據類型
3.算術運算符?
4.邏輯運算符
5.賦值運算?
6.邏輯運算符?
7.條件運算符
8.控制語句?
三、函數
1.函數定義的基本語法
2.函數調用
3.全局函數
四、內置對象
1.String字符串
2.Array數組
3.Date
4.Math?
五、事件
六、Html DOM對象
1.Html DOM概述
?2.查找元素
?3.改變HTML
?4.改變CSS
七、計時
一、javaScript概述
1.javaScript歷史
● JavaScript是由Netscape公司(美國網景公司)開發的一種腳本語言。
● Netscape公司將這種腳本語言命名為LiveScript,與java一樣,也是面向對象的語言,而且無需編譯,可由瀏覽器直接解釋運行。
● Netscape公司見LiveScript大有發展前途,而SUN公司( java)也覺得可以利用Livescript為Java的普及做鋪墊,于是兩家簽訂協議,將LiveScript改為JavaScript
● JavaScript一種直譯式腳本語言,用來為網頁添加各式各樣的動態功能 (javaScript可以操作網頁內容),不需要編譯可直接通過瀏覽器解釋運行,通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。
2.JavaScript與html,css關系
JavaScript是一種基于對象和事件驅動并具有安全性的解釋性語言,其目的就是增強Web客戶交互,彌補了HTML的缺陷
二、基本語法
腳本寫在哪里?
javaScript腳本寫在一組<script>標簽中,此標簽可以放在head中或body中,一般習慣放在 head中,還可以將腳本寫在外部的.js文件中,在html頁面中導入外部的.js文件
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script src="js/index.js"></script><script>//調用對話框庫函數//alert("大家好 我是js!"); alert("hello js!")</script></head><body></body>
</html>
alert(‘welcome!’); 提示對話框
?①放在head中?
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>alert("hello js!")</script></head><body></body>
</html>
②放在 body中??
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title></head><body><script src="js/index.js"></script></body>
</html>
③寫在外部的.js文件中
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script src="js/index.js"></script></head><body></body>
</html>
1.變量
● 聲明變量用var關鍵字? 例如 var name;
● 聲明變量的同時對其賦值? ?var test=“THIS IS A BOOK”
2.數據類型
javaScript支持的數據類型
● ①數值型(number): 其中包括整型數和浮點型數。
● ②布爾型(boolean): 即邏輯值,true或flase。
● ③字符串型: 由單個或多個文本字符組成。字符串是用單引號或雙引號來說明的。(使用單引號來輸入包含引號的字符串)
● ④undefined類型
● ⑤Object類型
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script>/* 數據類型 *///1.數值類型(包含整數和浮點數)var a = 10;var b = 10.5; /* alert(typeof(b));number typeof(b)返回變量的數據類型 *///2.布爾類型var c = true;var d = false;/* alert(a==b); *///3.字符串,單引號和雙引號都表示字符串var e = "abcd";var f = 'abcd';/* alert(typeof(e));alert(typeof(f)); *///4.undefined 聲明了變量,卻沒有var g;alert(g==undefined);//對象類型var date = new Date();/* alert(date.getFullYear());alert(date.getMonth()+1);date.getDate(); */</script></head><body></body>
</html>
3.算術運算符?
+:可以進行“加法”與“連接”運算,如果2個運算符中的一個是字符串,javascript就將另一個轉換成字符串,然后將2個運算數連接起來
-:"字符串"-數值=數值,如果2個運算符中的一個是字符串,會把表達式中的數字字符串嘗試類型轉換,如果字符串不能轉換為數值 ,返回NaN
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script>/* 算術運算符 + - * / % ++ --+ 加法運算 字符串運算*/var a = "10";var b = 5;var c = 10;var d = "a";//alert(a+b);//字符串連接 105//alert(b+c);//加法 15/* alert(c-b);//5 減法alert(a-b);//5 "字符串"-數值=數值 會把表達式中的數字字符串嘗試類型轉換alert(c-d);//NaN not a number 如果字符串不能轉換為數值 返回NaN */// alert(a*b);//50// alert(a*d);//NaN</script></head><body></body>
</html>
4.邏輯運算符
邏輯運算符用于測定變量或值之間的邏輯,給定 x=6 以及 y=3 ,下表解釋了邏輯運算符:![]()
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script>var a = "10";var b = 5;var c = 10;var d = "a";// alert(a==c);//只比較值是否相等// alert(a===c);//全等(值和類型)</script></head><body></body>
</html>
5.賦值運算?
6.邏輯運算符?
邏輯運算符用于測定變量或值之間的邏輯,給定 x=6 以及 y=3 ,下表解釋了邏輯運算符:![]()
7.條件運算符
JavaScript 還包含了基于某些條件對變量進行賦值的條件運算符語法:var result = (條件表達式)?結果1:結果2當條件成立返回?后的內容,否則返回:后的內容
8.控制語句?
第一種是選擇結構● 單一選擇結構(if)● 二路選擇結構(if/else)● 多路選擇結構(switch)第二種類型的程序控制結構是循環結構● 由計數器控制的循環(for)● 在循環的開頭測試表達式(while)● 在循環的末尾測試表達式(do/while)● break continue
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script>var a = "10";var b = 5;var c = 10;var d = "a";if(c>b){alert(c);} for (var i = 0;i < 5;i++){alert(i);}</script></head><body></body>
</html>
三、函數
1.函數定義的基本語法
function functionName([arguments]){javascript statements[return expression]}
function: 表示函數定義的關鍵字functionName:表示函數名arguments:表示傳遞給函數的參數列表,各個參數之間用逗號隔開,可以為空statements: 表示實現函數功能的函數體return expression:表示函數將返回expression的值,同樣是可選的的語句
2.函數調用
由函數來調用<script type= "text/javascript">function fun(){? alert(“test”);}fun();//函數名調用function fun2(){fun();//在其他函數中調用}</script>
3.全局函數
? parseInt(arg) 把括號內的內容轉換成整數之后的值。如果括號內是字符串, 則字符串開頭的數字部分被轉換成整數,如果以字母開頭,則返回 “NaN”?? parseFloat(arg) 把括號內的字符串轉換成浮點數之后的值,字符串開頭的數字部分被轉換成浮點數,如果以字母開頭,則返回“NaN”?? typeof (arg)返回arg值的數據類型? eval(arg) 可運算某個字符串
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script>//①無參構造方法/*function test(){alert("你好");} *///②有參構造方法/* function test(a,b,c){alert(a+":"+b+":"+"c");}*///有返回值/* function test(a,b){return a+b;}*///函數調用/* test(); test(true,"abc",new Date()); var c = test(10,23);alert(c); *///系統中的全局函數 在系統已經定義好了,直接調用的函數//alert(輸出內容); 彈窗顯示var a = 10.5;var b = "10.5";var c = 5;alert(parseInt(a));//把浮點數轉為整數alert(parseInt(b)+c);//把字符串更換轉換成整數, 如果轉換的內容是字符串,字母不能開頭, 只將開頭的數字部分轉換alert(parseFloat(c));alert(parseFloat(b)); alert(typeof(a));alert(typeof(b)); //typeof(變量) 獲取變量的數據類型var s = "2+3*2"; var s = 2+3*2;var s = "alert(a)";eval(s);//把傳入進來的字符串可以當做js腳本執行 </script></head><body></body>
</html>
四、內置對象
1.String字符串
length 用法:返回該字符串的長度
charAt(n) :返回該字符串位于第 n 位的單個字符indexOf(char) :返回指定 char 首次出現的位置lastIndexOf(char) :跟 indexOf() 相似,不過是從后邊開始找substring(start,end) :返回原字符串的子字符串,該字符串是原字符串從 start 位置到end 位置的前一位置的一段 .substr(start,length) :返回原字符串的子字符串,該字符串是原字符串從 start 位置開始,長度為length 的一段split( 分隔符字符 ) :返回一個數組,該數組是從字符串對象中分離開來的, < 分隔符字符> 決定了分離的地方,它本身不會包含在所返回的數組中例如:'1&2&345&678'.split('&')返回數組:1,2,345,678
2.Array數組
數組的定義方法:? var <數組名> = new Array();這樣就定義了一個空數組,以后要添加數組元素,就用:? <數組名>[下標] = 值;如果想在定義數組的時候直接初始化數據,請用:? var <數組名> = new Array(<元素1>, <元素2>, <元素3>...);還可以? var <數組名> = [<元素1>, <元素2>, <元素3>...];
length :數組的長度,即數組里有多少個元素
join(<分隔符>) : 返回一個字符串,該字符串把數組中的各個元素串起來,用 < 分隔符> 置于元素與元素之間reverse(): 使數組中的元素順序反過來。如果對數組 [1, 2, 3] 使用這個方法,它將使數組變成:[3, 2, 1]sort() : 使數組中的元素按照一定的順序排列。如果不指定 < 方法函數 > ,則按字母順序排列對數字排序需要調用排序函數function sortNumber(a,b){? return a - b;}
?3.Date
● 獲取日期
new Date() 返回當日的日期和時間getFullYear() 返回四位數字年份getDate() 返回一個月中的某一天 (1 ~ 31)getMonth() 返回月份 (0 ~ 11)getDay() 返回一周中的某一天 (0 ~ 6)getHours() 返回 Date 對象的小時 (0 ~ 23)getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)getSeconds() 返回 Date 對象的秒數 (0 ~ 59))
4.Math?
● Math 對象,提供對數據的數學計算
● 屬性
PI 返回π(3.1415926535...)
● 方法?
Math.abs(x) 絕對值計算;Math.pow(x,y) 數的冪;x的y次冪Math.sqrt(x) 計算平方根;Math.ceil(x) 對一個數進行上舍入Math.floor(x) 對一個數進行下舍入。Math.round(x) 把一個數四舍五入為最接近的整數Math.random() 返回 0 ~ 1 之間的隨機數Math.max(x,y) 返回 x 和 y 中的最大值Math.min(x,y) 返回 x 和 y 中的最小值?
五、事件
● 一些常用的事件
onclick()鼠標點擊時;onblur()標簽失去焦點;onfocus()標簽獲得焦點;onmouseover()鼠標被移到某標簽之上;onmouseout鼠標從某標簽移開;onload()是在網頁加載完畢后觸發相應的的事件處理程序;onchange()是指當前標簽失去焦點并且標簽的內容發生改變時觸發事件處理程序。
六、Html DOM對象
1.Html DOM概述
● DOM是Document Object Model文檔對象(網頁中的標簽)模型的縮寫● 通過html dom,可用javaScript操作html文檔的所有標簽
?2.查找元素
● 通常,通過 JavaScript,您需要操作 HTML 標簽● 為了做到這件事情,您必須首先找到該標簽● 要操作,先得到● 有四種方法來做這件事:①通過 id 找到 HTML 標簽document.getElementById(“id");②通過標簽名找到 HTML 標簽document.getElementsByTagName("p");③通過類名找到 HTML 標簽document.getElementsByClassName("p");④通過name找到 HTML 標簽document.getElementsByName(“name");
?3.改變HTML
● Html dom允許javaScript 改變html標簽的內容
? ? 改變 HTML 標簽的屬性document.getElementById(“username").value=“new value";document.getElementById("image").src=“new.jpg";? 修改 HTML 內容的最簡單的方法時使用 innerHTML 屬性document.getElementById( “div”).innerHTML= new HTML??
?4.改變CSS
● html dom允許 javaScript改變html標簽的樣式
document.getElementById("id").style.property=new style;
document.getElementById("p2").style.backgroundImage="url(bg.jpg)";
七、計時
● 通過使用 JavaScript,我們有能力做到在一個設定的時間間隔之后來執行代碼,而不是在函數被調用后立即執行,我們稱之為計時事件
setTimeout(“函數”,”時間”)未來的某時執行代碼clearTimeout()取消setTimeout()setInterval(“函數”,”時間”)每隔指定時間重復調用clearInterval()取消setInterval()
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script>function hello(){console.log("下午好");}/* var t = setTimeout("hello()",5000);//設定指定時間后調用指定的函數,只調用一次 */var t;function startTime(){t = setInterval("hello()",1000);}function stopTime(){/* clearTimeout(t);//取消定時器 */clearInterval(t);}</script></head><body><input type="button" value="開始" onclick="startTime()"/><input type="button" value="停止" onclick="stopTime()"/></body>
</html>