【JavaScript (二)】JavaScript基礎

【JavaScript錯誤】

當 JavaScript 引擎執行 JavaScript 代碼時,會發生各種錯誤。
可能是語法錯誤,通常是程序員造成的編碼錯誤或錯別字。
可能是拼寫錯誤或語言中缺少的功能(可能由于瀏覽器差異)。
可能是由于來自服務器或用戶的錯誤輸出而導致的錯誤。
當然,也可能是由于許多其他不可預知的因素。

JavaScript 拋出(throw)錯誤
當錯誤發生時,當事情出問題時,JavaScript 引擎通常會停止,并生成一個錯誤消息。
描述這種情況的技術術語是:JavaScript 將拋出一個錯誤。

JavaScript try 和 catch
try語句允許我們定義在執行時進行錯誤測試的代碼塊。
catch語句允許我們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。
JavaScript 語句trycatch是成對出現的。

Throw 語句
throw 語句允許我們創建自定義錯誤。
正確的技術術語是:創建或拋出異常(exception)。
如果把 throw 與 try 和 catch 一起使用,那么您能夠控制程序流,并生成自定義的錯誤消息。

【JavaScript調試】

在程序代碼中尋找錯誤叫做代碼調試。
調試很難,但幸運的是,很多瀏覽器都內置了調試工具。
內置的調試工具可以開始或關閉,嚴重的錯誤信息會發送給用戶。
有了調試工具,我們就可以設置斷點 (代碼停止執行的位置), 且可以在代碼執行時檢測變量。
瀏覽器啟用調試工具一般是按下 F12 鍵,并在調試菜單中選擇 "Console" 。

console.log() 方法

如果瀏覽器支持調試,你可以使用 console.log() 方法在調試窗口上打印 JavaScript 值。

設置斷點

在調試窗口中,你可以設置 JavaScript 代碼的斷點。
在每個斷點上,都會停止執行 JavaScript 代碼,以便于我們檢查 JavaScript 變量的值。
在檢查完畢后,可以重新執行代碼(如播放按鈕)。

debugger 關鍵字

debugger關鍵字用于停止執行 JavaScript,并調用調試函數。
這個關鍵字與在調試工具中設置斷點的效果是一樣的。

【JavaScript內置對象】
  1. 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> 標簽的效果
  1. Boolean 對象
    屬性:
    constructor 返回創建這個對象的布爾函數的一個引用。
    prototype 原型屬性允許您添加對象的屬性和方法。
    **************************************************
    toSource() 返回一個包含布爾對象來源的一個字符串
    toString() 根據對象的值來返回 “真” 或 “假”
    valueOf() 返回布爾對象的原始值
  2. 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() 返回數字對象的原始值
  3. 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()           將一個或多個元素添加到數組的前面,并返回新數組的長度。
  1. 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 日 到指定日期的毫秒數
  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()                    刷新
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,264評論 0 4
  • 你肯定還不知道如何閱讀一本書。 這么說你肯定不服氣。 那么,在平時的閱讀中,你除了記住小說中的情節,你記住了專業性...
    壹道課堂閱讀 244評論 0 0
  • 對林徽因一直有種疏離的親切。疏離的是她豐富多彩、甚至高傲的各種版本的正說和野史。親切的是她流傳于世的或莊重大...
    就是這個米老鼠閱讀 168評論 0 1