基於物件、由事件驅動的解釋性腳本語言。
#區分大寫小,這一點不同於HTML。
結尾的分號可有可無。
變數是弱型別的:變數在定義時統一採用var,型別在賦值時決定。
# 瀏覽器中都有一個用於頁面展示的線程,叫做UI線程,向伺服器提交以後,UI執行緒清空頁面,等待載入伺服器的回饋,如果等待時間過長,頁面將出現空白。
主要用在方法中,代表目前對象,也就是方法的直接呼叫者。
String、Number、Math 、Array、boolean、Date、Object、RegExp、null。
# 全域變數:在函數外宣告的變數為全域變量,在整個頁面範圍有效。為一個未宣告的變數賦值,該變數轉換為全域變數。
局部變數:在函數內部宣告的變數為局部變量,只在函數內部有效。
this:如果在函數內部宣告變數時採用this引用,則變數在函數外部可以透過物件引用。
常用方法:
length:取得字串的長度。
==:在JS中透過「==」對比兩個字串是否相等。
indexOf(subStr):指定字元第一次出現的索引值。
lastIndexOf(subStr):指定字元最後一次出現的索引值。
substr(begin[len]):從指定位置開始取得指定長度的字元。
substring(begin[end]):取得指定索引區間的字元。
replace(regExp,substr):以指定字元取代滿足格式的字元。
concat(str01...):連接多個字串,傳回一個新的字串。
split(delim[limit]):使用指定分隔符號分割字符,將分割結果以數組形式傳回,limit是分割次數,可選項。
# toFixed(n):保留n個小數。
# random():隨機傳回一個0-1的數字。
round(x):四捨五入。
max(x...):取得最大值。
min(x...):取得最小值。
# getTime():取得從1970-01-01至今的毫秒數。
getFullYear():取得此時的四位元年份。
getMonth():取得此時的月份。
getDate():取得此時所屬月份第幾天。
getDay():取得此時所屬星期的第幾天,範圍0-6。
getHours():取得此時的小時數。
getMinutes():取得此時的分鐘數。
getSeconds():取得此時的秒數。
# 建立:
##var reg=/xxxx/; var ret=new RegExp("");
常用方法:
test(str):判断字符串是否满足指定的格式。
不同与java语言,JS中的数组在创建时不需要指定长度与数据类型,可以存储多种类型数据。
var arr01=[数组中的值];//创建时赋值 var arr01=new Array(数组中的值);//创建时赋值 //先声明,后赋值 var arr01=new Array(); arr01[0]=1; arr01[1]=2; var arr01=new Array(6);//创建时指定数组长度
arr[0]:获取指定索引位置的元素,也可以为指定索引位置赋值。
arr.length:获取数组长度。
push(data):向数组尾部添加元素并返回操作完成后的数组长度。
unshift(data):向数组头部添加一个元素并返回数组长度。
pop():删除数组的最后一个元素并返回删除的元素。
shift():删除并返回数组的第一个元素。
for(index in arr):遍历数组,arr[index]获取数组中的元素。
sort(function(a,b){return a-b;}):如果数组中存储的是字符,不需要指定函数,按照字母升序排序;如果数组中存储的是数字,需要设定排序函数,a-b升序排列,b-a降序排列。
reverse():反转排序。
join(connector):使用指定的连接符将数组连接成字符串,未指定连接符时默认采用","作为连接符。
toString():等效于join(),将数组转化为一个由","连接的字符串。
slice(begin,end):获取指定索引范围的元素,包含begin,不包含end。
splice(begin,howmany,newValue...):从指定索引位置(包含该位置)开始删除howwmany个元素,插入新的元素。
concat(anotherArr...):将参数数组的元素依次追加到该数组中并返回一个新的数组,原数组不变。
//第一种方式,对象的声明与实例化一体 var obj={name:"张三",age:20,myFunction:function(){}}; //第二种方式,将函数当做构造方法 function person(name,age){ this.name=name; this.age=age; this.myfunction=function(){ alert(this.name); } } var tom=new function("tom",20); //第三种方式 person=function(){ this.name=name; this.age=age; this.myfunction:function(){ } } var tom=new function("tom",20);
將fn02賦值給fn01,fn01擁有與fn02完全相同的內容。
使用者描述物件的特徵,實例化物件。
常用屬性:
#href="#":跳到頁面開頭。
title作為元素的文字直接顯示,元素無法直接顯示文字時,當滑鼠停留在上方時會顯示為提示訊息。
# 瀏覽器視窗對象,是一個全域對象,是所有物件的頂級對象,引用屬性或函數時可以省略。
# document:一個代表視窗中全部HTML元素的物件。
closed:boolean類型,用於判斷目前視窗是否已關閉。
location:取得目前頁面的URL;存取指定的資源,該資源可以是HTML,也可以是Servlet或其他伺服器資源,在當前頁面中開啟。 location=url與location.href=url功能相同。
history:表示目前視窗瀏覽記錄的物件。在形成了瀏覽記錄的前提下,可以跳到前後頁面,history.go(-1)跳到上一個頁面,history.go(1)跳到下一個頁面。
parent:表示包含目前視窗的父視窗。
opener:表示開啟目前視窗的父窗口,常用語父子視窗通訊。
# alert(content):跳出警告對話框。
confirm(content):彈出一個確認對話框,回傳確認結果,true或false。
prompt:提示對話框,用於使用者輸入,回傳輸入結果。
setTimeout():計時執行。
setInterval():週期性執行。
open():在新視窗中載入指定的URL。
close():關閉目前視窗。
parseInt():將字元創轉換為int數字。
eval:將普通字串解析成JS程式碼。
typeof:傳回資料的型別。
isNaN:判斷資料是否為數字。
Document Object Model是一種操作文檔的技術,將文件視為按樹形分層結果排列的對象,document是代表該文件的對象。
文件中的標籤節點。
子節點:元素節點、文字節點、註解節點,不包含屬性節點。
document.createElement(tagName):根據標記名建立元素,作為參數的標記不帶<>。
# document.all.id:根據id取得物件。
formId.tagId:透過id取得表單下的元素,也可以透過"formName.tagName"的方式取得表單下的元素。
document.getElementById(id):根據id取得物件。
document.getElementsByName(name):根據name取得對象,因為可能存在多個物件name相同,所以取得的物件是複數。
document.getElementsByTagName(tagName):通过标签名称获取对象。
document.location:同document.location.href作用相同,用于访问指定资源,该资源可以是HTML,也可以是Servlet以及其他服务器资源,不能获取当前页面的URL。
document.write(content):向页面输出。
在JS中调用函数不必像在java中那样必须为每一个形参赋值,只需为需要的形参赋值即可,其他形参位可以空着。每一个函数都有其对应的作用范围,不同作用范围的函数定义在不同的节点上。
javascript:void(0):保留超链接样式,只执行js代码,不进行页面跳转。
动态地向元素添加函数有两种方式:
使用JS获取对象以后,通过对象调用函数不包含括号),将自定义的函数function赋给该函数
obj.action=function(){};
$(selector).action(function(){});
两种方式不能混用,即不能这样使用:$(selector).action=function(){}。
java输出代码块与EL表达式都可以插入JavaScript代码中,插入时将其视作字符串处理,包裹在单引号或者双引号中,如:
alert("<%=name%>"); alert("${name}");
動作引發的行為稱作事件,可以為一個事件新增多個函數,多個函數依照新增順序依序執行。不同的元素對應的事件不同。
# onclick:滑鼠點選時觸發。
onchange:下拉列錶框的選項發生改變時觸發。
onblur:失去焦點時觸發。
onfocus:獲得焦點時觸發。
onmouseover:滑鼠移到元素上時觸發。
onmousemove:滑鼠在元素上移動時觸發。
onmouseout:滑鼠離開元素時觸發。
onselect:在選取文字網域時觸發。
## 單擊submit按鈕,提交表單。
執行document.forms["formName"].submit()程式碼,透過程式碼提交表單。
父子視窗通訊指的是視窗向開啟該視窗的視窗傳遞訊息,即由子視窗向父視窗傳遞訊息,而由父視窗向子視窗傳遞訊息可以透過QueryString完成。
子視窗向父視窗傳遞訊息的關鍵是在子視窗中取得父視窗對象,透過window.opener取得父視窗對象,然後可以像在父視窗中一樣操作了。
## table.rows:包含表格中所有行的陣列對象,table.rows.length取得長度,即行數。
insertRow(index):在指定位置插入一行,不指定位置,在結尾插入。
deleteRow(index):刪除指定位置的行,不指定位置,刪除最後一行。
#rowIndex:取得索引位置,即行號。
insertCell(index):在指定位置插入列,不指定在,在最後插入。
deleteCell(index):刪除指定位置的列,不指定位置,刪除最後一列。
以上是JavaScript用法分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!