.Net 面試題 匯總(五)


1、簡述javascript中的“=、==、===”的區別?

=賦值

==比較是否一般相等 "3"==3 //會做類型的隱式轉換,true

===比較是否嚴格相等 "3"===3 //先比較類型,再進行值比較,false

 

2、看下列代碼輸出為何?解釋原因
var a = null;
alert(typeof a);
var b;
alert(typeof b);
alert(c);

a為null,也是一個對象,所以typeof(a)為object.

b只有聲明沒有初始化,因此typeof(b)為undefined.

c沒有定義,因此alert(c)會出現error.


3、編寫javascript代碼實現把兩個數組合並,並刪除第二個元素。

合並js數組用concat方法,array1.concat(array2)。

刪除元素用splice方法,splice(1,1),函數原型splice(index,count),指從數組索引1處開始刪除1個元素,即刪除第二個元素。


4、簡述javascript的作用域和閉包

js變量的作用域是指:函數內定義的局部變量只在此函數內有效,而全局變量可以全局有效。

閉包的作用就在於能夠改變局部變量的作用域,將值保存下來,但是如果使用不當會造成無法回收變量,引起性能問題,甚至崩潰。


5、列舉你用過的javascript框架,並簡述它們的優缺點

js框架:jQuery EasyUI、ExtJS、Bootstrap、AngularJS等等。

jQuery EasyUI:輕量級web前端ui開發框架,尤其適合MIS系統的界面開發,能夠重用jquery插件。

ExtJS:統一的前端UI開發框架,學習難度中等。尤其適合MIS系統的界面開發,開發文檔和例子代碼都比較完整。缺點是大量的js腳本,降低了運行速度。

Bootstrap:響應式網站開發框架,優點是降低了后端開發人員開發前端頁面的難度,統一了界面風格,缺點是界面風格比較單一。

AngularJS:將java后端的優秀特性引入到了js前端,大而全的框架。缺點是學習曲線高,Angular2幾乎重寫。


6、簡述a.Equals(b)和a==b的區別?

Equals方法比較內容(值是否相等),==比較引用地址(是否指向同一個對象)。


7、ASP.NET的Application、Session、Cookie、ViewState和Cache等變量的區別是什么?

Application 應用程序級別

Session 會話級別用戶跟蹤

Cookie 客戶端存儲少量信息

ViewState 保持ASP.NET控件狀態的機制

Cache 緩存


8、列舉ASP.NET MVC ActionResult的返回值有幾種類型?

主要有View(視圖)、PartialView(部分視圖)、Content(內容)、Json(Json字符串)、Javascript(js腳本)、File(文件)等幾種類型。


9、簡述ASP.NET WebApi相對於ASP.NET MVC的優點?

WebApi消息處理管道獨立於ASP.NET平台,支持多種寄宿方式。

 

10、簡述ASP.NET請求的生命周期?

用戶從 Web 服務器請求應用程序資源->ASP.NET 接收對應用程序的第一個請求->為每個請求創建 ASP.NET 核心對象->將HttpApplication對象分配給請求->由HttpApplication 管線處理請求

refer: https://msdn.microsoft.com/zh-cn/library/ms178473(v=vs.100).aspx


11、ORM中的延遲加載與直接加載有什么異同?

延遲加載(Lazy Loading)只在真正需要進行數據操作的時候再進行加載數據,可以減少不必要的開銷。


12、簡述Func<T>與Action<T>的區別?

Func<T>是有返回值的委托,Action<T>是沒有返回值的委托。


13、開啟一個異步線程的幾種方式?多線程編程時的注意事項?

APM(Asynchrocous Programming Model,比如:BeginXXX、IAsyncResult)、EAP(Event-Based Asynchronous Pattern,比如:DownloadContentAsync)、TPL(Task Parallel Library,比如:Task.Factory.StartNew)、async/await。

線程餓死、線程死鎖、線程同步、線程安全。


14、簡述Linq是什么,以及Linq的原理?並編寫一個Linq to Object的示例代碼

Linq(Language Integrated Query),其中Linq to Object是對Enumberable擴展方法的調用,在執行時會轉化為Lambda然后執行。

示例代碼:Linq分組統計

var result = from p in list.AsEnumerable() 
group p by p.Province into g 
select new 
{ 
g.Key, 
SumValue = g.Sum(p => p.Value) 
}; 
result.ToList().ForEach((i) => 
{ 
Console.WriteLine(i.Key + ":" + i.SumValue); 
}); 

 

15、簡述面向對象的特性有哪些?你是如何理解的?

繼承(inheritance)、封裝(encapsulation)、多態(polymorphism)。


16、列舉你所知道的設計模式?你在真實項目中使用過的有哪些?有什么心得?

單例模式、模板方法、工廠模式、外觀模式、策略模式等。


17、編寫SQL從A表中查出Name字段重復三條以上的記錄,並編寫SQL刪除這些重復記錄

查詢Name字段記錄重復三條以上的記錄

select name from A group by name having count(name)>3
刪除重復記錄

if exists(select * from sysobjects where name = 'tempA')
drop table tempA
select ROW_NUMBER() over (order by name ) as rowid, name into tempA from A

select * from tempA

--刪除重復記錄,只保留rowid最小的那一行
delete from tempA where name in
(select name from tempA group by name having count(name)>3)
and rowid not in (select min(rowid) from tempA group by name having count(name)>3)

select * from tempA

 


免責聲明!

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



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