0.web前端需要學(xué)習(xí)的知識(shí):
(ps,?
html5,
css3,
javascript核心,
DOM編程,
UI交互設(shè)計(jì),
HTTP協(xié)議爬坑,
服務(wù)端,
Ajax,
JQury涂臣,
BootStrap
)
1.json = ?javascript object notation.
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
2.
浮點(diǎn)型數(shù)據(jù)使用注意事項(xiàng)
JavaScript?中的所有數(shù)據(jù)都是以?64?位浮點(diǎn)型數(shù)據(jù)(float)?來存儲(chǔ)盾计。
所有的編程語言,包括?JavaScript赁遗,對(duì)浮點(diǎn)型數(shù)據(jù)的精確度都很難確定:
下午?5:19:54
lustre?2016/8/23?星期二?下午?5:19:54
Undefined?不是?Null
在?JavaScript?中,?null?用于對(duì)象,?undefined?用于變量署辉,屬性和方法。
對(duì)象只有被定義才有可能為?null岩四,否則為?undefined哭尝。
如果我們想測(cè)試對(duì)象是否存在,在對(duì)象還沒定義時(shí)將會(huì)拋出一個(gè)錯(cuò)誤剖煌。
錯(cuò)誤的使用方式:
下午?5:30:47
lustre?2016/8/23?星期二?下午?5:30:47
JSON?是用于存儲(chǔ)和傳輸數(shù)據(jù)的格式材鹦。
JSON?通常用于服務(wù)端向網(wǎng)頁傳遞數(shù)據(jù)?。
3.var obj = JSON.parse(text);
4.函數(shù)描述
JSON.parse()用于將一個(gè) JSON 字符串轉(zhuǎn)換為 JavaScript 對(duì)象耕姊。
JSON.stringify()用于將 JavaScript 值轉(zhuǎn)換為 JSON 字符串桶唐。
5.HTML 載入外部 JavaScript 文件
使用簡潔的格式載入 JavaScript 文件 ( type 屬性不是必須的):
6。以上函數(shù)不屬于任何對(duì)象茉兰。但是在 JavaScript 中它始終是默認(rèn)的全局對(duì)象尤泽。
在 HTML 中默認(rèn)的全局對(duì)象是 HTML 頁面本身,所以函數(shù)是屬于 HTML 頁面。
在瀏覽器中的頁面對(duì)象是瀏覽器窗口(window 對(duì)象)坯约。以上函數(shù)會(huì)自動(dòng)變?yōu)?window 對(duì)象的函數(shù)熊咽。
myFunction() 和 window.myFunction() 是一樣的:
7。
局部變量計(jì)數(shù)闹丐。
計(jì)數(shù)!
0
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
function myFunction(){
document.getElementById("demo").innerHTML = add();
}
8.查找 HTML 元素
通常网棍,通過 JavaScript,您需要操作 HTML 元素妇智。
為了做到這件事情,您必須首先找到該元素氏身。有三種方法來做這件事:
通過 id 找到 HTML 元素
通過標(biāo)簽名找到 HTML 元素
通過類名找到 HTML 元素
9.document.getElementById(id).attribute=新屬性值
10.
JavaScriptHTML DOM
通過 HTML DOM巍棱,可訪問 JavaScript HTML 文檔的所有元素。
HTML DOM (文檔對(duì)象模型)
當(dāng)網(wǎng)頁被加載時(shí)蛋欣,瀏覽器會(huì)創(chuàng)建頁面的文檔對(duì)象模型(Document Object Model)航徙。
HTML DOM模型被構(gòu)造為對(duì)象的樹:
11.<h1 onclick="this.innerHTML='oppps!'">click me</h1>
注意,this代表的是<h1>
Ooops!
12.方法要賦值一下陷虎。
this.changeName=changeName;
function changeName(name){
this.lastname=name;
}
13.JavaScript 是面向?qū)ο蟮恼Z言到踏,但 JavaScript 不使用類。
在 JavaScript 中尚猿,不會(huì)創(chuàng)建類窝稿,也不會(huì)通過類來創(chuàng)建對(duì)象(就像在其他面向?qū)ο蟮恼Z言中那樣)。
JavaScript 基于 prototype凿掂,而不是基于類的伴榔。
14.所有 JavaScript 數(shù)字均為 64 位
JavaScript 不是類型語言。與許多其他編程語言不同庄萎,JavaScript 不定義不同類型的數(shù)字踪少,比如整數(shù)、短糠涛、長援奢、浮點(diǎn)等等。
在JavaScript中忍捡,數(shù)字不分為整數(shù)類型和浮點(diǎn)型類型集漾,所有的數(shù)字都是由 浮點(diǎn)型類型。JavaScript采用IEEE754標(biāo)準(zhǔn)定義的64位浮點(diǎn)格式表示數(shù)字锉罐,它能表示最大值為±1.7976931348623157 x 10308帆竹,最小值為±5 x 10 -324
15.RegExp:是正則表達(dá)式(regular expression)的簡寫。
16.瀏覽器對(duì)象模型 (BOM) 使 JavaScript 有能力與瀏覽器"對(duì)話"脓规。
browser object model
由于現(xiàn)代瀏覽器已經(jīng)(幾乎)實(shí)現(xiàn)了 JavaScript 交互性方面的相同方法和屬性栽连,因此常被認(rèn)為是 BOM 的方法和屬性。
17.Window 對(duì)象
所有瀏覽器都支持 window 對(duì)象。它表示瀏覽器窗口秒紧。
所有 JavaScript 全局對(duì)象绢陌、函數(shù)以及變量均自動(dòng)成為 window 對(duì)象的成員。
全局變量是 window 對(duì)象的屬性熔恢。
全局函數(shù)是 window 對(duì)象的方法脐湾。
甚至 HTML DOM 的 document 也是 window 對(duì)象的屬性之一:
window.document.getElementById("header");
與此相同:
document.getElementById("header");
18.Window 尺寸
有三種方法能夠確定瀏覽器窗口的尺寸(瀏覽器的視口,不包括工具欄和滾動(dòng)條)叙淌。
對(duì)于Internet Explorer秤掌、Chrome、Firefox鹰霍、Opera 以及 Safari:
window.innerHeight - 瀏覽器窗口的內(nèi)部高度
window.innerWidth - 瀏覽器窗口的內(nèi)部寬度
對(duì)于 Internet Explorer 8闻鉴、7、6茂洒、5:
document.documentElement.clientHeight
document.documentElement.clientWidth
或者
document.body.clientHeight
document.body.clientWidth
實(shí)用的 JavaScript 方案(涵蓋所有瀏覽器):
實(shí)例<這個(gè)十分好,涵蓋所有瀏覽器>
var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
var h=window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
19.Window History
window.history對(duì)象在編寫時(shí)可不使用 window 這個(gè)前綴督勺。
為了保護(hù)用戶隱私渠羞,對(duì) JavaScript 訪問該對(duì)象的方法做出了限制渗蟹。
一些方法:
history.back() - 與在瀏覽器點(diǎn)擊后退按鈕相同
history.forward() - 與在瀏覽器中點(diǎn)擊按鈕向前相同
20.JavaScriptWindow Navigator
window.navigator 對(duì)象包含有關(guān)訪問者瀏覽器的信息糟需。
Window Navigator
window.navigator對(duì)象在編寫時(shí)可不使用 window 這個(gè)前綴屉佳。
21.JavaScript彈窗
可以在 JavaScript 中創(chuàng)建三種消息框:警告框、確認(rèn)框洲押、提示框武花。
22.JavaScript計(jì)時(shí)事件
通過使用 JavaScript,我們有能力作到在一個(gè)設(shè)定的時(shí)間間隔之后來執(zhí)行代碼杈帐,而不是在函數(shù)被調(diào)用后立即執(zhí)行体箕。我們稱之為計(jì)時(shí)事件专钉。
在 JavaScritp 中使用計(jì)時(shí)事件是很容易的,兩個(gè)關(guān)鍵方法是:
setInterval() - 間隔指定的毫秒數(shù)不停地執(zhí)行指定的代碼累铅。
setTimeout() - 暫停指定的毫秒數(shù)后執(zhí)行指定的代碼
Note:setInterval() 和 setTimeout() 是 HTML DOM Window對(duì)象的兩個(gè)方法跃须。
23.每隔一段時(shí)間彈窗。
setInterval(function(){alert("hello")}, 3000);
24.JavaScript Cookies
Cookies 用于存儲(chǔ) web 頁面的用戶信息娃兽。
什么是 Cookies菇民?
Cookies 是一些數(shù)據(jù), 存儲(chǔ)于你電腦上的文本文件中。
當(dāng) web 服務(wù)器向?yàn)g覽器發(fā)送 web 頁面時(shí)投储,在連接關(guān)閉后第练,服務(wù)端不會(huì)記錄用戶的信息。
Cookies 的作用就是用于解決 "如何記錄客戶端的用戶信息":
當(dāng)用戶訪問 web 頁面時(shí)玛荞,他的名字可以記錄在 cookie 中复旬。
在用戶下一次訪問該頁面時(shí),可以在 cookie 中讀取用戶訪問記錄冲泥。
Cookies 以名/值對(duì)形式存儲(chǔ),如下所示:
username=John Doe ?// john:廁所 ?doe:母鹿
當(dāng)瀏覽器從服務(wù)器上請(qǐng)求 web 頁面時(shí)壁涎, 屬于該頁面的 cookies 會(huì)被添加到該請(qǐng)求中凡恍。服務(wù)端通過這種方式來獲取用戶的信息。
使用 JavaScript 創(chuàng)建Cookie
JavaScript 可以使用document.cookie屬性來創(chuàng)建 怔球、讀取嚼酝、及刪除 cookies。
JavaScript 中竟坛,創(chuàng)建 cookie 如下所示:
25.使用 JavaScript 刪除 Cookie
刪除 cookie 非常簡單闽巩。您只需要設(shè)置 expires 參數(shù)為以前的時(shí)間即可,如下所示担汤,設(shè)置為 Thu, 01 Jan 1970 00:00:00 GMT:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
注意涎跨,當(dāng)您刪除時(shí)不必指定 cookie 的值。
26.獲取 cookie 值的函數(shù)
然后崭歧,我們創(chuàng)建一個(gè)函數(shù)用戶返回指定 cookie 的值:
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}
函數(shù)解析:
cookie 名的參數(shù)為 cname隅很。
創(chuàng)建一個(gè)文本變量用于檢索指定 cookie :cname + "="。
使用分號(hào)來分割 document.cookie 字符串率碾,并將分割后的字符串?dāng)?shù)組賦值給 ca (ca = document.cookie.split(';'))叔营。
循環(huán) ca 數(shù)組 (i=0;i
如果找到 cookie(c.indexOf(name) == 0),返回 cookie 的值 (c.substring(name.length,c.length)所宰。
如果沒有找到 cookie, 返回 ""绒尊。
27.檢測(cè) cookie 值的函數(shù)
最后,我們可以創(chuàng)建一個(gè)檢測(cè) cookie 是否創(chuàng)建的函數(shù)仔粥。
如果設(shè)置了 cookie婴谱,將顯示一個(gè)問候信息。
如果沒有設(shè)置 cookie,將會(huì)顯示一個(gè)彈窗用于詢問訪問者的名字勘究,并調(diào)用 setCookie 函數(shù)將訪問者的名字存儲(chǔ) 365 天:
function checkCookie()
{
var username=getCookie("username");
if (username!="")
{
alert("Welcome again " + username);
}
else
{
username = prompt("Please enter your name:","");
if (username!="" && username!=null)
{
setCookie("username",username,365);
}
}
}
28.
JavaScript 庫 - jQuery矮湘、Prototype、MooTools口糕。
29.JavaScript 框架(庫)
JavaScript 高級(jí)程序設(shè)計(jì)(特別是對(duì)瀏覽器差異的復(fù)雜處理)缅阳,通常很困難也很耗時(shí)。
為了應(yīng)對(duì)這些調(diào)整景描,許多的JavaScript (helper)庫應(yīng)運(yùn)而生十办。
這些 JavaScript 庫常被稱為JavaScript 框架。
在本教程中超棺,我們將了解到一些廣受歡迎的 JavaScript 框架:
jQuery
Prototype
MooTools
所有這些框架都提供針對(duì)常見 JavaScript 任務(wù)的函數(shù)向族,包括動(dòng)畫、DOM 操作以及 Ajax 處理棠绘。
在本教程中件相,您將學(xué)習(xí)到如何開始使用它們,來使得 JavaScript 編程更容易氧苍、更安全且更有樂趣夜矗。