javascript的一些东西
来源:互联网 发布:北京大数据招聘 编辑:程序博客网 时间:2024/04/28 05:56
- 簡介
- 瀏覽器的支援差異
- 宣告
- 基本使用
- javascript在html中的位置
- 資料型態(Data Type)
- 變數(Variable)
- 物件模型DOM
- 使用技巧
- 參考書目
- 網路資源
簡介
JavaScript是由Netscape Communication與Sun Microsystem兩家公司所共同開發網頁瀏覽器專用的Script語言,在IE中稱為Jscript。無論是 JavaScript 或是 JScript,都滿足 ECMA(European Computer Manufacturer's Association,歐洲電腦製造商協會)所提出來的標準,滿足此標準的語言稱為 ECMAScript,當初 Netscape 和微軟也都有參與此語言的制訂。
JavaScript是一個直譯型、並以物件為基礎的 Scripting 語言。JavaScript並不是另一個語言的縮減版 (它與 Java 之間並沒有什麼直接關連),而且也不是其他任何軟體的簡化版。不過,它仍有一些限制。舉例來說,您無法使用它撰寫一些獨立式應用程式,而且它也沒有檔案讀寫與安全與繪圖的功能。
JavaScript甚至只能在直譯程式或"主機"上執行,如Active Server Pages (ASP),Internet Explorer,或Windows Script Host。
JavaScript的語言型態並不嚴謹(Dynamically typed),這表示您不需要非常明確地宣告變數的資料型態。JavaScript是跟HTML混合在一起的程式,可以在頁面上做出即時的特效,它會隨著網頁下載到你的電腦,然後瀏覽器自動執行跟HTML程式混在一起的JavaScript程式,做出特效來。
瀏覽器的支援差異
javascript的撰寫在不同瀏覽器上的表現都有些許差異, 一般而言, IE對於錯誤的程式碼容忍度較高, Mozilla則較為嚴謹
在指定瀏覽器上的表單物件時,IE可不指定document,而 mozilla則否, 例如mozilla需指定為 document.forms.text.value , 而IE可簡寫為 forms.text.value ,但還好我們可以先用一個變數來取代指定的麻煩, 如
s.text.value=....... ;
宣告
舊的語法
行內宣告<script language="JavaScript">
<!--
script
//-->
</script>
預防瀏覽器不支援 <!-- -->
不讓-->成為JavaScript的一部份,需加入//宣告依版本而有不同
<script language="JavaScript">
<script language="JavaScript1.1">
<script language="JavaScript1.2">
<script language="JavaScript1.3">
<script language="JavaScript1.4">
<script language="JavaScript1.5">
<script language="JScript"> 嵌入宣告
<script language="JavaScript" src="外部的.js檔案URL">
</script>
新的語法
行內宣告<script type="text/javascript">
<!--
script
//-->
</script> 預防瀏覽器不支援 <!-- -->
不讓-->成為JavaScript的一部份,需加入//
<script type="text/javascript">
</script>
嵌入宣告<script type="text/javascript" src="外部的.js檔案URL">
</script>
宣告不支援JavaScript的語法
<noscript>本網頁使用了JavaScript</noscript>
基本使用
<body>
<script type="text/javascript">
document.write("Hello World!")
</script>
</body>
</html>
<body>
<script type="text/javascript">
document.write("<h6>Hello World!</h6>")
</script>
</body>
</html>
Hello World!
javascript在html中的位置
<head>
<script type="text/javascript">
function message()
{
alert("This alert box was called with the onload event")
}
</script>
</head>
<body onload="message()">
</body>
</html>
<head>
</head>
<body>
<script type="text/javascript">
document.write("This message is written when the page loads")
</script>
</body>
</html>
資料型態(Data Type)
JScript無法明確地宣告資料型態。在許多情況下,JScript 會在需要時自動執行轉換。例如,如果在文字 (字串) 所組成的項目中加入一個數字,這個數字就會轉換成文字。原生資料型態(Primitive Data Type)
字串
字串值是一串由 0 個或 0 個以上的 Unicode 字元(字母,小數點和標點符號)結合而成。雙括號可以包含在括在單括號的字串裡,而單括號也可以包含在括在雙括號的字串裡。 s="Happy am I; from care I'm free!";
s='"Avast, ye lubbers!" roared the technician.';
s="42";
s='c';
s="";
數字
Jscript 中的整數和浮點值並無明顯區分;兩者都可以作為 JScript 數字 (JScript 內部把所有的數字表示成浮點值)。
特殊數值
NaN:用不正確的資料,像字串或未定義的值執行數學運算時,就會使用這個數值
Positive Infinity:當正數大到無法顯示在Jscript中時,就會使用這個數值
Negative Infinity:當負數大到無法顯示在Jscript中時,就會使用這個數值
Positive and Negative 0:JScript 區分正 0 和負 0。
布林
布林資料型態卻只能有 2 種值,那就是 true 和 false。 flag=true; flag=false; flag = (x == 2000);特殊資料型態
null 和 undefined 最大的不同是, null 就好比數字 0,而 undefined 好比特殊值 NaN (非數字)。null 值和 undefined 值經比較後一律相等。
Null
一個包含null的變數,就是"無值" 或 "無物件"。換句話說,它是無效的數字、字串、布林值、陣列、或物件。您可以指定變數的值為null以刪除這個變數的內容,但又不刪掉這個變數。JScript 的null 資料型態只有一個值:null。null 關鍵字不能拿來作為一個函數或變數的名稱。
Undefined
遇到下列情況,會傳回未定義的值。也就是使用:不存在的物件屬性
已經宣告,但未指定值的變數。
注意不能把變數拿來跟為定義的值比對,檢測這個變數是否存在,雖然您可以藉此檢查這個變數的型態是否為 "undefined"。從下列的程式碼範例中, 可以推測這個程式設計者嘗試要檢測變數x 是否已宣告:
var currentCount;
var finalCount = 1 * currentCount; // finalCount 的值是 NaN,因為 currentCount 為Undefined。
組合 (引用) 資料型態
物件
hobby=["聽音樂","看電影"]陣列
資料型態轉換
JavaScript是一種動態類型(Dynamically typed)語言自動轉換原則
- 運算式中有數字的字串且使用(+),運算式視為字串
- 運算式中有數字的字串且使用(-*/....)其他運算子,運算式視為數值
- null乘以任何數皆為0
- undefined乘以任何數皆為NaN(Not a Number)
強制轉換
- 將字串強迫轉為數值:eval("字串")
- 將字串強迫轉為指定底數的數值:parseInt("字串",[底數])
- 將字串強迫轉為浮點數:parseFloat("字串")
變數(Variable)=識別字(Identifier)
宣告
類型
區域變數var 變數名; 全域變數變數名;方式
單一宣告var name; 多變數同時宣告var name,sex; 宣告時並賦予初值,否則其值為undefinedvar name="peter",sex="女"; 雖然變數型態不同,宣告方式都一樣var num=30,flag=true;命名
提供作為命名變數,命名函數,提供迴圈的標籤。區分大小寫
var x; var X第一個字元必須是ASCII字母 (大小寫皆可)、底線 (_)字元
注意數字不能拿來當第一個字元
後面的字元必須是字母、數字、或底線
var _x; var x_1複合字的第一個字建議要大寫
var MyFriend;變數名稱不能為保留字
以a標籤連結至javascript的函數有2種方式
文字瀏覽器不可用(假連結)
<a href='javascript:show_url("argument")' >連結至函數</a>
文字瀏覽器可用
<a href="#" onclick='show_url("argument");return false;' >連結至函數</a>
特殊連結程式碼?
上一頁javascript:window.history.go(-1)javascript:window.history.back()下一頁javascript:window.history.go(1)javascript:window.history.forward()重新整理javascript:location.reload() 列印javascript:window.print() 開啟視窗javascript:window.open() 關閉視窗javascript:window.close()滑鼠游標相關的動作
顯示游標所在位置的說明
利用title屬性,如老闆的家在狀態列顯示說明
利用onMouseOver與onMouseOut屬性,配合window物件模型如老闆的家滑鼠指標指到時的樣式
利用a標籤的擬class「a:hover」屬性,如a:hover{color:#ffffff; background-color:#0000ff}物件模型DOM
Window
屬性
由於windows物件是瀏覽器的最上層物件,因此再撰寫script可省略window描述方法
事件
使用技巧
設定文字欄位的輸入遮罩( input mask ) : 只能輸入數字
<script language="JavaScript" type="text/javascript"> <!--
function check_intkey(key){
if (key>=48 && key<=57) {
return true;
} else {
return false;
}
}
//--> </script>
<input type="text" name="birthday" onKeypress="return check_intkey(event.keyCode)" />
設定文字欄位的欄位驗證 : 只能輸入數字
<script language="JavaScript" type="text/javascript"> <!--
function fild_valid(obj){
var re = /^/d+$/;
if (obj.value!="" && !re.test(obj.value)) {
alert("您必須輸入數字喔");
obj.select();
return false;
} else {
return true;
}
}
//--> </script>
<input type="text" name="birthday" onBlur="fild_valid(this)" />
游標停留在文字欄位中文字的最後面
<script language="JavaScript" type="text/javascript"> <!--
function fild_center() {
var e = event.srcElement ;
var r = e.createTextRange() ;
r.moveStart('character',e.value.length) ;
r.collapse(true) ;
r.select() ;
}
//--> </script>
<input type="text" name="address" onClick="fild_center()" />
將文字欄位的東西拷貝至剪貼簿
<script language="JavaScript" type="text/javascript"> <!--
function addClipboard2(obj) {
var r = obj.createTextRange() ;
r.execCommand("Copy") ;
}
//--> </script>
<input type="text" id="address" onClick="addClipboard2(this)">
循序取出欄位的值
<script language="JavaScript" type="text/javascript"> <!--
for( var i = 1; i<= 40; i++ ) {
if ( typeof( eval( "document.tform.chk"+i ) ) == "undefined" ){
break;
}
if (eval("document.tform.chk"+i+".value")=="Y") {
.......................
}
}
//--> </script>
<select name="chk1" > <option value="Y">是</option> <option value="N">否</option> </select>
<select name="chk2" > <option value="Y">是</option> <option value="N">否</option> </select>
.........
...假設一頁最多有40個select,或可能不足40個
........
<select name="chk40" > <option value="Y">是</option> <option value="N">否</option> </select>
預防自動蒐集email名單的機器人
<script language="JavaScript" type="text/javascript"> <!--
function AntiSpam(Name, Domain) {
location.href = 'mailto:' + Name + '@' + Domain
}
//--> </script>
<a href="javascript:AntiSpam('peterju','pchome.com.tw');">聯絡作者</a>
- javascript的一些东西
- 关于javaScript的一些东西
- JavaScript常用的一些东西
- Javascript获取url里面的一些东西
- 对于javascript块的概念引申的一些东西
- caoz的一些东西
- Gtk2的一些东西
- 整理的一些东西
- 一些肤浅的东西
- 一些琐碎的东西
- 一些琐碎的东西
- 一些基本的东西
- NFS的一些东西
- 一些基础的东西
- 一些基础的东西
- 中国的一些东西
- 反射的一些东西
- 学到的一些东西
- spring-richclient开发swing应用程序 2
- spring-richclient开发swing应用程序 3
- spring-richclient开发swing应用程序 4
- 分布式计算----JAVA技术
- vbscript和javascript互相调用
- javascript的一些东西
- SQL Server 2005中的SQLCMD工具使用
- SharePoint Portal Server 2003 概述
- .Net配置文件常用配置说明
- 如何编程设置DataGrid的自定义列(windows窗体和ASP.NET)
- oracle访问方法效率比较
- 什么是 RSS
- .net 输出Excel的一点经验总结(转载)
- 网络游戏外挂制作