整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          .NET Core 學(xué)習(xí)資料精選:入門

          .NET Core 學(xué)習(xí)資料精選:入門
          作者:滴答的雨
          來(lái)源:https://www.cnblogs.com/heyuquan/p/11192867.html
          

          源跨平臺(tái)的.NET Core,還沒(méi)上車的趕緊的,來(lái)不及解釋了……

          本系列文章,主要分享一些.NET Core比較優(yōu)秀的社區(qū)資料和微軟官方資料。

          我進(jìn)行了知識(shí)點(diǎn)歸類,讓大家可以更清晰的學(xué)習(xí).NET Core。

          首先感謝資料原作者的貢獻(xiàn)。

          第一篇:.NET Core 學(xué)習(xí)資料精選:入門

          介紹.NET歷史、開源之路、基礎(chǔ)、路由、依賴注入、HttpContext、cookie|session、HttpClient、gRPC、單元測(cè)試、發(fā)布部署等等。

          第二篇:.NET Core 學(xué)習(xí)資料精選:進(jìn)階&高級(jí)

          這是第一篇,知識(shí)點(diǎn)如圖:

          一、.NET 簡(jiǎn)介

          1、.NET 開源之路

          .NET FrameWork發(fā)展史

          C# 語(yǔ)言版本發(fā)展史

          2014.11月 .NET Core 項(xiàng)目啟動(dòng),2016.06月 .NET Core 1.0 發(fā)布

          微軟 .NET Core3.0 規(guī)劃藍(lán)圖

          .NET Core 3.0 下一個(gè)版本命名為:.NET 5

          2、.NET Core提供的特性

          1、開源、免費(fèi)

          2、輕量級(jí)、跨平臺(tái)

          3、組件化、模塊化、IOC+Nuget、中間件

          4、高性能

          5、統(tǒng)一了MVC和WebAPI編程模型

          • 比如:ASP.NET Core 中MVC 和Web API 直接或間接繼承同一個(gè)基類 ControllerBase,提供可使用的API也一致化
          • 比如:舊ASP.NET時(shí)代,寫全局filter需要針對(duì)MVC 和Web API 分別編寫代碼,但在ASP.NET Core,直接使用一套中間件代碼即可

          6、可測(cè)試性

          7、微服務(wù)、容器化支持

          8、標(biāo)準(zhǔn)化 .NET API 規(guī)范- .NET STANDARD

          3、遷移到.NET Core

          目前市面上還存在很多傳統(tǒng) .NET 舊項(xiàng)目,我們需要根據(jù)公司情況決定是否升級(jí)到.NET Core。

          如果需要進(jìn)行舊項(xiàng)目升級(jí)的,可以參考文章:《.NET項(xiàng)目遷移到.NET Core操作指南》

          二、VS 和 .NET Core安裝

          VS 2019安裝教學(xué)

          VS 2019正式版注冊(cè)碼秘鑰

          安裝 .NET CoreRuntime 和.NET Core SDK

          【微軟官方文檔】ASP.NET Core *.* 個(gè)版本新特性

          指定要使用的 .NET Core 版本

          如何刪除 .NET Core 過(guò)時(shí)的運(yùn)行時(shí)和 SDK

          [坑]安裝 .Net Core 2.2 SDK后,VS2017依然不能設(shè)置core2.2為目標(biāo)框架

          三、基礎(chǔ)

          ASP.NET Core開發(fā)者路線指南

          微軟官方ASP.NET Core教程文檔https://docs.microsoft.com/zh-cn/aspnet/?view=aspnetcore-2.2#pivot=core

          .NET Core 命令行接口 (CLI) 工具

          .NET Core 運(yùn)行程序注意事項(xiàng)(dotnet dll 與 dotnet run)

          ASP.NET Core API 一覽表

          查詢 NET API 及類庫(kù)在各版本中實(shí)現(xiàn)情況

          ASP.NET Core 項(xiàng)目目錄結(jié)構(gòu)介紹

          ASP.NET Core 程序自定義IP和端口的幾種方式

          ASP.NET Core 中的Startup類

          ASP.NET Core 中使用多個(gè)環(huán)境(開發(fā)、預(yù)發(fā)布、生產(chǎn))- 默認(rèn)為 Production

          ASP.NET Core 動(dòng)作結(jié)果(ActionResult)

          ASP.NET Core 中控制器操作的多路徑返回類型(IActionResult)

          .NET Core 3.0 新的System.Text.JsonAPI

          四、配置

          ASP.NET Core 中的配置(json、xml、命令行、環(huán)境變量、內(nèi)存變量等)

          ASP.NET Core 中的選項(xiàng)模式

          .Net Core 自定義配置源從遠(yuǎn)程API讀取配置(ConfigurationProvider)

          邁向現(xiàn)代化的 .Net 配置指北(配置到類自動(dòng)映射)

          五、路由、模型綁定

          ASP.NET Core WebAPI中,Controller標(biāo)注 [ApiController] 特性,其路由只能使用[route]特性方式

          ASP.NET Core MVC 構(gòu)建可讀性更高的ASP.NET Core 路由

          ASP.NET Core 中的模型綁定

          ASP.NET Core 中的自定義模型綁定(IModelBinder)

          ASP.NET Core 中的 URL 重寫中間件

          六、依賴注入(IOC、DI)

          什么是控制反轉(zhuǎn),和依賴注入:

          控制反轉(zhuǎn)的意思就是:平常我們需要一個(gè)類對(duì)象的時(shí)候需要new出來(lái),而現(xiàn)在我們把new一個(gè)類對(duì)象的工作交給了IOC容器,當(dāng)我們需要一個(gè)類對(duì)象的時(shí)候直接向IOC容器要,就可以了,這個(gè)就是控制反轉(zhuǎn)。(控制權(quán)交個(gè)了IOC容器)

          依賴注入的意思就是:當(dāng)我需要一個(gè)類對(duì)象,IOC容器給我們這個(gè)類對(duì)象的過(guò)程其實(shí)就是依賴注入,依賴注入有構(gòu)造函數(shù)注入和屬性注入。

          [官方]在 ASP.NET Core 依賴注入

          https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.2

          全面理解 ASP.NET Core 依賴注入

          • 官方推薦通過(guò)構(gòu)造函數(shù)。這也是所謂的顯式依賴。Asp.Net Core 的標(biāo)準(zhǔn)依賴注入容器不支持屬性注入。(可以使用autofac或者其他來(lái)實(shí)現(xiàn)屬性注入)

          ASP.NET Core 中依賴注入的N種玩法

          ASP.NET Core 自定義特性實(shí)現(xiàn)屬性注入

          ASP.NET Core 原生DI實(shí)現(xiàn)批量注冊(cè)

          • 可以參考 OSharp 框架,設(shè)計(jì)三個(gè)全局注入接口,來(lái)實(shí)現(xiàn)自動(dòng)化注入:ISingletonDependency 和 ITransientDependency 、 IScopedDependency ( 單例、瞬時(shí)、范圍)。

          ASP.NET Core 中如何注入同一個(gè)接口的多個(gè)實(shí)現(xiàn)

          • 案例1:使用nlog時(shí),想根據(jù)需要使用不同的配置文件Nlog.config 寫日志時(shí),就可以使用文章中介紹的 Factory 命名注入方案來(lái)實(shí)現(xiàn)
          • 案例2:使用分布式緩存 IDistributedCache 時(shí),想根據(jù)需要在一個(gè)項(xiàng)目中同時(shí)使用redis和sqlserver

          ASP.NET Core 中多個(gè)接口對(duì)應(yīng)同一個(gè)實(shí)現(xiàn)的正確姿勢(shì)

          ASP.NET Core 依賴注入擴(kuò)展庫(kù) Scrutor

          [OSharp]使用 IServiceProvider.GetService<T>() 實(shí)現(xiàn)按需注入,優(yōu)化性能

          七、ASP.NET Core 集合 Autofac 的使用

          AutoFac三種注入方式:按類型、按名稱、按鍵

          ASP.NET Core 2.0 之旅---AutoFacIOC容器的使用教程

          ASP.NET Core 2.0 之旅---AutoFac倉(cāng)儲(chǔ)泛型的依賴注入(泛型注入)

          ASP.NET Core 2.0 之旅---數(shù)據(jù)訪問(wèn)倉(cāng)儲(chǔ)模式的事務(wù)管理(uow+rp)

          ASP.NET Core 中使用Autofac實(shí)現(xiàn)屬性注入的代碼片段

          八、ASP.NET Core WebAPI

          創(chuàng)建ASP.NET Core Web API (ControllerBase、參數(shù)綁定源)

          ASP.Net Core WebAPI 幾種版本控制對(duì)比

          使用 Web API 約定

          使用 Web API 分析器告警缺失的約定

          九、ASP.NET Core:MVC 與 Razor Pages

          ASP.NET Core MVC 靜態(tài)文件目錄配置與訪問(wèn)授權(quán)

          新的 Razor 機(jī)制

          https://docs.microsoft.com/zh-cn/aspnet/core/razor-pages/sdk?view=aspnetcore-2.2

          • ASP.NET Core Razor SDK
          • ASP.NET Core 的 Razor 語(yǔ)法參考
          • ASP.NET Core 中的 Razor 頁(yè)面介紹(OnGet、OnPost、單頁(yè)多Handler方式)
          • ASP.NET Core 中 Razor 頁(yè)面的IPageFilter
          • ASP.NET Core 中 Razor 頁(yè)面的路由和應(yīng)用約定
          • ASP.NET Core Razor 配置:預(yù)編譯,動(dòng)態(tài)編譯,混合編譯

          ASP.NET Core SignalR 入門

          https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/signalr?view=aspnetcore-2.2&tabs=visual-studio

          WebForm & MVC & Razor Pages

          • [譯]ASP.NET:WebForms vs MVC
          • ASP.NET Core Razor頁(yè)面 vs MVC
          • [譯]ASP.Net Core 2.0中的Razor Page不是WebForm
          • ASP.NET Core Razor頁(yè)面簡(jiǎn)化了 ASP.NET MVC 應(yīng)用程序

          十、HttpContext

          ASP.NET Core 中訪問(wèn) HttpContext 的方法

          ASP.NET Core 中通過(guò)IHttpContextAccessor實(shí)現(xiàn)公用靜態(tài)HttpContext

          十一、狀態(tài)管理

          常見(jiàn)方式:Cookie、Session、TempData、查詢字符串、HttpContext.Items、緩存、依賴關(guān)系注入

          ASP.NET Core 中的會(huì)話和應(yīng)用狀態(tài)

          1、session

          ASP.NET Core 在通用數(shù)據(jù)保護(hù)條例規(guī)則下使用 session

          ASP.NET Core 使用Redis存儲(chǔ)Session

          2、cookie

          ASP.NET Core SameSite 設(shè)置引起 Cookie 在 QQ 瀏覽器中不起作用

          [github]ASP.NET Core CookieManager

          https://github.com/nemi-chand/CookieManager

          十二、通信

          對(duì)比 gRPC 服務(wù)和 HTTP API 服務(wù)

          1、HttpClient

          ASP.NET Core HttpClient的演進(jìn)和避坑

          ASP.NET Core HttpClient的各種用法、生命周期管理

          DotNetCore 使用Http請(qǐng)求及基于 Polly 的處理故障

          DotNetCore 中 HttpClientFactory 類源碼分析

          2、gRPC

          ASP.NET Core 3.0 上的gRPC服務(wù)模板初體驗(yàn)(多圖)

          ASP.NET Core gRPC的配置

          十三、發(fā)布部署

          ASP.NET Core 使用 IIS 進(jìn)行托管部署

          ASP.NET Core 部署到 Linux 進(jìn)行托管

          ASP.NET Core 使用Supervisor進(jìn)行托管部署

          ASP.NET Core 使用Docker進(jìn)行容器化托管

          配置 ASP.NET Core 以使用代理服務(wù)器和負(fù)載均衡器

          使用 Nginx 在 Linux 上托管 ASP.NET Core

          使用 Apache 在 Linux 上托管 ASP.NET Core

          十四、單元測(cè)試

          .NET Core 和 .NET Standard 單元測(cè)試最佳做法

          使用 dotnet test 和 xUnit 在 .NET Core 中進(jìn)行 C# 單元測(cè)試

          使用 dotnet test 和 NUnit 在 .NET Core 中進(jìn)行 C# 單元測(cè)試

          使用 dotnet test 和 MSTest 在 .NET Core 中進(jìn)行 C# 單元測(cè)試

          使用 dotnet test --filter 進(jìn)行選擇性單元測(cè)試

          over,謝謝查閱,覺(jué)得文章對(duì)你有收獲,請(qǐng)多幫推薦。歡迎提供更好的資料信息。


          nput框作為一個(gè)簡(jiǎn)單的輸入框,你對(duì)它的屬性知道有多少?
          常見(jiàn)的屬性(帶new為h5新增屬性):

          1、accept:accept 屬性規(guī)定了可通過(guò)文件上傳提交的服務(wù)器接受的文件類型。僅用于input的type類型為"file"的時(shí)候。

          屬性值:

          audio/*,音頻

          video/* ,視頻

          image/* ,圖片

          MIME_type,一個(gè)有效的 MIME 類型,不帶參數(shù)

            <input type="file" name="pic" accept="image/*" />

          // 如需規(guī)定多個(gè)值,請(qǐng)使用逗號(hào)分隔

          <input  type="file" accept="audio/*,video/*,image/*" />

          2、value:指定元素的value值。

          屬性值:text

          value 屬性對(duì)于不同 input 類型,用法也不同:

          • 對(duì)于 "button"、"reset"、"submit" 類型 - 定義按鈕上的文本
          • 對(duì)于 "text"、"password"、"hidden" 類型 - 定義輸入字段的初始(默認(rèn))值
          • 對(duì)于 "checkbox"、"radio"、"image" 類型 - 定義與 input 元素相關(guān)的值,當(dāng)提交表單時(shí)該值會(huì)發(fā)送到表單的 action URL。

          注意:value 屬性對(duì)于 <input type="checkbox"> 和 <input type="radio"> 是必需的。

          注意:value 屬性不適用于 <input type="file">。

          <input value="文本" />

          3、name:表示的該文本輸入框名稱。用于表單提交后引用表單數(shù)據(jù)。只有設(shè)置了 name 屬性的表單元素才能在提交表單時(shí)傳遞它們的值。

          屬性值:text

          <input type="text" name="email" />

          4、size:輸入框的長(zhǎng)度大小。

          屬性值:number

          <input type="text" name="email" size="35" />


          注意:size 屬性適用于下面的 input 類型:text、search、tel、url、email 和 password。

          5、maxlength:輸入框中允許輸入字符的最大數(shù)。

          屬性值:number

          <input type="text" name="usrname" maxlength="10" />

          6、readonly:表示該框中只能顯示,不能添加修改。

          <input type="text" name="country" value="中國(guó)" readonly />

          7、required(new):屬性規(guī)定必須在提交表單之前填寫輸入字段。

           <input type="text" name="username" required />

          8、alt:定義圖像輸入的替代文本。 (只針對(duì)type="image")

          屬性值:text

          <input type="image" src="submit.gif" alt="Submit" width="48" height="48" />

          9、autocomplete(new):autocomplete 屬性規(guī)定輸入字段是否應(yīng)該啟用自動(dòng)完成功能。

          屬性值:on/off,默認(rèn)啟動(dòng)自動(dòng)完成功能。

          <input autocomplete="off" />

          注意:autocomplete 屬性適用于下面的 <input> 類型:text、search、url、tel、email、password、datepickers、range 和 color。

          10、autofocus(new):屬性規(guī)定當(dāng)頁(yè)面加載時(shí) <input> 元素應(yīng)該自動(dòng)獲得焦點(diǎn)。

          屬性值:autofocus

          <input type="text"  autofocus />

          11、checked:checked 屬性規(guī)定在頁(yè)面加載時(shí)應(yīng)該被預(yù)先選定的 <input> 元素。 (只針對(duì) type="checkbox" 或者 type="radio")

          屬性值:checked

          <input type="checkbox" name="vehicle" value="Car" checked />小汽車

          12、disabled:disabled 屬性規(guī)定應(yīng)該禁用的 <input> 元素。

          屬性值:disabled

          <input type="text" name="lname" disabled />

          13、form(new): form 屬性規(guī)定 <input> 元素所屬的一個(gè)或多個(gè)表單。

          位于 form 表單外的輸入字段(但仍然屬于 form 表單的一部分):

          <form action="demo-form.php" id="form1">
              First name: <input type="text" name="fname"><br>
             <input type="submit" value="提交">
          </form>

          14、formaction(new):屬性規(guī)定當(dāng)表單提交時(shí)處理輸入控件的文件的 URL。(只針對(duì) type="submit" 和 type="image")

          屬性值:URL

          <input type="submit" formaction="demo-admin.php" value="提交" />

          注意:

          formaction 屬性規(guī)定當(dāng)表單提交時(shí)處理輸入控件的文件的 URL。

          formaction 屬性覆蓋 <form> 元素的 action 屬性。

          15、formenctype(new):屬性規(guī)定當(dāng)表單數(shù)據(jù)提交到服務(wù)器時(shí)如何編碼(只適合 type="submit" 和 type="image")。

          屬性值:application/x-www-form-urlencoded ;multipart/form-data text/plain

          <input type="submit" formenctype="multipart/form-data" value="以 Multipart/form-data 提交" />

          注意:

          formenctype 屬性規(guī)定當(dāng)表單數(shù)據(jù)提交到服務(wù)器時(shí)如何編碼(僅適用于 method="post" 的表單)。

          formenctype 屬性覆蓋 <form> 元素的 enctype 屬性。

          16、formmethod (new):定義發(fā)送表單數(shù)據(jù)到 action URL 的 HTTP 方法。 (只適合 type="submit" 和 type="image")

          屬性值:get / post

          <input type="submit" formmethod="post" formaction="demo-post.php" value="使用 POST 提交" />

          17、formnovalidate(new):formnovalidate 屬性覆蓋 <form> 元素的 novalidate 屬性。

          屬性值:formnovalidate

          <input type="submit" formnovalidate="formnovalidate" value="不驗(yàn)證提交">

          18、formtarget (new):規(guī)定表示提交表單后在哪里顯示接收到響應(yīng)的名稱或關(guān)鍵詞。(只適合 type="submit" 和 type="image")

          屬性值:_blank; _self; _parent; _top; framename

          <input type="submit" formtarget="_blank" value="提交到一個(gè)新的頁(yè)面上">

          19、height (new);width(new):屬性規(guī)定 <input> 元素的高度和寬度。 (只針對(duì)type="image")

          屬性值:pixels

          <input type="image" src="img_submit.gif" alt="Submit" width="48" height="48" />

          20、max (new);min(new):屬性規(guī)定 <input> 元素的最大值和最小值。

          屬性值:number;date

           <input type="date" name="bday" max="1979-12-31">
            <input type="date" name="bday" min="2000-01-02">  
          <input type="number" name="quantity" min="1" max="5">

          21、multiple (new):屬性規(guī)定允許用戶輸入到 <input> 元素的多個(gè)值。

          屬性值:multiple

          <input type="file" name="img" multiple>

          注意:multiple 適用于以下 input 類型:email 和 file。

          22、pattern (new):pattern 屬性規(guī)定用于驗(yàn)證 <input> 元素的值的正則表達(dá)式。

          屬性值:regexp;

          <form action="demo_form.html">
             Country code: <input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">
             <input type="submit">
          </form>

          23、placeholder (new): 屬性規(guī)定可描述輸入 <input> 字段預(yù)期值的簡(jiǎn)短的提示信息 。

          屬性值:text

          <input placeholder="請(qǐng)輸入姓名" />

          24、src : src 屬性規(guī)定顯示為提交按鈕的圖像的 URL。 (只針對(duì) type="image")

          屬性值:URL

          <input type="image" src="submit.gif" alt="Submit" />

          25、step (new): step 屬性規(guī)定 <input> 元素的合法數(shù)字間隔。

          屬性值:number

          <input type="number" name="points" step="3">

          26、list(new) :屬性引用 <datalist> 元素,其中包含 <input> 元素的預(yù)定義選項(xiàng)。

          屬性值:datalist_id

          <input list="browsers">
          
          <datalist id="browsers">
            <option value="Internet Explorer">
            <option value="Firefox">
            <option value="Google Chrome">
            <option value="Opera">
            <option value="Safari">
          </datalist>

          27、type: type 屬性規(guī)定要顯示的 <input> 元素的類型。

          屬性值:button;checkbox;color;date;datetime;datetime-local;email;file;hidden;image;month;number;password;radio;range;reset;search;submit;tel;text;time;url;week

          type的屬性值眾多,也是用的比較多的一個(gè)。

          button:定義可點(diǎn)擊的按鈕(通常與 JavaScript 一起使用來(lái)啟動(dòng)腳本)。

          checkbox:定義復(fù)選框。

          color(new):定義拾色器。

          date(new):定義 date 控件(包括年、月、日,不包括時(shí)間)。

          datetime(new):定義 date 和 time 控件(包括年、月、日、時(shí)、分、秒、幾分之一秒,基于 UTC 時(shí)區(qū))。

          datetime-local(new):定義 date 和 time 控件(包括年、月、日、時(shí)、分、秒、幾分之一秒,不帶時(shí)區(qū))。

          email(new):定義用于 e-mail 地址的字段。file定義文件選擇字段和 "瀏覽..." 按鈕,供文件上傳。

          hidden:定義隱藏輸入字段。

          image:定義圖像作為提交按鈕。

          month(new):定義 month 和 year 控件(不帶時(shí)區(qū))。

          number(new):定義用于輸入數(shù)字的字段。

          password:定義密碼字段(字段中的字符會(huì)被遮蔽)。

          radio:定義單選按鈕。

          range(new):定義用于精確值不重要的輸入數(shù)字的控件(比如 slider 控件)。

          reset:定義重置按鈕(重置所有的表單值為默認(rèn)值)。

          search(new):定義用于輸入搜索字符串的文本字段。

          submit:定義提交按鈕。

          tel(new):定義用于輸入電話號(hào)碼的字段。

          text:默認(rèn)。定義一個(gè)單行的文本字段(默認(rèn)寬度為 20 個(gè)字符)。

          time(new):定義用于輸入時(shí)間的控件(不帶時(shí)區(qū))。

          url(new):定義用于輸入 URL 的字段。

          week(new):定義 week 和 year 控件(不帶時(shí)區(qū))。

          數(shù)對(duì)于任何編程語(yǔ)言來(lái)說(shuō)都是核心部分。通過(guò)函數(shù)可以封裝任意多條語(yǔ)句和表達(dá)式,而且可以在任何地方、任何時(shí)候調(diào)用函數(shù)方法來(lái)執(zhí)行。

          在JavaScript中的函數(shù)使用function關(guān)鍵字聲明,然后就是函數(shù)的參數(shù)和函數(shù)體。

          函數(shù)的語(yǔ)法如下:

          function functionName(arg0,arg1,arg2,...){
          statements
          }

          示例:

          定義了一個(gè)hello方法, 這個(gè)函數(shù)通過(guò)其函數(shù)名來(lái)調(diào)用,函數(shù)輸出結(jié)果是"Hello World"。函數(shù)中定義中的命名參數(shù)h和w被作用了字符串拼接的兩個(gè)操作數(shù),最終結(jié)果通過(guò)控制臺(tái)打印顯示出來(lái)。

          JavaScript中的函數(shù)在定義時(shí)不必指定是否返回值。實(shí)際上,任何函數(shù)在任何時(shí)候都通過(guò)return語(yǔ)句后跟要返回的值來(lái)實(shí)現(xiàn)返回值。

          帶有返回函數(shù)的語(yǔ)法如下:

          function functionName(arg0,arg1,arg2,...){
          statements
          return result;
          }

          示例:

          凡是帶有返回值的函數(shù),在return之后寫其它代碼塊是不會(huì)在執(zhí)行的,因?yàn)橐呀?jīng)把結(jié)果都返回出去了相當(dāng)于這個(gè)函數(shù)已經(jīng)結(jié)束了。

          在嚴(yán)格模式對(duì)函數(shù)存在一些限制:

          1、不能把函數(shù)名命名為eval或者arguments;

          2、不能把參數(shù)命名為eval或arguments;

          3、不能出現(xiàn)兩個(gè)命名參數(shù)同名的情況。

          如果發(fā)生以上的情況,會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤,代碼執(zhí)行不下去。

          JavaScript函數(shù)的參數(shù)與大多數(shù)語(yǔ)言的函數(shù)參數(shù)有一點(diǎn)區(qū)別。JavaScript函數(shù)不介意傳遞進(jìn)來(lái)多少個(gè)參數(shù),也不在乎傳遞進(jìn)來(lái)的參數(shù)是什么類型。即使定義的函數(shù)帶有接收兩個(gè)參數(shù),在調(diào)用這個(gè)函數(shù)時(shí)也不一定要傳這兩個(gè)參數(shù)。可以不傳參數(shù)、可以傳一個(gè)參數(shù)、可以傳兩個(gè)參數(shù)甚至跟多。但是對(duì)于JavaScript解析器來(lái)說(shuō)是不會(huì)報(bào)錯(cuò)的,完全正常解析。

          原因在于JavaScript內(nèi)部接收參數(shù)始終都是以數(shù)組來(lái)接收,實(shí)際上我們可以通過(guò)arguments對(duì)象來(lái)訪問(wèn)這個(gè)參數(shù)數(shù)組,從來(lái)獲取傳遞函數(shù)的每一個(gè)參數(shù)信息。

          訪問(wèn)arguments對(duì)象數(shù)組可以使用方括號(hào)來(lái)訪問(wèn)它的每一個(gè)元素,使用length屬性來(lái)確定傳遞進(jìn)來(lái)多少個(gè)參數(shù)。在前面的hello函數(shù)可以通過(guò)arguments[0]來(lái)獲取參數(shù)。

          示例:

          arguments獲取參數(shù)也是有順序的,第一個(gè)參數(shù)傳進(jìn)來(lái)的是什么就是什么。

          還可以不定義參數(shù)傳遞的值

          如果值傳遞了一個(gè)值,然后通過(guò)arguments[1]獲取參數(shù),其實(shí)結(jié)果是undefined。arguments[0]是正常的參數(shù)值,因?yàn)橹粋髁艘粋€(gè)值。

          JavaScript中除了對(duì)象類型參數(shù),其它參數(shù)都是值傳遞,不可能通過(guò)引用參數(shù)傳遞

          而且JavaScript中的函數(shù)不存在重載,定義多個(gè)函數(shù)名相同并且參數(shù)個(gè)數(shù)不同的方法進(jìn)行調(diào)用,永遠(yuǎn)都是拿最后定義的那個(gè)函數(shù)作為方法調(diào)用。

          調(diào)用的是帶兩個(gè)參數(shù)的函數(shù),因?yàn)槲疫@里只傳了一個(gè)值,第二個(gè)值默認(rèn)是undefined。

          所以說(shuō)JavaScript不存在方法重載的這一方法。


          主站蜘蛛池模板: 精品深夜AV无码一区二区老年| 国产午夜毛片一区二区三区 | 国产福利一区视频| 国产一区二区三区精品视频| 国产精品一区视频| 亚洲日本乱码一区二区在线二产线 | 精品乱码一区二区三区在线| 精品一区狼人国产在线| 久久久久久免费一区二区三区| 波多野结衣在线观看一区| 亚洲AV成人精品日韩一区| 国产美女一区二区三区| 亚洲综合在线一区二区三区| 亚洲av日韩综合一区在线观看| 亚洲AV无码国产精品永久一区| 久久亚洲国产精品一区二区| 99久久国产精品免费一区二区| 久久无码人妻精品一区二区三区| 日韩有码一区二区| 久久国产高清一区二区三区| 精品免费久久久久国产一区 | 久久青青草原一区二区| 国产精品一区二区久久| 亚洲va乱码一区二区三区| 久久se精品一区二区国产| 国产精品一区二区久久国产| 国产熟女一区二区三区四区五区 | 亚洲中文字幕在线无码一区二区| 色欲综合一区二区三区| 精品一区二区三区波多野结衣| 91一区二区在线观看精品| 无码福利一区二区三区| 亚洲av色香蕉一区二区三区| 在线观看精品视频一区二区三区| 国产欧美色一区二区三区| 鲁大师成人一区二区三区| 中文字幕一区二区三| 性无码免费一区二区三区在线 | 相泽亚洲一区中文字幕| 国产内射999视频一区| 国产福利一区二区三区视频在线|