面試題總結(PS:只是我遇到的那些面試題,並不是經典面試題)


一、類和結構的區別,分別有什么應用。(參考:https://blog.csdn.net/yikeshu19900128/article/details/40400479

1)類是引用類型,數據存放在堆上,指向的地址存在棧上。結構是值類型,數據存在棧上。

2)類可以繼承,能繼承另一個類或接口,也可以被繼承。結構不能繼承,不能繼承另一個結構或類,也不能被繼承,但是可以繼承接口。

3)類可以在聲明時初始化,結構不能在聲明時初始化。

4)在類中,一旦我們編寫了帶參數構造函數,默認構造函數就不存在了。當我們要調用不帶參數的構造函數來初始化對象時,我們必須再自己編寫一個不帶參數的構造函數。但是在結構中,始終存在一個不帶參數的默認構造函數,並且,這個構造函數是不可替代的,不能重寫,也不能覆蓋,在結構中,我們只能編寫帶參數的構造函數,不能編寫不帶參數的構造函數

5)析構函數:類有析構函數,但是結構沒有析構函數

6)關鍵字:在類中可以使用但是在結構中限制使用的關鍵字有:abstract、sealed、protected;Static關鍵字可以用在類名前面用來聲明靜態類,但是不能用在struct前面,不存在靜態結構

7)類用new來實例化對象,分配內存,需要使用new返回地址及分配空間,而結構用new是初始化,結構是值類型,聲明時就已經分配內存了

結構和類的適用場合分析:(參考:https://blog.csdn.net/Iqingshuifurong/article/details/53129536

  1、當堆棧的空間很有限,且有大量的邏輯對象時,創建類要比創建結構好一些;

  2、對於點、矩形和顏色這樣的輕量對象,假如要聲明一個含有許多個顏色對象的數組,則CLR需要為每個對象分配內存,在這種情況下,使用結構的成本較低;

  3、在表現抽象和多級別的對象層次時,類是最好的選擇,因為結構不支持繼承。

  4、大多數情況下,目標類型只是含有一些數據,或者以數據為主。

二、在項目中直接使用sql語句和用存儲過程查詢的區別是什么(參考:https://www.cnblogs.com/binyue/p/6442310.html

三、網站的優化有哪些方法?(從服務端和客戶端兩個方面說明)(參考:https://www.zhihu.com/question/21658448

【這個如果知道的希望可以在評論區分享你的答案,謝謝】

前端優化的途徑有很多,按粒度大致可以分為兩類,第一類是頁面級別的優化,例如 HTTP請求數、腳本的無阻塞加載、內聯腳本的位置優化等 ;第二類則是代碼級別的優化,例如Javascript中的DOM 操作優化、CSS選擇符優化、圖片優化以及 HTML結構優化等等。(作者:斯迪 鏈接:https://www.zhihu.com/question/21658448/answer/18903129 來源:知乎)
 
 
四、怎么避免點擊按鈕后重復提交?【寫出你能想到的所有方法】(參考: https://www.cnblogs.com/wuyx/p/6118484.html
1)按鈕點擊提交后,讓按鈕成為不可用狀態,等操作執行完成后再恢復。
2)設置一個變量來記錄按鈕點擊次數,如果點擊的時候為0,則執行提交操作,否則return。
3)在點擊按鈕進行提交之后可以在頁面上加一個“等待中。。。”的動態效果,在未完成操作時按鈕所在的頁面是不能點擊的。等執行完操作后再隱藏動態效果,恢復頁面。
4)用cookie保存上一次點擊提交的時間,比較兩次的時間間隔,如果在你覺得間隔過短的話,就把第二次的提交過濾掉。
5)還有鏈接里面的方法  https://www.cnblogs.com/wuyx/p/6118484.html 【歡迎補充】
 
五、JavaScript里有什么基本數據類型?(參考: https://www.cnblogs.com/mybwhy/p/7245234.html?utm_source=itdadao&utm_medium=referral
1)Undefined類型:Undefined類型只有一個值即undefined。對未初始化和未聲明的變量執行typeof操作符都會返回undefined。
2)Null類型:Null類型是第二個只有一個值的數據類型即null。null值表示一個空指針對象,因此typeof操作符檢測null值時返回“object”。
3)Boolean類型:Boolean類型有兩個字面值:true和false。true不一定等於1,false不一定等於0。需要注意的是true和false是區分大小寫的,也就是說True和False(以及其他的混合大小寫形式)都不是Boolean值,只是標識符。
4)Number類型:
5)String類型:數值、布爾值、對象、字符串值都有toString()方法,但null和undefined值沒有。
6)Object類型:在javascript中Object類型是所有其他實例的基礎。
引申題:
<script>
 
  var a='12.3';//string類型
 
  var b=12.6;//number類型
 
  var c=a+b;//c是string類型
 
  alert(c);//結果是什么?====>結果為 12.312.6
 
</script>
 
        什么時候得到結果24?什么時候得到25?【js中的四舍五入,參考: http://www.jquerycn.cn/a_11512
<script type="text/javascript">
    var a = '12.3';
    a = parseInt(a);//a=12
    var b = 12.6;
    var c = a + b;//c=24.6
    alert(typeof (c));//number類型
    alert(parseInt(c));//24
</script>
<script type="text/javascript">
    var a = '12.3';
    a = parseFloat(a);
    var b = 12.6;
    var c = a + b;
    alert(c);//24.9
    alert(typeof (c));//number類型
    alert(c.toFixed(0));//25  在js中四舍五入的函數 tofixed(n) , n為要保留的小數位數。n為0~20,當n超過20的時候,js會出錯。
</script>

 

 
 
 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM