【JavaScript錯誤】
當 JavaScript 引擎執行 JavaScript 代碼時,會發生各種錯誤。
可能是語法錯誤,通常是程序員造成的編碼錯誤或錯別字。
可能是拼寫錯誤或語言中缺少的功能(可能由于瀏覽器差異)。
可能是由于來自服務器或用戶的錯誤輸出而導致的錯誤。
當然,也可能是由于許多其他不可預知的因素。
JavaScript 拋出(throw)錯誤
當錯誤發生時,當事情出問題時,JavaScript 引擎通常會停止,并生成一個錯誤消息。
描述這種情況的技術術語是:JavaScript 將拋出一個錯誤。
JavaScript try 和 catch
try語句允許我們定義在執行時進行錯誤測試的代碼塊。
catch語句允許我們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。
JavaScript 語句try和catch是成對出現的。
Throw 語句
throw 語句允許我們創建自定義錯誤。
正確的技術術語是:創建或拋出異常(exception)。
如果把 throw 與 try 和 catch 一起使用,那么您能夠控制程序流,并生成自定義的錯誤消息。
【JavaScript調試】
在程序代碼中尋找錯誤叫做代碼調試。
調試很難,但幸運的是,很多瀏覽器都內置了調試工具。
內置的調試工具可以開始或關閉,嚴重的錯誤信息會發送給用戶。
有了調試工具,我們就可以設置斷點 (代碼停止執行的位置), 且可以在代碼執行時檢測變量。
瀏覽器啟用調試工具一般是按下 F12 鍵,并在調試菜單中選擇 "Console" 。
console.log() 方法
如果瀏覽器支持調試,你可以使用 console.log() 方法在調試窗口上打印 JavaScript 值。
設置斷點
在調試窗口中,你可以設置 JavaScript 代碼的斷點。
在每個斷點上,都會停止執行 JavaScript 代碼,以便于我們檢查 JavaScript 變量的值。
在檢查完畢后,可以重新執行代碼(如播放按鈕)。
debugger 關鍵字
debugger關鍵字用于停止執行 JavaScript,并調用調試函數。
這個關鍵字與在調試工具中設置斷點的效果是一樣的。
【JavaScript內置對象】
- String 對象
String 的屬性:
constructor 對創建該對象的函數的引用
length 字符串的長度
prototype 允許向對象添加屬性和方法
*****************************************************
charAt() 返回在指定位置的字符
charCodeAt() 返回在指定的位置的字符的 Unicode 編碼
concat() 連接字符串
indexOf() 檢索字符串
lastIndexOf() 從后向前檢索字符串
localeCompare() 用本地特定的順序來比較兩個字符串
match() 找到一個或多個正則表達式的匹配
replace() 替換與正則表達式匹配的子串
search() 檢索與正則表達式相匹配的值
slice() 提取字符串的片斷,并在新的字符串中返回被提取的部分
split() 把字符串分割為字符串數組
substr() 從起始索引號提取字符串中指定數目的字符
substring() 提取字符串中兩個指定的索引號之間的字符
toLocaleLowerCase() 把字符串轉換為小寫
toLocaleUpperCase() 把字符串轉換為大寫
toLowerCase() 把字符串轉換為小寫
toString() 返回字符串
toUpperCase() 把字符串轉換為大寫
valueOf() 返回某個字符串對象的原始值
***********************************************************
String的HTML基本類型包裝器:
author() 創建一個 HTML 錨作為一個超文本的目標
big() 創建一個字符串用大號字體顯示,就像使用 <big> 標簽的效果
blink() 創建一個字符串閃動顯示,就像使用 <blink> 標簽的效果
bold() 創建一個字符串加粗顯示,就像使用 <b> 標簽的效果
fixed() 創建一個字符串以打字機文本顯示,就像使用 <tt> 標簽的效果
fontcolor() 創建一個字符串使用指定的顏色顯示,就像使用 <font color="color"> 標簽的效果
fontsize() 創建一個字符串使用指定的尺寸顯示,就像使用 <font size="size"> 標簽的效果
italics() 創建一個字符串使用斜體顯示,就像使用 <i> 標簽的效果
link() 創建一個 HTML 超鏈接,用來請求另一個 URL
small() 創建一個字符串使用小字號顯示,就像使用 <small> 標簽的效果
strike() 創建一個字符串使用刪除線顯示,就像使用 <strike> 標簽的效果
sub() 創建一個字符串顯示為下標,就像使用 <sub> 標簽的效果
sup() 創建一個字符串顯示為上標,就像使用 <sup> 標簽的效果
- Boolean 對象
屬性:
constructor 返回創建這個對象的布爾函數的一個引用。
prototype 原型屬性允許您添加對象的屬性和方法。
**************************************************
toSource() 返回一個包含布爾對象來源的一個字符串
toString() 根據對象的值來返回 “真” 或 “假”
valueOf() 返回布爾對象的原始值 - Number 對象
屬性:
MAX_VALUE 最大的可能值在 JavaScript 中的數量可以有 1.7976931348623157E+308
MIN_VALUE 最小的可能值在 JavaScript 中的數量可以有 5E-324
NaN 等價于一個值不是一個數字。
NEGATIVE INFINITY 比 MIN-VALUE 小的值。
POSITIVE_INFINITY 比 MAX-VALUE 大的值。
prototype 數字對象的靜態屬性。使用原型對象的屬性來給當前文檔中的數字對象分配新的屬性和方法。
***************************************************
constructor() 返回創建此對象的實例的函數
toExponential() 將一個數字強制以指數表示法顯示
toFixed() 格式一個數為小數點右邊有特定位數的小數
toLocaleString() 返回當前數字的字符串值
toPrecision() 定義了總共由多少位來顯示一個數(包括小數點左邊和右邊的數)
toString() 返回數的值以字符串形式表示
valueOf() 返回數字對象的原始值 - Array 對象
Array 的屬性:
constructor 返回對創建該對象的函數的引用
index 從零開始檢索匹配的字符串
input 只見于通過正則表達式創建的數組
length 設置或返回數組中元素的數目
prototype 允許向對象添加屬性和方法
********************************************************
concat() 連接兩個或更多的數組,并返回結果
every() 對數組元素應用指定的函數進行判斷,當且僅當所有返回值為 true,返回 true,否則返回 false
filter() 創建一個新數組,數組中的元素是原數組中滿足過濾函數返回值為空的元素
forEach() 從頭到尾遍歷數組,為每個元素調用制定的函數
indexOf() 從頭到尾檢索,返回給定元素在數組中的索引
join() 把數組的所有元素放入一個字符串。元素通過制定的分隔符進行分割
lastIndexOf() 從尾到頭檢索,返回給定元素在數組中的索引
map() 創建一個新數組,用來存儲原數組中每個元素調用指定函數的返回值
pop() 刪除并返回數組的最后一個元素
push() 向數組的末尾添加一個或更多元素,并返回新的長度。
reduce() 同時對數組中的兩個值應用一個函數,使減少到一個單一值(從頭到尾)
reduceRight() 同時對數組中的兩個值應用一個函數,使減少到一個單一值(從尾到頭)
reverse() 顛倒數組中元素的順序
shift() 刪除并返回數組的第一個元素
slice() 從某個已有的數組返回選定的元素
some() 對數組元素應用指定的函數進行判斷,只有有一個返回值為 true,返回 true,否則返回
false。
toSource() 返回該對象的源代碼
sort() 將數組中的元素進行排序
splice() 在數組中插入或刪除元素
toString() 把數組轉換為字符串,并返回結果
unshift() 將一個或多個元素添加到數組的前面,并返回新數組的長度。
- Date 對象
Date 的屬性:
constructor 返回對創建該對象的函數的引用
prototype 允許向對象添加屬性和方法
******************************************************
Date() 構造函數有幾種不同的形式:
new Date() 不帶參數,Date() 構造函數創建一個日期對象,設置為當前日期和時間。
new Date(milliseconds) 例如,通過傳遞參數 5000 創建一個日期對象,代表 1/1/1970 午夜過去 5 秒鐘。
new Date(datestring) 傳遞一個字符串作為參數,它必須是一個日期形式的字符串,即可以被 Date.parse()
方法接收的格式。
new Date(year,month,date[,hour,minute,second,millisecond]) 方括號內的參數是可選的
***********************************************
Date() 返回當日的日期和時間
getDate() 根據本地時從Date對象返回一個月中的某一天(1 ~ 31)
getDay() 根據本地時從Date對象返回一周中的某一天(1 ~ 6)
getFullYear() 根據本地時從 Date 對象以四位數字返回年份
getHours() 根據本地時返回 Date 對象的小時 (0 ~ 23)
getMilliseconds() 根據本地時返回 Date 對象的毫秒(0 ~ 999)
getMinutes() 根據本地時返回 Date 對象的分鐘 (0 ~ 59)
getMonth() 根據本地時從Date對象返回月份(1 ~ 11)
getSeconds() 根據本地時返回 Date 對象的秒數 (0 ~ 59)
getTime() 根據本地時返回 1970 年 1 月 1 日至今的毫秒數
getTimezoneOffset() 返回本地時間與格林威治標準時間 (GMT) 的分鐘差
getUTCDate() 根據世界時從 Date 對象返回月中的一天 (1 ~ 31)
getUTCDay() 根據世界時從 Date 對象返回周中的一天 (0 ~ 6)
getUTCFullYear() 根據世界時從 Date 對象返回四位數的年份
getUTCHours() 根據世界時返回 Date 對象的小時 (0 ~ 23)
getUTCMilliseconds()根據世界時返回 Date 對象的毫秒(0 ~ 999)
getUTCMinutes() 根據世界時返回 Date 對象的分鐘 (0 ~ 59)
getUTCMonth() 根據世界時從 Date 對象返回月份 (0 ~ 11)
getUTCSeconds() 根據世界時返回 Date 對象的秒鐘 (0 ~ 59)
getYear() 棄用,返回在指定的日期根據當地時間。使用getFullYear()代替。
setDate() 根據本地時設置 Date 對象中月的某一天 (1 ~ 31)
setFullYear() 根據本地時設置 Date 對象中的年份(四位數字)
setHours() 根據本地時設置 Date 對象中的小時 (0 ~ 23)
setMilliseconds() 根據本地時設置 Date 對象中的毫秒 (0 ~ 999)
setMinutes() 根據本地時設置 Date 對象中的分鐘 (0 ~ 59)
setMonth() 根據本地時設置 Date 對象中月份 (0 ~ 11)
setSeconds() 根據本地時設置 Date 對象中的秒鐘 (0 ~ 59)
setTime() 根據本地時以毫秒設置 Date 對象
setUTCDate() 根據世界時設置 Date 對象中月份的一天 (1 ~ 31)
setUTCFullYear() 根據世界時設置 Date 對象中的年份(四位數字)
setUTCHours() 根據世界時設置 Date 對象中的小時 (0 ~ 23)
setUTCMilliseconds()根據世界時設置 Date 對象中的毫秒 (0 ~ 999)
setUTCMinutes() 根據世界時設置 Date 對象中的分鐘 (0 ~ 59)
setUTCMonth() 根據世界時設置 Date 對象中的月份 (0 ~ 11)
setUTCSeconds() 根據世界時設置 Date 對象中的秒鐘 (0 ~ 59)
setYear() 棄用,設置為指定的日期根據當地時間。使用 setFullYear() 代替。
toDateString() 把 Date 對象的日期部分轉換為字符串
toGMTString() 棄用,將日期轉換為一個字符串,使用互聯網格林尼治時間約定。使用 toUTCString() 代替。
toLocalDateString() 根據本地時間格式,把 Date 對象的日期部分轉換為字符串
toLocalFormat() 將日期轉換為一個字符串,使用格式化字符串。
toLocalString() 根據本地時間格式,把 Date 對象轉換為字符串
toLocalTimeString() 根據本地時間格式,把 Date 對象的時間部分轉換為字符串
toSource() 返回一個字符串代表一個等價的日期對象的源碼,您可以使用這個值來創建一個新的對象
toString() 把 Date 對象轉換為字符串
toTimeString() 把 Date 對象的時間部分轉換為字符串
toUCTString() 根據世界時,把 Date 對象轉換為字符串
valueOf() 返回 Date 對象的原始值
****************************************************
Date靜態方法:
Date.parse() 返回 1970 年 1 月 1 日午夜到指定日期(字符串)的毫秒數
Date.UTC() 根據世界時間返回 1970 年 1 月 1 日 到指定日期的毫秒數
-
Math 對象
Math 的各個屬性: Math.E 返回算術常量 e,即自然對數的底數(約等于 2.718) Math.LN2 返回 2 的自然對數(約等于 0.693) Math.LN10 返回 10 的自然對數(約等于 2.302) Math.LOG2E 返回以 2 為底的對數(約等于 1.414) Math.LOG10E 返回以 10 為底的對數(約等于 0.434) Math.PI 返回圓周率(約等于 3.14159) Math.SQRT1_2 返回 2 的平方根的倒數(約等于 0.707) Math.SQRT2 返回2的平方根(約等于 1.414) ****************************************************** abs() 返回數的絕對值 acos() 返回數的反余弦值 asin() 返回數的反正弦值 atan() 以介于 -PI/2 與 PI/2 弧度之間的數值來返回 x 的反正切值 atan2() 返回從 x 軸到點 (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間) ceil() 對數進行上舍入 cos() 返回數的余弦 exp() 返回 e 的指數 floor() 對數進行下舍入 log() 返回數的自然對數(底為e) max() 返回 x 和 y 中的最高值 min() 返回 x 和 y 中的最低值 pow() 返回 x 的 y 次冪 random() 返回 0~1 之間的隨機數 round() 把數四舍五入為最接近的整數 sin() 返回數的正弦 sqort() 返回數的平方根 tan() 返回角的正切 toSource() 返回該對象的源代碼
【BOM (瀏覽器)對象】
windows對象(BOM的核心)
alert(); 警告對話框
confirm(); 確認對話框
prompt(); 提示對話框
window.open("url", "頁面標題","頁面屬性"); 用于打開一個新頁面
頁面屬性有:width、height、scrollbars(是否有滾動條)、位置、resizable(是否可以改變大小)、
toolbar(是否有瀏覽器工具欄,包括后退及前進按鈕等)、menubar(是否有菜單欄)、location(是否有地址欄);
window.close(); 關閉頁面
window.confirm(); 彈出一個確認對話框
window.location="url"; 完成頁面的重定向操作
window.prompt(); 彈出一個提示對話框,附有一個文本框可用于輸入數據,并可返回輸入的值
window.print(); 打印當前的web頁面
window.opener 獲取父窗口的對象
window.onerror 處理異常
window.document
window.innerHeight 獲取瀏覽器內部的高度(不包含滾動條那一部分)
window.innerWidth 獲取瀏覽器內部的寬度(不包含工具欄)
History對象
window.History 對象包含瀏覽器的歷史(url)的集合
history.back() 與在瀏覽器點擊后退按鈕相同
history.forward() 與在瀏覽器中點擊前進按鈕相同
history.go() 進入歷史中的某個頁面
Location對象
window.Location 對象用于獲得當前頁面的地址(URL)并把瀏覽器重定向到新的頁面
location.hostname 返回web主機的域名
location.pathname 返回當前頁面的路徑和文件名
location.port 返回web主機的端口
location.portocol 返回所使用的web協議(http:// 或 https://)
location.href 返回當前頁面的URL
location.assign() 返回加載新的文檔
Screen對象包含有關用戶屏幕的信息
window.screen 對象包含有關用戶屏幕的信息
screen.availWidth 實際可用的屏幕寬度
screen.availHeight 實際可用的屏幕高度
screen.height 屏幕分辨率的高度
screen.width 屏幕分辨率的寬度
Navigator對象包含有關瀏覽器的信息,通常用于檢測瀏覽器與操作系統的版本
navigator.appCodeName 瀏覽器代碼名的字符串表示
navigator.appName 返回瀏覽器的名稱
navigator.appVersion 返回瀏覽器的平臺和版本信息
navigator.platform 返回運行瀏覽器的操作系統平臺
navigator.userAgent 返回由客戶機發送服務器的user-agent頭部信息
計時器
setTimeout(function,duration); 延時指定的毫秒數執行指定的代碼
clearTimeout(); 停止執行setTimeout()方法的函數代碼
setInterval(function, duration); 間隔指定的毫秒數不停地執行指定的代碼
clearInterval(); 停止執行setInterval()方法的函數代碼
【DOM (document) 對象】
屬性:
innerHTML 獲取或替換HTML元素的內容
該元素還可以獲取或改變任意HTML的元素
nodeName 規定節點的名稱
nodeValue 規定節點的值
nodeType 返回節點的類型
************************************************************************
getElementById();
getElementsByTagName(); 返回包含帶有指定標簽名稱的所有元素的節點列表(集合/節點數)
getElementsByClassName(); 返回包含帶有指定類名名稱的所有元素的節點列表
getAttribute(name); 返回指定的屬性值
setAttribute(name,value); 把指定屬性設置或修改為指定的值
appendChild(); 把新的子節點添加到指定節點
removeChild(); 刪除子節點
replaceChild(); 替換子節點
insertBefore(); 在指定的子節點前面插入新的子節點
createElement(); 創建元素節點
createAttribute(); 創建屬性節點
createTextNode(); 創建文本節點
write() 將內容寫進HTML文檔
focus() 獲得焦點
select() 將所有內容全部選擇
reload() 刷新