1. 程式人生 > >前端、資料庫、Django簡單的練習

前端、資料庫、Django簡單的練習

一、前端

1、前端頁面由哪幾層構成,分別是什麼,作用是什麼?

  分為:結構層(html),表示層(css),行為層(js)。

  結構層

  超文字標記語言。由HTML或XHTML之類的標記語言負責建立。標籤,也就是那些出現在括號裡的單詞,對網頁內容的語義做出了描述,但這些標籤不包含任何關於如何顯示有關內容的資訊。例如:p標籤表達了這樣一種語義:“這是一個文字段。”

  表示層

  層疊樣式表。由css負責建立。css對“如何顯示有關內容”的問題做出了回答。

  行為層

  客戶端指令碼語言。負責回答“內容應該如何對事件做出反應”這一問題。這是JavaScript語言和DOM主宰的領域。

2、html中總共有幾類標籤的?分別描述一下它們的不同?

  塊級標籤、內聯標籤、內聯塊狀標籤(img、input)。

  內聯標籤不能包含塊級標籤,塊級標籤能夠包含內聯標籤也能夠包含塊級標籤(除了p元素,p元素不能相互包含,但是p元素能夠包含其他元素。)

3、display:none和visibility:hidden的區別?

  a)display:none是徹底消失,不在文件流中佔位,瀏覽器不會解析該元素;visibility:hidden是視覺上消失了,在文件流中會佔位,瀏覽器會解析該元素。

  b)使用visibility:hidden比display:none效能上要好,display切換顯示時頁面會產生迴流(當頁面中的一部分元素需要改變規模尺寸、佈局、顯示隱藏等,頁面重新構建,此時就是迴流)而visibility切換顯示時則不會引起迴流。

4、input標籤都有哪些型別,input標籤都有哪些屬性?

  型別:button、checkbox、file、hidden、image、password、radio、reset、submit、text

  屬性:type、required、pattern(輸入內容必須完全匹配正則表示式)、placeholder(提示輸入)、disabled(禁用)、name、id、style。

5、闡述一下css定位有幾種?並分別描述它們的不同。

  relative(相對定位):相對定位的偏移參考元素是元素本身,不會使元素脫離文件流。元素的初始位置佔據的空間會被保留。相對定位元素常常作為絕對定位元素的父元素。並且定位元素經常與z-index屬性進行層次分級

  absolute(絕對定位):絕對定位元素以父輩元素中最近的定位元素為參考座標,如果絕對定位元素的父輩元素中沒有采用定位的,那麼此絕對定位元素的參考物件是html,元素會脫離文件流。就好像文件流中被刪除了一樣。並且定位元素經常與z-index屬性進行層次分級

  position:fixed(固定)位移的參考座標是可視視窗,使用fixed的元素脫離文件流。並且定位元素經常與z-index屬性進行層次分級

  position:static(靜態定位):預設值,元素框正常生成的,top left bottom right這幾個偏移屬性不會影響其靜態定位的正常顯示

6、js的基礎資料型別有哪些?Null和Undefined的區別?

  基礎資料型別:Undefined、Null、String、Number、Boolean引用型別有這幾種:object、Array、RegExp、Date、Function、特殊的基本包裝型別(String、Number、Boolean)以及單體內建物件(Global、Math)。

   Null和Undefined的區別:

  null表示“沒有物件”,即該處不該有值。典型用法: 

  (1) 作為函式的引數,表示該函式的引數不是物件。

  (2) 作為物件原型鏈的終點。

  undefined表示“缺少值”,就是此處應該有一個值,但是還沒有定義。典型用法是:

  (1)變數被聲明瞭,但沒有賦值時,就等於undefined。

  (2) 呼叫函式時,應該提供的引數沒有提供,該引數等於undefined。

  (3)物件沒有賦值的屬性,該屬性的值為undefined。

  (4)函式沒有返回值時,預設返回undefined。

7、列出jQuery常用的選擇器

  基本css選擇器:元素選擇器、類選擇器、ID選擇器。

  上下文選擇器:後代選擇器、兒子選擇器、兄弟選擇器、毗鄰選擇器

