① 作為前端,我怎麼那麼煩寫代碼!頭疼
前端寫代碼是經常的事情了,你這是工作哈,工作我們是認真的。呵呵噠。
作為一個程序員,尤其是前段,做的多了,其實也會發現做的東西就那麼點,對吧,沒有什麼難度。可能就是自己所做的有點枯燥吧,多做點有意思的設計會好點。
② Web前端應該學習的css代碼編寫策略
今天小編要跟大家分享的文章是關於Web前端應該學習的css代碼編寫策略。本篇文章的目的不在於規則手冊,而在於你正在編寫CSS時的指南。希望能幫助大家找到自己的流程,而這篇文章的目標是讓你的CSS一致,簡單,易於使用。下面我們就一起看一看css代碼編寫策略吧!
1、不要寫不需要的樣式定義
例如:編寫display:block;時要注意,因為很多元素默認有這個樣式。
另一個例子是在元素上定義字體大小,它將繼承你正在定義的正文字體大小。
目標是雙重的:
§減少CSS文件的長度,以便瀏覽。
§明確你的CSS類需要做什麼,而不是定義一堆已經產生的垃圾。
這里有一個常見問題是CSS沒有清理干凈,此時,為了簡潔起見,可以完全刪除。
2、將CSS看做可重用組件
不要將CSS元素視為每個單獨頁面上的特定表單或元素,如果你可以定義可重用的CSS實用程序和組件以供自己使用,則可以減少很多復雜性。
編寫旨在重用的類的作用:
§確保你的設計在不同的頁面之間保持一致。當你在很多頁面上共享CSS類時,你知道當你改變這個類時,它會在每一個出現的頁面發生改變。
§
這使得編寫CSS真的很快。首先,如果大多數樣式被定義為你所知道的實用程序和類,那麼你就不必花費大量時間刷新和重新創建應用程序中已存在的樣式。
3、在CSS中定義實用工具來干你的CSS
我們將』utilities』定義為一個CSS類,實際上它只用來做一件特定的事情,而不是封裝整個元素。
你會看到這個策略經常用於流行的CSS框架,如Bootstrap和Foundation。
在這些流行的框架中你所看到的一些例子是:
.hide{display:none;}.text-center{text-align:center;}
例如,使用.hide,就不必每次想要在頁面上隱藏元素時就得編寫一個新的類——你只需要在你的元素上加上.hide類,它會使元素display:
one;。
我們寫了一些實用程序文件,這些文件在應用程序之間共享,使用一些常用的實用程序可以減少為每個元素編寫特定樣式的需求。
一個很好的例子是我們如何使用margin和padding實用程序。下面是padding實用程序的一個簡單例子:
.padding-0{padding:0;}.padding-xxs{padding:5px;}.padding-xs{
padding:10px;}.padding-sm{padding:20px;}.padding-md{padding:30px;
}.padding-lg{padding:40px;}.padding-xl{padding:50px;}.padding-xxl{
padding:60px;}
通過結合使用這些工具,我們可以與我們間距的像素數保持一致,並且可以快速標記頁面,而不必編寫非常多的CSS。
實用程序背後的理念是,你認為你可能會不止一次地使用它們。如果它是一次性樣式,或者如果你認為組合樣式會經常使用,那麼可能它作為CSS類將可以更好地工作。
4、除非絕對需要,否則避免嵌套
假設有一些復選框的表單。在這個特定的情況下,你需要復選框內聯(並排)。
所以你試圖像這樣寫樣式:
.user-formlia{color:red;}
然後在這過程中,你意識到你需要列表元素中的一個鏈接實際上是黑色的。所以你試圖為黑色的鏈接編寫一個工具類:
.link--black{color:black;}
此處.link_black鏈接將被CSS特殊性所覆蓋,並且將無法壓倒.my-formlia樣式。
現在你可能想要確保列表元素中的所有錨標記是紅色的,但是你不知道未來的元素會怎麼樣以及可能會對設計做出什麼樣的更改。
你可能會問,「好的親,那麼你怎麼解決上面的問題呢?」
通過上面的例子,你應該明白錨標簽的顏色應該是一個遠離默認鏈接顏色的變體。
所以,在這種情況下,我會100%確定一個額外的工具類來處理紅色鏈接。下面是實踐中可能的處理例子:
a{
color:blue;
&:hover{color:black;
}
}
.link--red{color:red;}
然後將其添加到HTML中的每個li元素。
我在這里作出的假設是:某一天,此紅色的鏈接將在應用程序的其他地方被使用。我不想把它嵌入到用戶表單中,因為那樣我就不得不在未來編寫另外一個樣式來說明需要紅色鏈接的情況。
另外,因為我將自己的懸停定義在自己的錨點上,所以紅色鏈接將會變成黑色懸停,而不必定義任何其他樣式。
5、利用BEM防止嵌套
能夠真正防止過度嵌套的一個策略是名為BEM(BlockElementModifier)的命名策略。
使用BEM的一個很好的例子就是當你有一個真正具體的樣式的組件時,如果使用實用程序會太麻煩和復雜的話。
這個例子看起來像這樣:
//HTMLsnippet
③ Web前端工程師該如何寫出高質量的JavaScript代碼
今天小編要跟大家分享的文章是關於Web前端工程師該如何寫出高質量的JavaScript代碼。很多正在從事web前端工作的小夥伴們都想知道怎樣寫出高質量的JavaScript。因為想寫好一個JavaScript確實並不是一份簡單的事情,所以我們來聊聊零基礎要寫好JavaScript代碼的一些細節。關注好這些細節,你也能寫出高質量的JavaScript代碼了。
所謂的高質量的JavaScript代碼,其實指的就是可維護性高,可讀性高,可拓展性高的代碼,不僅開發的過程中寫得舒服,而且後期維護也很輕松的代碼質量。讓我們一起從細節來把握我們的JavaScript質量。一、可維護性高的代碼在我們開發過程中,當出現bug的時候,我們立刻去修復,這時候解決代碼bug的思路是最清晰的。否則,你去做了別的代碼任務或者這個bug出現了一段時間,你再去處理,你就忘了你寫的思路是什麼了,那這時候去處理這些代碼你就需要想兩個問題了:
1.花時間去學習和理解這個代碼問題
2.花時間了解bug的解決方案
同時,你如果是在企業中做的大型項目,都是團隊開發,開發和維護可能都不是同一個人(發現bug和修復bug的都不是作者)。
所以,必須降低大量的理解代碼的時間,無論是你自己寫的代碼,還是團隊中其他人的代碼。
這關繫到整個項目的發展和開發團隊每個人的生活幸福啊,畢竟我們應該多花時間去研究更多好的代碼想法,而不是時間都浪費在維護遺留代碼裡面。
所以,可維護性高的代碼很重要,一般可維護性高的代碼都有以下這些原則:
1._可讀性高(例如好的命名,解析性強的注釋)
2._一致性強(命名風格,編碼風格,代碼規范)
3._可預測性(明顯看出運行效果)
4._風格統一(看上去就知道是不是同一個人寫完的)
5._有記錄(有清晰的注釋開發記錄)二、全局變數的問題什麼是全局變數的問題,就是在你的javascript程序和網頁中的所有代碼都共享這些變數,他們都住在同一個命名空間裡面(全局作用域),所以當程序在執行過程中兩個不同部分定義同名但不同作用的全局變數的時候,命名沖突的情況就很常見了(許多小白遇到了就抓不著頭腦了:咦,這個命名沒問題啊,為什麼報錯了?)。
而且,網頁裡麵包含有其他不是開發作者寫的代碼而產生的全局命名問題也是比較常見的。比如說:
1.第三方javascript庫
2.甲方(或開發團隊自己封裝的代碼)的腳步代碼
3.第三方用戶跟蹤或分析代碼
4.不同類型的UI組件
.....
這些帶來的情況就很常見了,比如說,第三方腳本定義了一個變數,叫做userId,接著,你的函數裡面也寫了個userId的全局變數。這個時候的結果就是,後面的覆蓋掉前面的變數,第三方腳本直接就無效了,這種情況是很難調試出來的。
所以,盡可能的少使用全局變數很重要,例如命名空間模式或者函數立即執行,不過要想讓全局變數減少,最重要的還是多用var來聲明變數。三、忘記var的副作用隱式全局變數和顯式定義的全局變數是有點差異的。
具體如下:
·___ü_ar創建的全局變數(任何函數之外的程序中創建)是不能被刪除的。
·___揮型ü_ar創建的隱式全局變數(無視是否在函數中創建)是能被刪除的。
所以隱式全局變數並不是真正的全局變數,但它們是全局對象的屬性。
屬性是可以通過delete操作符刪除的,而變數是不能的,具體的代碼我這里就不說了。四、訪問全局對象在瀏覽器中,全局對象可以通過window屬性在代碼任何地方訪問(除非說你做了一些很超乎想像的事情,比如說聲明了一個名為window的局部變數)。
但是在其他環境下,這個方便的屬性可能被叫做其他什麼東西(甚至在程序中不可用)。
如果你需要在沒有硬編碼的window標識符下訪問全局對象,你可以在任何層級的函數作用域中做如下操作:
五、for循環在使用for循環的時候,可以遍歷拿到數組或者數組類似對象的值,比如說arguments和HTMLCollection對象,一般我們的寫法都是這樣的:
這種循環的方式並不是很好,每次執行循環的時候都需要獲取一次數組的長度,這個時候我們代碼的執行效率就特別低了,特別是當myArray不是數組的時候,而是一個HTMLCollection對象的時候。六、不擴展內置原型
擴增構造函數的prototype屬性是個很強大的增加功能的方法,但有時候它太強大了。
增加內置的構造函數原型(如Object(),Array(),或Function())挺誘人的,但是這嚴重降低了可維護性,因為它讓你的代碼變得難以預測。
使用你代碼的其他開發人員很可能更期望使用內置的JavaScript方法來持續不斷地工作,而不是你另加的方法。
另外,屬性添加到原型中,可能會導致不使用hasOwnProperty屬性時在循環中顯示出來,這會造成混亂。七、避免隱式類型轉換JavaScript的變數在比較的時候會隱式類型轉換。
這就是為什麼一些諸如:false==0或「」==0返回的結果是true。
為避免引起混亂的隱含類型轉換,在你比較值和表達式類型的時候始終使用===和!==操作符。
八、編碼規范建立和遵循編碼規范是很重要的,這讓你的代碼保持一致性,一目瞭然,更易於閱讀和理解。
一個新的開發者加入這個團隊可以通讀規范,能馬上理解其它團隊成員書寫的代碼,更快上手進行開發。九、縮進代碼開發,標準的縮進是最基本的,沒有縮進的代碼基本就不能讀了。唯一糟糕的事情就是不一致的縮進,因為它看上去像是遵循了規范,但是可能一路上伴隨著混亂和驚奇。重要的是規范地使用縮進。十、注釋注釋這個,其實是應該只要是寫了代碼,都要有注釋的,讓別人一看你的代碼就能快速理解你的代碼。
在平時我們開發的時候,你很花時間去研究一個程序怎麼實現,你會很清楚的知道這個代碼是幹嘛用的。但是,你一周之後回來再看這段代碼,你就會燒掉很多腦細胞了。
當然,注釋也不能走極端路線:有的人就說不是要理解沒一段代碼嗎,那每個單獨變數或是單獨一行就給一段注釋。這樣就很沒有意義了。
一般來說,注釋都是記錄在函數的部分,它們的參數和返回值,或是一些不尋常的技術和方法。通過注釋可以給你代碼的未來閱讀者以諸多提示;
閱讀你代碼的人需要的是(不要讀太多的東西)注釋和函數名來理解你的代碼意義。十一、花括弧{}花括弧(也稱大括弧,下同)應該多使用,即使在它們為可選的時候。技術上來說,在in或是for中如果執行語句僅一條時,花括弧是不需要寫也能執行理想效果的,但是你最好還是用花括弧,因為這會讓你的代碼更有持續性和易於更新,並且更加好理解。
以上就是小編今天為大家分享的關於Web前端工程師該如何寫出高質量的JavaScript代碼的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助。想要了解更多web前端相關知識記得關注北大青鳥web培訓官網。最後祝願小夥伴們工作順利,成為一名優秀的web前端工程師。
④ 如何寫高質量的JS,Html5前端代碼
何編寫高質量的HTML代碼,西安HTML5培訓開發小編告訴你,web
前端開發是從網頁製作演變而來的,在名稱上有很明顯的時代特徵。
網頁製作是
Web1.0時代的產物,網站內容主要是靜態的,用戶使用網站的行為也以瀏覽為主。
2005年進入
Web2.0時代,網頁不再只承載單一的文字和圖片,網頁上軟體化的交互形式為用戶提供了更好的使用體驗,這些都是基於前端技術實現的。
以前會 PS 和 Dreamweaver
就可以進行開發,而現在的網頁製作更接近傳統的網站後台開發,所以現在叫做 Web
前端開發。
Web 前端開發人員
主要職責:把網站的界面更好的呈現給用戶
之前包括新浪,搜狐,BAT
等各種規模公司都對自己的網站進行了重構,因為如下兩點原因。
1.根據 W3C
標准結構重構之後,可以讓前端代碼組織更有序,顯著改善網站的性能,還可以提高可維護性,對搜索引擎也更友好;
2.重構後的網站能帶來更好的用戶體驗,重構之後的網站,文件更小,下載速度更快
而我們的 DHTML 讓用戶操作更炫,Ajax
可以實現無刷新的數據交換,操作更流暢,這也給我們現在的前端開發帶來了新的體驗。
第一章:從網站重構說起
Web 標准 ---------
結構,樣式和行為的分離
而我們現在前端開發的現狀
而我們在混亂的瀏覽器環境下,我們依舊要去打造高品質前端代碼,提高代碼的可維護性,想要做到提高品質我們可以從以下三點出發。
而具體如何去做到 HTML
代碼的精簡,提高重用,做到有序,我們會在之後的代碼中一一給大家解釋。
第二章:團隊合作
首先我們先來揭秘一下,什麼是前端開發工程師?
2.1 CSS 布局是前端開發工程師的基本功
2.2 對 JS 使用有要求
不僅僅會原生 JS,還要會使用 JS 類庫和
Ajax
⑤ web前端怎麼寫好代碼
web前端開發需要掌握的技術:
1、
學習html,這個是最簡單的,也是最基礎的。要熟練掌握div、form table、ul
li、p、span、font這些標簽,這些都是最常用的,特別是div和table,div用於布局、table也可以用於布局,但是不靈活,基本
table是用來和數據打交道。
2、學習css,這里說的css不包括css3,一般我們看到web前端開發工程師的要求裡面,有一個會使
用css+html或者css+div來進行界面布局,所以css是用於輔助html來布局和展示的,我們稱之為「css樣式」,為什麼會說
css+div呢?因為我上面說了div就是html主要用於布局的東西,所以div就是核心掌握的東西!那麼css肯定必須要配合div來使用才好。
css要熟練掌握float、position、width、height,以及對於的最大最小、會使用百分百、overflow、margin、
padding等等,這些都是跟布局 有關系的樣式,一點要掌握。
3、學習js。
可能前兩個大家覺得還過的去,看到js就蛋疼了,其實吧,js入門很簡單的,不需要會很多東西的,只要會根據某個id、或者name拿到網頁dom或者樣
式、或者值,然後會給某個id或者name的元素標簽賦值、或者追加數據、追html,這個是跟數據有關系的操作,然後數據邏輯判斷,效果方面的,無非就
是跳轉、彈框、隱藏什麼的,把這些全部結合其他就是實際用途了,代碼一點都不難,會了這些基礎js,其他的直接網路就好了。然後看多了,用多了,就什麼都
不是問題了。
4、學習jquery。jquery是相當於把js封裝了一套的一個js插件,目的就是操作起來更方便,代碼寫的更少,jquery入門也很簡單,那些是入門需要學的和js一樣,只是換成了jq的代碼。其他的一樣網路就夠了。
5、
最好會點後台語言,比如java、php,為什麼呢?因為我們前台界面的數據都是從後台來的,如果會點後台代碼,就知道怎麼跟後台交互數據是最好的,
這樣節約時間,也可以讓前端代碼更規范。不然可能因為你的寫法和後端給來的數據不能結合上,那麼前端代碼又得重新寫,那就更蛋疼了。
6、學
習css3+html5,為什麼這個放最後呢?哈哈,因為我自己也不太會,畢竟術業有專攻嘛,雖然這個很流行,但是我是搞後端的,在工作中用不到
它,只有在自己網站需要改樣式,或者朋友網站樣式出問題的時候,我才會去臨時去研究下。但是如果你們是准備專門搞前端,那麼最好還是學一下的。
上
面6點,基本是一個搞web前端開發工程師需要掌握的技術,然後我也盡量的把自己的一點點經驗告訴了大家,但是大家不要以為上面6點就只有我說的那麼容
易,不,他們之所以被人使用,之所以這么火,就是因為強大!我說的這么簡單僅僅是打消你們覺得很難的原因,萬事開頭難,我講的都是入門的方法和技巧以及需
要知道的東西。另外告訴大家一個秘密,不要以為代碼很難敲,現在什麼語言都有自動提示代碼的功能,只需要輸入一個字元,兩個字元,後面的代碼都會彈出來讓
你選擇!還怕啥呢?所以你也不要怕你英語不好了。
⑥ 編程中的代碼能看懂。。但是讓自己寫卻寫不出來。應該怎麼辦 要有效果的方法
多敲!!!多敲!!!多敲!!!
基本上每一個初學者都會遇到這樣的問題,包括我之前也是一樣,導致的原因就是自己不喜歡動手,就算自己有了思路,卻不知道從何下手;因為在你的腦海中一直對這些題目都是存在於數學上面的操作,真的要使用代碼去實現的時候你腦子就會一篇空白
一個代碼寫多了的人,不管你的需求再難,他也能寫出一個基本的框架出來,也不至於無從下手,因為代碼寫多了的人都會總結出一套規律,開發都是這一個套路
《2020最新Java基礎精講視頻教程和學習路線!》
就跟你建房子一樣,基本的框架搭建完畢之後,只需要慢慢砌磚就行了
抄代碼雖然是程序員的日常,但是初學者非常不建議去抄代碼,抄的代碼只會讓你越抄越亂,從而使自己的思維就依賴在了網路上,自己一點思維都沒有,那有如何去提升自己呢
代碼一定要有自己的思路,然後再把自己的思路轉為代碼實現,這才是學習Java的正確方式
原文鏈接:網頁鏈接
⑦ 前端剛入行寫代碼寫不出來有必要辭職嗎
堅持半年,適應半年,若還學不會代碼,就得辭職了,因為該工作不適合你。
⑧ 我做前端開發,但是javascript總是搞不懂,也不會寫出什麼效果,邏輯和大腦空空,覺定轉行!
我覺得吧你首先要確定自己是否真的努力了,是否有好好學習javascript、jquery、css、html了,如果你努力了,和高手探討一下自己的努力方向是否走偏,如果就是覺得不適合,就是不愛做,那好吧,放手吧。
如果沒有努力,沒有好好學學javascript,那麼好好學一下,可以先學一下jquery,很簡單,可以立即讓你對javascript感到驚艷,美輪美奐。
我也是做前端的,我很喜歡前端的工作,我們這邊也有後端的同事轉過來了,他已經做到了項目經理級別,後端做長了就會感覺,前面一律,模式已經固化了,做前端每天你可以看到嶄新的東西,每天都有有趣的東西出現。
推薦你基本書吧,javascript權威指南(第六版),javascript高級程序設計,javascript語言精粹,javascript設計模式,javascript經典實例。
可以先看jquery方面的書,推薦兩本jquery語言基礎,鋒利的jquery。
希望對你有用
⑨ 學Web前端半年了,只會寫一些簡單的代碼,像那種完整的代碼功能還是寫不出來,沒有頭緒,怎麼辦
你的學習方向找到了沒有? html+css+javascript! 掌握了這三項技能就可以寫出完整的靜態頁面,下面介紹一下幾大等級,你修煉道了那個程度?
一.【入門】
能夠解決一些問題的水平。有一定的基礎(比如最常見的html標簽及其屬性、事件、方法;最常見的css屬性;基礎的javascript編程能力),能夠完成一些簡單的web前端研發需求。
二.【登堂】
能夠正確地解決問題。不管你是通過搜索網路,或者通過改造某些成品代碼(jquery/dojo/ext/yui)案例,只要能夠無錯地完成需求。
三.【入室】
最強代碼,知道所有能夠解決需求的各種方案,能夠選擇使用最優秀的方案滿足需求。這個級別基本上產品開發編程中的代碼主力。給出的一招一式,招招都是絕招。
四.【入微】
最強解決方案。你能夠走在需求的前面,將當前需求里有的、沒有直接提出來的、現在暫時沒有但將來可能有的等等,及前端編程潛規則等各個方方面面都綜合考慮,給出最優方案。以一招勝萬招。
五.【化蝶】
破繭重生,這個層次關注的是編程語言本身,而不再關心產品需求。什麼是繭?產品需求就是繭。當你一招勝萬招,打遍天下需求之時,你如果還拘泥於需求開發,那就是你限於繭中而不自知。要麼就在這個繭里默默地老去,要麼就破開繭獲得新生。
六.【大俠】
這里所說的大俠,不是大家互相吹捧的」大俠」,而是實至名歸的高手。這個級別的人完全有能力寫出不差於bindows/jquery/ext/yui/dojo的同等級別規模的前端開發框架。應用成熟的開發框架指導、解決問題。
七.【宗師】
這個級別的人已然到了無招勝有招的境界。項目開發中的難題?沒有難題!運行平台的差異?從根本上搞定!代碼規范、開發模式,早已經被拋在身後。這個級別的人已經不再關注於某個前端開發框架,而是應對具體的環境給出最佳的理論指導。
八.【飛升】
其實嚴格來說,飛升已經不是原領域的范圍了。在web研發領域,對於這個層次的有一個很好聽的稱謂:架構師。當然那些」偽架構師」另當別論。
一通則百通。在其它的技術領域,也可以按照《入門》《登堂》《入室》《入微》《化蝶》《大俠》《宗師》來劃分等級。
⑩ 我現在在學網站前端的編寫,可看人家寫的總是看不懂,該怎麼辦呢
display:none 是隱藏元素
display:block 是把元素設置成塊元素
什麼是塊元素 比如 div h1 h2 ... h6 p 等等 默認都會佔用 一整行的元素
像 <span > <a> 等等這種元素就不是 塊元素 因為不會佔用一整行。
display:block 這句話的意思 是設置成塊元素 同時 如果元素隱藏(none) 那麼會顯示元素
如果你要去系統的入門 div+css js 這些前端的編程 網路講師 李彥灰的視頻教程不錯 你可以網路搜索一下