某公司筆試前端專業題目

用過的js框架,談談其優點。
jQuery
1、jQuery實現腳本與頁面的分離
在HTML代碼中,我們還經常看到類似這樣的代碼:

<form id="myform" onsubmit=return validate();> 

即使validate()函數可以被放置在一個外部文件中,實際上我們依然是把頁面與邏輯和事件混雜在一起。jQuery讓你可以將這兩部分分離。藉助於jQuery,頁面代碼將如下所示:
<form id="myform">接下來,一個單獨的JS文件將包含以下事件提交代碼:
代碼如下:

$("myform").submit(function(){ 
...your code here 
)} 

這樣我們可以實現靈活性非常強的清晰頁面代碼。jQuery讓JavaScript代碼從HTML頁面代碼中分離出來,就像數年前CSS讓樣式代碼與頁面代碼分離開一樣。
2、最少的代碼做最多的事情
最少的代碼做最多的事情,這是jQuery的口號,而且名副其實。使用它的高級selector,開發者只需編寫幾行代碼就能實現令人驚奇的效果。開發者無需過於擔憂瀏覽器差異,它除了還完全支持Ajax,而且擁有許多提高開發者編程效率的其它抽象概念。jQuery把JavaScript帶到了一個更高的層次。以下是一個非常簡單的示例:
代碼如下:

$("p.neat").addClass("ohmy").show("slow"); 

通過以上簡短的代碼,開發者可以遍歷“neat”類中所有的

元素,然後向其增加“ohmy”類,同時以動畫效果緩緩顯示每一個段落。開發者無需檢查客戶端瀏覽器類型,無需編寫循環代碼,無需編寫複雜的動畫函數,僅僅通過一行代碼就能實現上述效果。
3、性能
在大型JavaScript框架中,jQuery對性能的理解最好。儘管不同版本擁有衆多新功能,其最精簡版本只有18KB大小,這個數字已經很難再減少。jQuery的每一個版本都有重大性能提高。本篇文章講的是jQuery未經過任何優化的原始速度。如果將其與新一代具有更快 JavaScript引擎的瀏覽器(如火狐3和谷歌Chrome)配合使用,開發者在創建富體驗Web應用時將擁有全新速度優勢。
4、它是一個“標準”
之所以使用引號,是以爲jQuery並非一個官方標準。但是業內對jQuery的支持已經非常廣泛。谷歌不但自己使用它,還提供給用戶使用。另外戴爾、新聞聚合網站Digg、WordPress、Mozilla和許多其它廠商也在使用它。微軟甚至將它整合到Visual Studio中。如此多的重量級廠商支持該框架,用戶大可以對其未來放心,大膽的對其投入時間。
5、插件
基於jQuery開發的插件目前已經有大約數千個。開發者可使用插件來進行表單確認、圖表種類、字段提示、動畫、進度條等任務。jQuery社區已經成長爲一個生態系統。這一點進一步證明了上一條理由,它是一個安全的選擇。而且,jQuery正在主動與“競爭對手”合作,例如Prototype。它們似乎在推進JavaScript的整體發展,而不僅僅是在圖謀一己之私。
6、節省開發者學習時間
當然要想真正學習jQuery,開發者還是需要投入一點時間,尤其是如果你要編寫大量代碼或自主插件的話,更是如此。但是,開發者可以採取“各個擊破”的方式,而且jQuery提供了大量示例代碼,入門是一件非常容易的事情。我建議開發者在自己編寫某類代碼前,首先看一下是否有類似插件,然後看一下實際的插件代碼,瞭解一下其工作原理。簡而言之,學習jQuery不需要開發者投入太多,就能夠迅速開始開發工作,然後逐漸提高技巧。
7、讓JavaScript編程變得有趣

