JavaScript 中的全部事物都是對象:字符串、數值、數組、函數等,並且JavaScript 容許自定義對象javascript
JavaScript 提供多個內建對象,好比 String、Date、Array 等等,對象只是帶有屬性和方法的特殊數據類型。css
Array 對象用於在變量中存儲多個值:var cars = ["Saab", "Volvo", "BMW"];html
Boolean 對象用於轉換一個不是 Boolean 類型的值轉換爲 Boolean 類型值 (true 或者false)java
Date 對象用於處理日期與實際。建立 Date 對象: new Date().web
以上四種方法一樣能夠建立 Date 對象:ajax
var d = new Date();正則表達式
var d = new Date(milliseconds);chrome
var d = new Date(dateString);編程
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);windows
Math 對象用於執行數學任務,Math 對象並不像 Date 和 String 那樣是對象的類,所以沒有構造函數 Math()。
Number 對象是原始數值的包裝對象,Number 建立方式 new Number()。
String 對象用於處理文本(字符串),String 對象建立方法: new String().
正則表達式是描述字符模式的對象,正則表達式用於對字符串模式匹配及檢索替換,是對字符串執行模式匹配的強大工具。
瀏覽器進行頁面渲染,負責把網頁內容(html,xml等)和消息(css)取出和整理,而javascript引擎執行js代碼,js引擎會影響頁面總體速度。
目前國內主流瀏覽器以下:
瀏覽器 | 內核 | javascript引擎 |
IE | Trident | 對W3C標準支持差,IE10開始支持ES6標準 |
chrome | 基於Webkit內核 | 支持ES6,內置V8,保持自升級 |
Safari | 基於Webkit內核 | 支持ES6 |
Firefox | Gecko內核 | OdinMonkey |
移動設備iOS和Android,Apple的Safari和Google的Chrome | 基於Webkit內核 | 支持ES6 |
不一樣瀏覽器對javascript支持有差別,如Aajax,file接口api等,在寫js時須要考慮瀏覽器兼容
js能夠獲取瀏覽器對象,包括windows、screen、location、document、history、navigator,對對象的屬性和方法進行訪問和設置,具體說明以下:
對象名 | 說明 | 示例 |
windows | 表示瀏覽器中打開的窗口,瀏覽器爲 HTML 文檔建立一個 window 對象,併爲每一個框架(<frame> 或 <iframe> 標籤)建立一個額外的 window 對象 | alert(window.location); |
screen | 客戶端顯示屏幕的信息 | alert(screen.width); |
location | 有關當前 URL 的信息,是 window 對象的一部分 | location.reload(); |
document | 表示當前頁面,是 Window 對象的一部分 | document.title = 'test'; |
history | 包含瀏覽器窗口中訪問過的 URL,是 window 對象的一部分 | history.back(); |
navigator | 包含有關瀏覽器的信息,瀏覽器名稱版本等 | alert(navigator.appName); |
dom全稱文檔對象模型,是基於瀏覽器編程的一套API接口,W3C出臺的推薦標準,當瀏覽器載入html後,會解析成一個dom樹,js能夠對dom節點進行增刪改查操做,動態修改瀏覽器頁面內容。
document 對象是HTML文檔的根節點與全部其餘節點(元素節點,文本節點,屬性節點, 註釋節點)。
以下html內容:
<html> <head> <meta charset="UTF-8"> <title>never-online'swebsite</title> </head> <body> <div>tutorialofDHTMLandjavascriptprogramming</div> </body> </html>
解析後的dom樹爲:
DOM是一個樹形結構,操做一個DOM節點首先須要獲取到一個節點,而後進行增(節點下新增一個子節點)、刪(從html刪除該節點)、改(更新該節點的html內容)、查(遍歷或定位該子節點)。
獲取一個節點,能夠經過id、class、tab名,如:
document.getElementById():根據id獲取,id惟一,因此獲取到惟一的一個DOM節點
document.getElementsByTagName():根據tab獲取,返回一組DOM節點。要精確地選擇DOM,能夠先定位父節點,再從父節點開始選擇,以縮小範圍
document.getElementsByClassName():根據class獲取,同上