作為一名web開發人員,日常用的最多的就是js,也就是大名鼎鼎的ECMAScript,又稱javascript。再次聲明js與java除了文法上相似,沒有半毛錢關系。據說之是以叫javascript,是因為過去網景公司花了十天時間開發曆史上的第一版js,但當時沒有名氣,故借用java之名在該script字首上加上一個java,以提升其知名度。具體的曆史或老皇曆,百度或者相關官網一大堆,這裡不再贅述。
作為一名前背景都攻的軟體工程師,雖說平時js足以解決常見的問題和共性問題,但發現總會有這樣那樣的小錯誤,有的時候,就是那麼一個小錯誤,調試了3~4小時,浪費了很多時間,最後解決了,卻發覺分分鐘可以解決的問題,我居然花了這麼長時間,覺得太對不起有限的光陰。是以決定好好系統學習下javascript。在我看來,為該書做序的人,說的一句話,挺對的,js上手是非常容易的,要麼跟着w3scholl一遍遍敲,記得當初我學習js的時候就是這樣,又或者參考廖雪峰的js教程,他們的教程很容易讓你熟悉并了解js。
下面是網站:
w3school: http://www.w3school.com.cn/js/index.asp
廖雪峰教程:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000
不過如果是小白建議還是從w3school入手吧,當然在此也可以看看廖雪峰。我個人是從w3school一遍遍敲,一遍遍運作,一遍遍找部落格了解和熟悉。但是部落格畢竟是零散的,不夠系統。視訊了,我個人學習視訊一大堆,有好哥們分享的,也有朋友給的。說到視訊,如果你是完全的小白,建議可以先看視訊再實戰,因為視訊可以讓你了解熟悉,等到有了基本的熟悉,去除了一些陌生感,就是實戰吧!
或許有人問,我為什麼不看視訊學習呢?
第一,我個人有相關經驗,可以看懂js和使用js解決項目問題;
第二,作為一名工程師,平時忙于工作,沒有很多時間去看視訊,視訊的時間太長了;
第三,在我看來視訊适合小白,完全不懂的,但是作為有相關實戰經驗的人,沒多大必要,當然有些進階相關的視訊還是不錯的;
第四,書相對于視訊,系統全面,而且,上下班地鐵差不多的兩個小時,我可以通過手機閱讀,至少可以讀完一章,這樣時間也就充分的利用了;
說到js,至今我仍覺得它是一個非常神秘又好用的玩意,它可以做出酷炫的效果,也可以讓我前後端分離開發,同時作為一名Java程式員,它的文法對我而言太容易懂了。當然,還是那句話,入手容易,深入難。如今我要打破這個瓶頸。
下面進行系統的講解:
1.JavaScript由三部分組成
(1)核心(ECMASCRIPT),又稱ECMA262,是js的核心;
ECMA由以下部分組成:
a.文法
b.類型
c.關鍵字
d.語句
e.保留字
f.操作符
g.對象
(2)浏覽器對象模型;
常用的window,location,screen等,
我用的比較多的,還是window和location
window常用的方法
alert()警示框 常用于提示資訊
confirm()确認框 通常用于是否删除這樣的或是否啟用等
propt()輸入框 這個用的不多
setInterval()每隔多長時間加載 ,可以調用多次, ajax輪詢可以使用它,不過太消耗伺服器資源,應用的通常是資料定時更新
setTimeout()每隔多長時間加載 ,一般隻加載一次
location.href用的比較多 前後端分離時,不過通過form送出的形式,直接通過window.location.href進入另外一個界面
location.reload用的也比較多
當然浏覽器對象除了上述說的,還有navicator,不過這個我也沒用過,開發一段時間,從未用過,看字面意思,似乎有導航的作用
(3)文檔對象模型;
文檔對象,簡單的說對節點進行增,删,改,查。
增加的話,比如周遊資料後,将html元素,通過append方法追加到某個ID選擇器或者類選擇器中
删除的話,節點删除,比如,上級公司下級部門這樣的
修改的話,replace方法替換
查的話,find或push之類的方法
這是我個人開發用的比較多的
2.html頁面如何寫js
html寫js有三種方式:
(1)外部js 通過<script src="test.js"></script>引入html中,進而可調用該js檔案中所有函數,我個人建議,非常強烈建議開發,不論是初學者還是半路出家的,多寫外部js少寫内部js或者直接在<body></body>中嵌入js,因為這種寫法一點都不好,至少我這麼認為,寫外部js可以将公共部分js抽取複用,而且友善管理修改規範;
運作示例:
test.html
<html>
<head>
<script src="test.js"></script>
</head>
<body>
</body>
</html>
test.js
alert("hello js")
(2)内部js 在<head></head>中嵌入<script></script>
<html>
<head>
<script>
alert("hello js")
</script>
</head>
<body>
</body>
</html>
(3)<body></body>内嵌入js
<html>
<head>
</head>
<body>
<script>
alert("hello js")
</script>
</body>
</html>
(1)還是那句話,建議使用,(2)的話,慎用,因為到時對web進行優化時,<head></head>内嵌入大量的js将會導緻浏覽器加載網頁速度變慢,不利于web性能優化
另外js檔案放頭部和尾部的效果是不一樣的,因為頭部優先加載,頭部通常放置css外部檔案,尾部放置js,因為浏覽器優先加載頭部,由頭到尾,由于css優先加載,這樣渲染效果也會很快,如果是js檔案放置頭部的話,會導緻css渲染效果變慢進而導緻影響使用者體驗