bootstrap:應用視覺效果一致性. 這個其實是很很難的,你希望你的鏈接、按鈕、提醒都有統一的視覺效果,你可以爲不同級別的提醒使用不同的顏色
  通過多個瀏覽器測試. 市面上主流的瀏覽器支持都沒問題
  完整的框架解決方案. 這是一個框架,你只需使用它而無需重新制作,這個框架專爲 Web 應用設計,所有的元素都可以非常完美的在一起工作,可快速開發。
  
jQuery EasyUI 框架幫助我們輕鬆建立站點:
easyui是一個基於jquery的集成了各種用戶界面的插件。
使用easyui你不需要寫太多javascript代碼,一般情況下你只需要使用一些html標記來定義用戶接口。
easyui非常簡單,但是功能非常強大。
jQuery EasyUI

  優點:輕量,組件較爲豐富,效果還可以,版本已經趨於穩定,官方有專人維護與技術支持。
  
this對象的理解
在JavaScript中this變量是一個令人難以摸清的關鍵字,this可謂是非常強大,充分了解this的相關知識有助於我們在編寫面向對象的JavaScript程序時能夠遊刃有餘。

  1. 一般用處
    對於this變量最要的是能夠理清this所引用的對象到底是哪一個,也許很多資料上都有自己的解釋,但有些概念講的偏繁雜。而我的理解是:首先分析this所在的函數是當做哪個對象的方法調用的,則該對象就是this所引用的對象。
  2. this.x 與 apply()、call()
    通過call和apply可以重新定義函數的執行環境,即this的指向,這對於一些應用當中是十分常用的。
    以上可以歸納爲:“this所指的就是直至包含this指針的上層對象”。
    更具體的描述如下:
    調用形式 this指向
    普通函數 全局對象window
    對象的方法 該對象
    構造函數 新構造的對象

情況一:純粹的函數調用

這是函數的最通常用法,屬於全局性調用,因此this就代表全局對象Global。
情況二:作爲對象方法的調用

函數還可以作爲某個對象的方法調用,這時this就指這個上級對象。
情況三 作爲構造函數調用

所謂構造函數,就是通過這個函數生成一個新對象(object)。這時,this就指這個新對象。
情況四 apply調用

apply()是函數對象的一個方法,它的作用是改變函數的調用對象,它的第一個參數就表示改變後的調用這個函數的對象。因此,this指的就是這第一個參數。

CSS選擇符,可繼承的屬性,優先算法如何計算。

* id選擇器( # myid)
* 類選擇器(.myclassname)
* 標籤選擇器(div, h1, p)
* 相鄰選擇器(h1 + p)
* 子選擇器(ul > li)
* 後代選擇器(li a)
* 通配符選擇器( * )
* 屬性選擇器(a[rel = "external"])
* 僞類選擇器(a: hover, li: nth - child)

可繼承的樣式: font-size font-family color, UL LI DL DD DT ;
不可繼承的樣式:border padding margin width height ;
CSS優先級:是由四個級別和各級別的出現次數決定的。
四個級別分別爲:行內選擇符、ID選擇符、類別選擇符、元素選擇符。

優先級的算法:
每個規則對應一個初始”四位數”:0、0、0、0
若是 行內選擇符,則加1、0、0、0
若是 ID選擇符,則加0、1、0、0
若是 類選擇符/屬性選擇符/僞類選擇符,則分別加0、0、1、0
若是 元素選擇符/僞元素選擇符,則分別加0、0、0、1
算法:將每條規則中,選擇符對應的數相加後得到的”四位數“,從左到右進行比較,大的優先級越高。

需注意的是:
①、!important的優先級是最高的,但出現衝突時則需比較”四位數“;
②、優先級相同時,則採用就近原則;
③、繼承得來的屬性,其優先級最低;
寫js方法。設計一個Animal的類,擁有一個color屬性,一個walk函數表示可以行走。

var Animal=function(c){
        this.color=c;
        this.walk=function(){
            alert("i am walk");
        }
    }
    var dog=new Animal("red");
    console.log(dog.color);
    dog.walk();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章