前端面試(一)

最近在考慮換個新的環境,所以先找了家公司面了下試試水,雖然不知道結果,但是把題目記錄下來當做一次學習經歷吧!

一、html語義化意義,作用,原因,理解:

1.使代碼結構更清晰,在沒有CSS的情況下也能呈現出代碼層次結構

2.方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁

3.提升搜索引擎優化(SEO)的效果

4.便於團隊開發和維護,語義化更具可讀性,代碼更好維護

參考https://blog.csdn.net/qq_34966814/article/details/82181007

二、html語義化標籤有哪些

<header>頭部區域,<nav>導航,<main>主要內容,<article>文章,<section>章節區域,<aside>與頁面內容無多大聯繫的部分,如側邊欄,友情鏈接,廣告等,<footer>頁腳部分,如附錄、索引、版權頁、許可協議等,<title>頁面主要內容,<progress>進度。

<canvas>,<video>,<audio>

參考https://www.cnblogs.com/it-Ren/p/10555177.html

https://www.runoob.com/html/html5-intro.html

三、input  type類型

text,password,color,time,date,email,number,submit,reset,radio,checkbox,image,file,hidden,range,week,month

https://www.w3school.com.cn/tags/tag_input.asp

四、css佈局模式

table佈局,float佈局,position佈局,flex佈局,css3多列布局

https://blog.csdn.net/zhang6223284/article/details/81909600

五、文本溢出

單行:

text-overflow: ellipsis;  // 文本超出顯示省略號

white-space: nowrap;  // 不換行

overflow: hidden;  //超出隱藏

多行:

 display: -webkit-box;             /*將對象轉爲彈性盒模型展示*/
    -webkit-box-orient: vertical;     /*設置彈性盒模型子元素的排列方式*/
    -webkit-line-clamp: 2;            /*限制文本行數*/
    overflow: hidden;                 /*超出隱藏*/

https://segmentfault.com/a/1190000013916143

六、transition 和animation

transition 只執行一次,當參數改變時觸發

animation重複執行,直接執行

http://www.fly63.com/article/detial/3245

七、僞類和僞元素的區別

僞元素主要是用來創建一些不存在原有dom結構樹種的元素,

僞類表示已存在的某個元素處於某種狀態,但是通過dom樹又無法表示這種狀態,就可以通過僞類來爲其添加樣式。

僞元素與僞類的根本區別在於:操作的對象元素是否存在於原來的dom結構裏。

https://www.cnblogs.com/xmbg/p/11608268.html

八、js數據類型

string,number,boolean,object,undefined,null,promise

判斷類型typeof

https://www.w3school.com.cn/js/js_datatypes.asp

https://blog.csdn.net/lareinalove/article/details/79895760

九、js數組和字符串相互轉換

 數組轉字符串: join()

字符串轉數組: split()

https://www.cnblogs.com/zhengyiqun1992/p/10683760.html

十、判斷字符串,數組中是否包含某元素

數組: indexOf/lastIndexOf  arr.indexOf()返回某個指定的字符串值在字符串中首次出現的位置,下標或-1。

            find() /findIndex(), find返回值或undefined,findIndex返回下標或-1

https://www.cnblogs.com/yunshangwuyou/p/9032560.html

字符串: indexOf();search();match()

https://www.cnblogs.com/ooo0/p/7741651.html

十一、for in, for of

for in得到對對象的key或數組,字符串的下標
for of和forEach一樣,是直接得到值,不支持對象

https://www.cnblogs.com/zjx304/p/10687017.html

十二、異步,同步,異步實現

JavaScript是一門單線程的語言,同個時間有多個任務的話,這些任務就需要進行排隊,前一個任務執行完,纔會執行下一個任務。 同步任務是指在主線程上排隊執行的任務,只有前一個任務執行完畢,才能繼續執行下一個任務。異步任務是指不進入主線程,而進入任務隊列的任務,只有任務隊列通知主線程,某個異步任務可以執行了,該任務纔會進入主線程,意思當我們打開網站時,像圖片的加載,音樂的加載,其實就是一個異步任務。

異步實現:回調函數callback,只有拿到明確回調再執行,

                  promise(.then),

                  setTimeout();

https://segmentfault.com/a/1190000017996968

https://www.cnblogs.com/Yellow-ice/p/10433423.html

十三、定時器

setTimeout,setInterval

  • setInterval() :按照指定的週期(以毫秒計)來調用函數或計算表達式。方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。
  • setTimeout() :在指定的毫秒數後調用函數或計算表達式,只執行一次,使用clearTimeout暫停。

十四、ts,js 區別

ts是js的超集;

ts增加了靜態類型、類、模塊、接口和類型註解方面的功能

ts需要靜態編譯,它提供了強類型與更多面向對象的內容易於大項目的開發

https://blog.csdn.net/qq_42451979/article/details/89642575

https://blog.csdn.net/qq_36145914/article/details/88993222

十五、var let const區別

1.var定義變量,沒有塊的概念,可以跨塊訪問,不能跨函數訪問,不初始化出現undefined,不會報錯,可以變量提升。

2.let定義變量,只能在塊作用域裏訪問,也不能跨函數訪問,對函數外部無影響,可以變量提升。

3.const定義常量,只能在塊作用域裏訪問,也不能跨函數訪問,使用時必須初始化(即必須賦值),而且不能修改,可以變量提升。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章