10.14 百麗集團面試經歷

一面

1. 自我介紹

2. jQuery的選擇器

jQuery的選擇器與css中的選擇器很相似,通過使用css中的選擇器來選取HTML節點
1. #id     
用法: $("#myDiv");    返回值  單個元素的組成的集合
說明: 這個就是直接選擇html中的id="myDiv"

2. Element 
用法: $("div")     返回值  集合元素
說明: element的英文翻譯過來是”元素”,所以element其實就是html已經定義的標籤元素,例如div, 
input, a等等.

3. class          
用法: $(".myClass")      返回值  集合元素
說明: 這個標籤是直接選擇html代碼中class="myClass"的元素或元素組(因爲在同一html頁面中
class是可以存在多個同樣值的)

4. *          
用法: $("*")      返回值  集合元素
說明: 匹配所有元素,多用於結合上下文來搜索

5. selector1, selector2, selectorN      
用法: $("div,span,p.myClass")    返回值  集合元素
說明: 將每一個選擇器匹配到的元素合併後一起返回.你可以指定任意多個選擇器, 並將匹配到的元素合
併到一個結果內。其中p.myClass是表示匹配元素
p class="myClass"
其次可以使用屬性選擇器,例如input中的name,type屬性等
 1、[attribute]
用法: $("div[id]") ;  返回值  集合元素
說明: 匹配包含給定屬性的元素。例子中是選取了所有帶”id”屬性的div標籤。

2、[attribute=value]
用法: $("input[name='newsletter']").attr("checked", true);    返回值  集合元素
說明: 匹配給定的屬性是某個特定值的元素.例子中選取了所有 name 屬性是 newsletter 的 input 元素。

3、[attribute!=value]
用法: $("div[title!='test']").css("background","yellow");   返回值  集合元素

說明: 匹配所有不含有指定的屬性,或者屬性不等於特定值的元素。
此選擇器等價於:not此選擇器等價於:not([attr=value]),要匹配含有特定屬性但不等於特定值的元素,請使用[attr]:not([attr=value])。之前看到的:not 派上了用場。

4、[attribute^=value]
用法: $(”input[name^=‘news’]“)  返回值  集合元素 
說明: 匹配給定的屬性是以某些值開始的元素.,我們又見到了這幾個類似於正則匹配的符號。

5、[attribute$=value]
用法: $("input[name$='letter']")  返回值  集合元素 
說明: 匹配給定的屬性是以某些值結尾的元素。

6、[attribute*=value]
用法: $("input[name*='man']")   返回值  集合元素
說明: 匹配給定的屬性是以包含某些值的元素。

7、[attributeFilter1][attributeFilter2][attributeFilterN]
用法: $("input[id][name$='man']")  返回值  集合元素
說明: 複合屬性選擇器,需要同時滿足多個條件時使用.又是一個組合,這種情況我們實際使用的時候很常用.這個例子中選擇的是所有含有 id 屬性,並且它的 name 屬性是以 man 結尾的元素。
其他具體可以查看JQuery_九大選擇器

3. 如何尋找子元素a的父元素中帶class="abc"的兄弟節點

 <div>
    <div class="abc">
        <div>
            <div class="abc">
                <div>
                    <a href="#">點擊我!!!</a>
                </div>
            </div>
            <div class="abcs"></div>
            <div class="abcs"></div>
        </div>
    </div>
    <div class="abcs"></div>
    <div class="abcs"></div>
</div>
我的想法是首先尋找a標籤的全部祖先元素$("a").parents(),然後找到其中class="abc"的元素$("a").parents().filter(".abc"),最後再找到這些節點的兄弟節點即可$("a").parents().filter(".abc").siblings()
圖片描述

4. 寫一個簡單的jQuery插件(打印"Hello World")

這個主要有兩種方法

  1. 類級別開發插件
  2. 對象級別開發
// 一、類級別開發插件
// 1. 直接給jquer添加全局函數
jQuery.printHelloWorld = function(){
    console.log("Hello World!!!");
}
// 2. 用extend()方法。extend是jquery提供的一個方法,把多個對象合併起來,參數是object
$.extend({
    printHelloWorld:function(){
        console.log("Hello World!!!");
    }
})

// 3. 使用命名空間(如果不使用命名空間容易和其他引入的JS庫裏面的同名方法衝突)
jQuery.test = {
    printHelloWorld: function () {
        console.log("Hello World!!!");
    }
}

// 調用
$.printHelloWorld();
$.test.printHelloWorld();

// 二、對象級別開發
// 第一行的;一定要寫
;(function($){
    $.printHelloWorld  = function(){
        console.log("Hello World!!!");
    }
}(jQuery))

// 調用
$.printHelloWorld();

5. 跨域的解決方法

經典問題,具體參考深入理解前端跨域問題的解決方案

6. ES6有了解嗎

7. Promise解決了什麼問題

Promise主要解決了回調地獄的問題。

8. 你覺得Promise能解決回調地獄嗎?

9. 現在有兩個字符串var a = "aaa"var b = "bbb如何不借助任何函數和中間變量交換他們

這裏只寫一個相對比較萬能的方法,其他可以參考JavaScript交換兩個變量值的七種解決方案
var a = "aaa";
var b = "bbb";
a = [b, b=a][0];
// 根據運算符優先級,首先執行b=a,此時的b直接得到了a的變量值,然後一步數組索引讓a得到了b的值

10. vue中vuex的action和mutation區別

Action 提交的是 mutation,而不是直接變更狀態。
Action 可以包含任意異步操作,而Mutation 必須是同步函數。

11. localStorage和SessionStorage區別

  1. localStorage的生命週期是永久性的; sessionStorage 的生命週期是在瀏覽器關閉前

12. 有一個數據,應該在vue中的哪個鉤子函數中執行?

13. 如果數據量很大,在created執行會不會很慢?

14. 有了解過多頁面嗎?有處理過自適應呢?

15. 爲什麼想做前端?

16. 自我驅動?數據驅動?

二面

1. 暑假實習過?

2. 實習主要工作內容?

3. 有做過前端的相關的插件或組件嗎?

4. 怎麼理解Vue開發?

5. 實習的時候做怎樣的系統?

6. 怎麼理解Vue開發?

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