javascript筆記 --基礎
javascript
也是一種開發語言,雖然名字中有“java“,但是和java語言是沒有關係的,java主要是做服務器端程序的開發。
javascript主要是做客戶端頁面中腳本語言的開發,所以javascript是一種腳本語言,
腳本:可以直接嵌入到瀏覽器頁面運行的程序。
javascript語言的特點:
1.解釋執行
2.弱語言
3.基於對象。
4.事件驅動
5.簡單性。
6.不同瀏覽器的支持不同
如何去寫javascript代碼:
javascript代碼的位置:
1.直接寫到頁面中
2.寫到標籤元素的事件屬性裏面
3.寫到一個外部的文件裏面(.js結尾的文件)
如果是直接寫到頁面中,必須寫到一個標籤裏面:
<script language="javascript">
//在這裏寫js代碼
</script>
javacript的運行
瀏覽器可以直接運行js代碼(解釋執行),但是不同瀏覽器中運行相同的js代碼可能效果是不一樣的,甚至可能會報錯
js代碼是嵌入在頁面中,所用使用瀏覽器去運行頁面就可以執行到頁面中的js代碼。
使用javascript可以做什麼事情:
1.對客戶端的數據進行計算。
2.動態的改變頁面中標籤元素的屬性
3.動態的創建或者刪除頁面中的標籤元素
4.獲取頁面中的數據(輸入框的值,鼠標的當前座標等等)
5.驗證用戶所填寫的表單中的數據的合法性。
6.在Ajax中使用js去解析服務器端傳到頁面的文本或者xml文檔
注:DHTML的概念很多時候指的就是使用html+css+javascript在頁面中實現的一些動態效果。
javascript中的註釋:
//單行註釋
/*
這是多行註釋
*/
/**
也是註釋
*/
js中的三種彈框方式:alert confirm prompt
//alert屬於提示框,或者是警告框
//confim 是確認框
//prompt 輸入對話框
這三個方法都是window對象的方法,只有window對象的方法可以省略window對象。
三種彈框都用一個共同的特點:當瀏覽器運行一個彈框代碼的時候,用戶如果不點擊
彈框中的確定或者取消按鈕的話,瀏覽器就會卡在彈框處,下面的頁面代碼就不會被執行。
alert彈出一個警告框/提示框,用戶點擊確定按鈕之後就可以繼續訪問
confirm 彈出一個確認框,用戶可以點擊確定或者取消,這個confirm方法會相應的返回true/false
prompt彈出一個可以讓用戶輸入的窗口,用戶可以輸入後點擊確定,這個方法會把用戶的輸入內容返回。
同時還可以在輸入框中設置一個默認值。
prompt("您的名字:","wukaifeng");
js中的變量聲明:
任何類型的變量都可以用var關鍵字聲明
var a="";
var b=10;
var c=10.9;
var d=new Date();
var e=true;
js中的undefined 和null:
//彈出null
var age=null;
alert(age);
var age;
alert(age);//彈出undefined
js的標識符的命名規範:
1,不能以數字開頭(字母,數字,下劃線,$符號)
2,區分大小寫
3,不能使用js的關鍵字和保留着
js中一些內置對象的作用:
<script language ="javascript">
var s ="hello world";
//獲得字符串的長度
document.write(s.length+"<br>");
//從下標爲3的位置開始,截取4個字符,包括下標爲3的位置的字符
document.write(s.substr(3,4)+"<br>");
//從下標爲6的位置開始截取,截取到下標爲8的位置,但是不包括下標爲8的位置。
document.write(s.substring(6,8)+"<br>");
//trim()去掉字符串兩邊的空格,但是這個方法有可能瀏覽器不支持
document.write(s.trim().length+"<br>");
//字符串轉換爲大寫
document.write(s.toUpperCase()+"<br>");
//字符串轉換爲小寫
document.write(s.toLowerCase()+"<br>");
//分割字符串返回一個數組,
document.write(s.split(" ")+"<br>");
document.write(s.split(" ").length+"<br>");
document.write(s.split(" ")[0]+"<br>");
document.writeln("<h1>日期對象</h1>");
var date = new Date();
document.writeln(date+"<br>");
//獲得當前年份減去1900
document.writeln(date.getYear()+"<br>");
//獲得當前年份
document.writeln(date.getFullYear()+"<br>");
//獲得月份加1
document.writeln(date.getMonth()+"<br>");
//獲得當前是一個月中的哪一號
document.writeln(date.getDate()+"<br>");
//獲得星期幾
document.writeln(date.getDay()+"<br>");
//獲得24小時制中的小時
document.writeln(date.getHours()+"<br>");
//獲得時間中的 分
document.writeln(date.getMinutes()+"<br>");
//獲得時間中的 秒
document.writeln(date.getSeconds()+"<br>");
//獲得時間中的 毫秒
document.writeln(date.getMilliseconds()+"<br>");
document.writeln("<h1>對象Math對象</h1>");
//獲得常量圓周率
document.writeln(Math.PI+"<br>");
//獲得常量e
document.writeln(Math.E+"<br>");
//獲得隨機數【0,1)
document.writeln(Math.random()+"<br>");
//獲得隨機數【23,36】
document.writeln(parseInt((Math.random()*14+23))+"<br>");
//獲得一個較小的數字//不一定是兩個參數
document.writeln(Math.min(1,10)+"<br>");
//獲得一個較大的數字
document.writeln(Math.max(1,10)+"<br>");
document.writeln("<h1>數組對象</h1>");
//創建數組的時候,可以指定數組的長度,也可以不指定
/*
js中數組的特點:
1,數組的長度是可變的
2,數組裏面放的數據類型也可以不同
3,數組長度是和你使用的數組最大的下標相關的
*/
// var a= new Array(5);
var a= new Array();
a[0]="tom0";
a[1]="tom1";
a[2]="tom2";
a[5]="tom5";
document.write(a.length+"<br>");
for(var i=0;i<a.length;i++){
document.writeln(a[i]);
}
//輸出的結果爲:tom0 tom1 tom2 undefined undefined tom5
document.writeln("<br>");
//for ~in 循環
//這裏的這個變量i每次拿到的是數組下標,而且是已經存在值的位置的下標,對於那些值是undefined
//的位置下標是不會拿的。
for(var i in a){
document.writeln(a[i]);
}
//輸出的結果爲:tom0 tom1 tom2 tom5
</script>
5.
其他常見的對象:
window
window.location
window.history
window.document
//新建一個瀏覽器窗口打開url
window.open("url");
//在當前這個瀏覽器窗口中打開url
window.location.href="url";
<input type="button" value="跳轉"
onclick="javascript:window.open('http://www.baidu.com')"/>
<input type="button" value="前進"
onclick="javascript:window.history.forward()"/>
<input type="button" value="後退"
onclick="javascript:window.history.back()"/>
在使用瀏覽器進行一系列的頁面訪問的時候,瀏覽器會記錄這個訪問的歷史記錄的。
//訪問歷史記錄的下一個頁面:
window.history.forward()
window.history.go(1);
//訪問歷史記錄的上一個頁面:
window.history.back()
window.history.go(-1);
//訪問歷史記錄中的前n個頁面或者後面n個頁面。
window.history.go(n);
window.history.go(-n);
//使用這個在js中可以拿到html頁面中的標籤元素對象(js有對象的概念)
//document代表的是整個html文檔
window.document
//通過id屬性拿這個元素對象(默認id屬性的值是唯一的)
//如果html頁面有兩個id相同的元素,那麼拿到的是頁面最上面的,也是最先聲明的元素對象。
var div1=window.document.getElementById("div1");
//window.alert(div1);
//通過name屬性來拿元素對象
//拿到的是一個元素對象的集合
//可以循環變量集合,或者直接通過集合下標來拿某一個元素對象。
var v= document.getElementsByName("mydiv1");
//alert("v="+v);
//alert("v.length="+v.length);
//alert("v.[0]="+v[0]);
//通過標籤的名字拿,拿到的也是頁面中所有的某一個相同標籤的元素對象的集合。
var vv=document.getElementsByTagName("div");
alert("vv="+vv);
alert("vv.length="+vv.length);
alert("vv.[0]="+vv[0]);
//通過class屬性來拿
//拿到頁面中所有class屬性值相同的元素對象的集合。
var a=document.getElementsByClassName("cla");
alert("a="+a);
js中拿到某一個元素對象後可以做什麼事情
1,給元素中添加文本值(如果可以添加的話)
2,修改元素中的屬性值。
3,添加或者刪除某些元素。
<body>
<input id="name" type="text" name="name" value="tom"/><br>
<div id="mydiv">this is div</div>
</body>
<script language="javascript">
var temp = document.getElementById("name");
temp.value="lisi";
alert(temp.value);
var temp2 = document.getElementById("mydiv");
temp2.innerHTML="<font color='red'>HELLO WORD</font>";
alert(temp2.innerHTML);
</script>
JS中可以獲得任何一個元素對象中的文本值
1.讓用戶輸入的標籤元素
例如 文本輸入框、密碼框、文本域等等
首先拿到這個元素對象
var myInput = document.getElementById("myInput");
獲得元素中的文本值:
var value = myInput.value;
設置元素中的文本值:
myInput.value = "zhangsan";
2.直接寫在開始標籤和結束標籤中間的元素
例如 div span font td p 等等
<div>hello</div>
首先拿到這個元素對象
var myDiv = document.getElementById("myDiv");
獲得元素中的文本值:
var value = myDiv.innerHTML;
設置元素中的文本值:
myDiv.innerHTML = "zhangsan";
JS中判斷一個變量是否是一個數字
//這個全局方法判斷一個標量【是否】【不是】一個數字
isNaN() 返回值 true|false
例如:
var a = "123abc";
alert(isNaN(a)); //輸出true
var b = "123";
alert(isNaN(b));//輸出false
JS中讓一個標籤對象獲得焦點:
例如:
document.getElementById("inputA").focus();
JS中的全局函數eval
//使用全局函數eval計算出一個字符串類型的運算式子的結果.
var c = "1+4*5";
alert(eval(c));//輸出21
JS中的兩種定時調用的方法
window對象的倆個方法:
setInterval
setTimeout
例如:
每隔1000毫秒調用一樣showTime方法.
方法返回一個id值,表示這個定時調用任務的id值,將來可以使用一個方法通過這個id值把之前建立的定時調用的任務刪除掉.
var id = setInterval("showTime()",1000);
清除某個定時調用的任務
window.clearInterval(id);
5000毫秒以後會調用showTime()方法,而且只是調用這一次.
setTimeout("showTime()",5000);
也是一種開發語言,雖然名字中有“java“,但是和java語言是沒有關係的,java主要是做服務器端程序的開發。
javascript主要是做客戶端頁面中腳本語言的開發,所以javascript是一種腳本語言,
腳本:可以直接嵌入到瀏覽器頁面運行的程序。
javascript語言的特點:
1.解釋執行
2.弱語言
3.基於對象。
4.事件驅動
5.簡單性。
6.不同瀏覽器的支持不同
如何去寫javascript代碼:
javascript代碼的位置:
1.直接寫到頁面中
2.寫到標籤元素的事件屬性裏面
3.寫到一個外部的文件裏面(.js結尾的文件)
如果是直接寫到頁面中,必須寫到一個標籤裏面:
<script language="javascript">
//在這裏寫js代碼
</script>
javacript的運行
瀏覽器可以直接運行js代碼(解釋執行),但是不同瀏覽器中運行相同的js代碼可能效果是不一樣的,甚至可能會報錯
js代碼是嵌入在頁面中,所用使用瀏覽器去運行頁面就可以執行到頁面中的js代碼。
使用javascript可以做什麼事情:
1.對客戶端的數據進行計算。
2.動態的改變頁面中標籤元素的屬性
3.動態的創建或者刪除頁面中的標籤元素
4.獲取頁面中的數據(輸入框的值,鼠標的當前座標等等)
5.驗證用戶所填寫的表單中的數據的合法性。
6.在Ajax中使用js去解析服務器端傳到頁面的文本或者xml文檔
注:DHTML的概念很多時候指的就是使用html+css+javascript在頁面中實現的一些動態效果。
javascript中的註釋:
//單行註釋
/*
這是多行註釋
*/
/**
也是註釋
*/
js中的三種彈框方式:alert confirm prompt
//alert屬於提示框,或者是警告框
//confim 是確認框
//prompt 輸入對話框
這三個方法都是window對象的方法,只有window對象的方法可以省略window對象。
三種彈框都用一個共同的特點:當瀏覽器運行一個彈框代碼的時候,用戶如果不點擊
彈框中的確定或者取消按鈕的話,瀏覽器就會卡在彈框處,下面的頁面代碼就不會被執行。
alert彈出一個警告框/提示框,用戶點擊確定按鈕之後就可以繼續訪問
confirm 彈出一個確認框,用戶可以點擊確定或者取消,這個confirm方法會相應的返回true/false
prompt彈出一個可以讓用戶輸入的窗口,用戶可以輸入後點擊確定,這個方法會把用戶的輸入內容返回。
同時還可以在輸入框中設置一個默認值。
prompt("您的名字:","wukaifeng");
js中的變量聲明:
任何類型的變量都可以用var關鍵字聲明
var a="";
var b=10;
var c=10.9;
var d=new Date();
var e=true;
js中的undefined 和null:
//彈出null
var age=null;
alert(age);
var age;
alert(age);//彈出undefined
js的標識符的命名規範:
1,不能以數字開頭(字母,數字,下劃線,$符號)
2,區分大小寫
3,不能使用js的關鍵字和保留着
js中一些內置對象的作用:
<script language ="javascript">
var s ="hello world";
//獲得字符串的長度
document.write(s.length+"<br>");
//從下標爲3的位置開始,截取4個字符,包括下標爲3的位置的字符
document.write(s.substr(3,4)+"<br>");
//從下標爲6的位置開始截取,截取到下標爲8的位置,但是不包括下標爲8的位置。
document.write(s.substring(6,8)+"<br>");
//trim()去掉字符串兩邊的空格,但是這個方法有可能瀏覽器不支持
document.write(s.trim().length+"<br>");
//字符串轉換爲大寫
document.write(s.toUpperCase()+"<br>");
//字符串轉換爲小寫
document.write(s.toLowerCase()+"<br>");
//分割字符串返回一個數組,
document.write(s.split(" ")+"<br>");
document.write(s.split(" ").length+"<br>");
document.write(s.split(" ")[0]+"<br>");
document.writeln("<h1>日期對象</h1>");
var date = new Date();
document.writeln(date+"<br>");
//獲得當前年份減去1900
document.writeln(date.getYear()+"<br>");
//獲得當前年份
document.writeln(date.getFullYear()+"<br>");
//獲得月份加1
document.writeln(date.getMonth()+"<br>");
//獲得當前是一個月中的哪一號
document.writeln(date.getDate()+"<br>");
//獲得星期幾
document.writeln(date.getDay()+"<br>");
//獲得24小時制中的小時
document.writeln(date.getHours()+"<br>");
//獲得時間中的 分
document.writeln(date.getMinutes()+"<br>");
//獲得時間中的 秒
document.writeln(date.getSeconds()+"<br>");
//獲得時間中的 毫秒
document.writeln(date.getMilliseconds()+"<br>");
document.writeln("<h1>對象Math對象</h1>");
//獲得常量圓周率
document.writeln(Math.PI+"<br>");
//獲得常量e
document.writeln(Math.E+"<br>");
//獲得隨機數【0,1)
document.writeln(Math.random()+"<br>");
//獲得隨機數【23,36】
document.writeln(parseInt((Math.random()*14+23))+"<br>");
//獲得一個較小的數字//不一定是兩個參數
document.writeln(Math.min(1,10)+"<br>");
//獲得一個較大的數字
document.writeln(Math.max(1,10)+"<br>");
document.writeln("<h1>數組對象</h1>");
//創建數組的時候,可以指定數組的長度,也可以不指定
/*
js中數組的特點:
1,數組的長度是可變的
2,數組裏面放的數據類型也可以不同
3,數組長度是和你使用的數組最大的下標相關的
*/
// var a= new Array(5);
var a= new Array();
a[0]="tom0";
a[1]="tom1";
a[2]="tom2";
a[5]="tom5";
document.write(a.length+"<br>");
for(var i=0;i<a.length;i++){
document.writeln(a[i]);
}
//輸出的結果爲:tom0 tom1 tom2 undefined undefined tom5
document.writeln("<br>");
//for ~in 循環
//這裏的這個變量i每次拿到的是數組下標,而且是已經存在值的位置的下標,對於那些值是undefined
//的位置下標是不會拿的。
for(var i in a){
document.writeln(a[i]);
}
//輸出的結果爲:tom0 tom1 tom2 tom5
</script>
5.
其他常見的對象:
window
window.location
window.history
window.document
//新建一個瀏覽器窗口打開url
window.open("url");
//在當前這個瀏覽器窗口中打開url
window.location.href="url";
<input type="button" value="跳轉"
onclick="javascript:window.open('http://www.baidu.com')"/>
<input type="button" value="前進"
onclick="javascript:window.history.forward()"/>
<input type="button" value="後退"
onclick="javascript:window.history.back()"/>
在使用瀏覽器進行一系列的頁面訪問的時候,瀏覽器會記錄這個訪問的歷史記錄的。
//訪問歷史記錄的下一個頁面:
window.history.forward()
window.history.go(1);
//訪問歷史記錄的上一個頁面:
window.history.back()
window.history.go(-1);
//訪問歷史記錄中的前n個頁面或者後面n個頁面。
window.history.go(n);
window.history.go(-n);
//使用這個在js中可以拿到html頁面中的標籤元素對象(js有對象的概念)
//document代表的是整個html文檔
window.document
//通過id屬性拿這個元素對象(默認id屬性的值是唯一的)
//如果html頁面有兩個id相同的元素,那麼拿到的是頁面最上面的,也是最先聲明的元素對象。
var div1=window.document.getElementById("div1");
//window.alert(div1);
//通過name屬性來拿元素對象
//拿到的是一個元素對象的集合
//可以循環變量集合,或者直接通過集合下標來拿某一個元素對象。
var v= document.getElementsByName("mydiv1");
//alert("v="+v);
//alert("v.length="+v.length);
//alert("v.[0]="+v[0]);
//通過標籤的名字拿,拿到的也是頁面中所有的某一個相同標籤的元素對象的集合。
var vv=document.getElementsByTagName("div");
alert("vv="+vv);
alert("vv.length="+vv.length);
alert("vv.[0]="+vv[0]);
//通過class屬性來拿
//拿到頁面中所有class屬性值相同的元素對象的集合。
var a=document.getElementsByClassName("cla");
alert("a="+a);
js中拿到某一個元素對象後可以做什麼事情
1,給元素中添加文本值(如果可以添加的話)
2,修改元素中的屬性值。
3,添加或者刪除某些元素。
<body>
<input id="name" type="text" name="name" value="tom"/><br>
<div id="mydiv">this is div</div>
</body>
<script language="javascript">
var temp = document.getElementById("name");
temp.value="lisi";
alert(temp.value);
var temp2 = document.getElementById("mydiv");
temp2.innerHTML="<font color='red'>HELLO WORD</font>";
alert(temp2.innerHTML);
</script>
JS中可以獲得任何一個元素對象中的文本值
1.讓用戶輸入的標籤元素
例如 文本輸入框、密碼框、文本域等等
首先拿到這個元素對象
var myInput = document.getElementById("myInput");
獲得元素中的文本值:
var value = myInput.value;
設置元素中的文本值:
myInput.value = "zhangsan";
2.直接寫在開始標籤和結束標籤中間的元素
例如 div span font td p 等等
<div>hello</div>
首先拿到這個元素對象
var myDiv = document.getElementById("myDiv");
獲得元素中的文本值:
var value = myDiv.innerHTML;
設置元素中的文本值:
myDiv.innerHTML = "zhangsan";
JS中判斷一個變量是否是一個數字
//這個全局方法判斷一個標量【是否】【不是】一個數字
isNaN() 返回值 true|false
例如:
var a = "123abc";
alert(isNaN(a)); //輸出true
var b = "123";
alert(isNaN(b));//輸出false
JS中讓一個標籤對象獲得焦點:
例如:
document.getElementById("inputA").focus();
JS中的全局函數eval
//使用全局函數eval計算出一個字符串類型的運算式子的結果.
var c = "1+4*5";
alert(eval(c));//輸出21
JS中的兩種定時調用的方法
window對象的倆個方法:
setInterval
setTimeout
例如:
每隔1000毫秒調用一樣showTime方法.
方法返回一個id值,表示這個定時調用任務的id值,將來可以使用一個方法通過這個id值把之前建立的定時調用的任務刪除掉.
var id = setInterval("showTime()",1000);
清除某個定時調用的任務
window.clearInterval(id);
5000毫秒以後會調用showTime()方法,而且只是調用這一次.
setTimeout("showTime()",5000);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.