8、事件委託是什麼?

  事件委託是利用事件的冒泡原理來實現的,何為事件冒泡呢?就是事件從最深的節點開始,然後逐步向上傳播事件,舉個例子:頁面上有這麼一個節點樹,div>ul>li>a;比如給最裡面的a加一個click點選事件,那麼這個事件就會一層一層的往外執行,執行順序a>li>ul>div,有這樣一個機制,那麼我們給最外面的div加點選事件,那麼裡面的ul,li,a做點選事件的時候,都會冒泡到最外層的div上,所以都會觸發,這就是事件委託,委託它們父級代為執行事件。 

二、資料庫

1、資料庫的欄位型別有哪些?

  二進位制資料型別:Binary、Varbinary、Image

  字元資料型別:Char,Varchar、text

  Unicode資料型別:Nchar、Nvarchar、Ntext

  日期和時間資料型別:數字資料型別包括正數和負數、小數和整數

  smallint、int、bigint

2、說說你所知道的MySQL資料儲存引擎,InnoDB儲存引擎和MyISM儲存引擎的區別?

  MySQL中常用的幾種儲存引擎:MyISAM、InnoDB、bdb、MEMORY, 

  MyISAM儲存引擎:
  MyISAM 這種儲存引擎不支援事務,不支援行級鎖,只支援併發插入的表鎖,主要用於高負載的select。所以其寫入的併發處理能力相對較弱。
  MyISAM型別的資料表(.MYD檔案)支援三種不同的儲存結構:靜態型、動態型、壓縮型。
靜態型:就是定義的表列的大小是固定(即不含有:xblob、xtext、varchar等長度可變的資料型別),這樣mysql就會自動使用靜態myisam格式。
  使用靜態格式的表的效能比較高,因為在維護和訪問的時候以預定格式儲存資料時需要的開銷很低。但是這高效能是有空間換來的,因為在定義的時候是固定的,所以不管列中的值有多大,都會以最大值為準,佔據了整個空間。

  innoDB儲存引擎:

  同MyISAM一樣的是,InnoDB儲存引擎也有.frm檔案儲存表結構定義
  innodb儲存引擎該mysql表提供了事務,回滾以及系統崩潰修復能力和多版本併發控制的事務的安全。
  InnoDB有支援事務及安全的日誌檔案,這個檔案非常重要,InnoDB可以通過日誌檔案將資料庫崩潰時已經完成但還沒來得及將記憶體中已經修改但未完全寫入磁碟的資料寫入磁碟,也可以把已部分完成並寫入磁碟的未完成事務回滾,保證資料一致性。如果錯誤刪除日誌檔案會導致資料庫崩潰且無法啟動。
  innodb支援自增長列(auto_increment),自增長列的值不能為空,如果在使用的時候為空的話就會進行自動存現有的值開始增值,如果有但是比現在的還大,則就儲存這個值。
innodb儲存引擎支援外來鍵(foreign key) ,外來鍵所在的表稱為子表而所依賴的表稱為父表。

3、索引的本質是什麼?索引有什麼優點?缺點是什麼?

  索引(Index)是幫助MySQL高效獲取資料的資料結構

  優點:

  第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。
  第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。
  第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。
  第四,在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。
  第五,通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。
    缺點:

  第一,建立索引和維護索引要耗費時間,這種時間隨著資料量的增加而增加。
  第二,索引需要佔物理空間,除了資料表佔資料空間之外,每一個索引還要佔一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大。
  第三,當對錶中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。

4、char和varchar的區別,varchar(50)和char(50)分別代表什麼意思?

  char的長度是不可變的,而varchar的長度是可變的。

  char的存取數度還是要比varchar要快得多,因為其長度固定,方便程式的儲存與查詢;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多餘的空格佔位符佔據空間,可謂是以空間換取時間效率,而varchar是以空間效率為首位的。

5、簡述你對inner join、left join、right join的理解。

  inner join(內連線),在兩張表進行連線查詢時,只保留兩張表中完全匹配的結果集。

  left join(左連線),在兩張表進行連線查詢時,會返回左表所有的行,即使在右表中沒有匹配的記錄。

  right join(右連線),在兩張表進行連線查詢時,會返回右表所有的行,即使在左表中沒有匹配的記錄。

  full join(全連線),在兩張表進行連線查詢時,返回左表和右表中所有沒有匹配的行。