小白總結的一些關於JS的基礎概念

来源:http://www.cnblogs.com/yehui-mmd/archive/2016/09/02/yehui.html
-Advertisement-
Play Games

我的第一篇博客 ——JS的那些基礎概念 接觸前端已經整整一學年了,這是我第一次寫博客,感覺心裡裝了無數只兔子,很緊張,很激動,也很興奮。 第一次寫,也不知道有沒有什麼套路,需不需要註意文采之類的。不管了,太激動了,我就直接寫只要內容吧!下麵是我總結的一些關於JS的基礎概念: 【變數】從字面上面,變數 ...


我的第一篇博客

——JS的那些基礎概念

    接觸前端已經整整一學年了,這是我第一次寫博客,感覺心裡裝了無數只兔子,很緊張,很激動,也很興奮。

    第一次寫,也不知道有沒有什麼套路,需不需要註意文采之類的。不管了,太激動了,我就直接寫只要內容吧!下麵是我總結的一些關於JS的基礎概念:

    【變數】
從字面上面,變數是可變的量;從編程角度講,變數是用於存儲某些/某種數值的存儲器。我們可以把變數看作一個盒子用來存儲物

品。

    【數組】
變數用來存儲數據,一個變數只能存儲一個內容。如果你想存儲多個內容,那麼就可以用數組解決,一個數組變數可以存放多個數

據,好比一個團,團你有很多人。數組是一個值得集合,每個值都有一個索引號,從0開始,每個索引都有一個相應的值,根據需要

添加更多數值。

創建數組:使用數組之前首先要創建,需要把數組本身賦值給一個變數。
1、創建數組是空數組,沒有值,如輸出,則顯示undefined。
2、雖然創建數組時,指定了長度,但它是可以變長的,根據需要而添加內容,長度隨即變長。

    【數組方法】
即對一個或多個數組進行的一系列操作。
(1)數組連接方法:concat()方法,用於連接兩個或多個數組,返回一個新數組,不改變原來的數組,僅僅返回被連接數組的一個

副本。
語法:arrayObject.concat(array1,array2,...,arrayN)
用法如下:
<script type="text/javascript">
  var mya = new Array(3);
  mya[0] = "1";
  mya[1] = "2";
  mya[2] = "3";
  document.write(mya.concat(4,5)+"<br>");
  document.write(mya);
</script>
返回結果:
1,2,3,4,5
1,2,3
(2)指定分隔符連接數組元素方法:join()方法,該方法用於把數組中的所有元素放入一個字元串,元素是通過指定的分隔符進行

分隔。
語法:arrayObject.join(分隔符(預設為逗號));
用法:
<script type="text/javascript">
  var myarr = new Array(3)
  myarr[0] = "I";
  myarr[1] = "love";
  myarr[2] = "JavaScript";
  document.write(myarr.join("."));
</script>
運行結果:
I.love.JavaScript
(3)顛倒數組元素順序:reverse()方法,用於顛倒數組中元素的順序。
語法:arrayObject.reverse();
用法如下:
<script type="text/javascript">
  var myarr = new Array(3)
  myarr[0] = "1"
  myarr[1] = "2"
  myarr[2] = "3"
  document.write(myarr + "<br />")
  document.write(myarr.reverse())
</script>
運行結果:
1,2,3
3,2,1
(4)選定元素:slice()方法,該方法可從已有的數組中返回選定的元素。
語法:arrayObject.slice(start,end)
參數說明:
start,必需,規定從何處開始選取。如果為負數,那麼它規定從數組尾部算起的位置,即:-1為最後一個元素,-2為倒數第二個元

素,以此類推。end,可選,規定從何處結束選取。該參數是數組片段結束處的數組下標(不包含該下標所指元素)。如果沒有指定

參數,那麼切分的數組包含從start到數組結束的所有元素。如果為負數,那麼它規定從數組尾部算起。
該方法不會修改數組,而是返回一個子數組。
註意:
String.slice()與Array.slice()相似。
用法如下:
<script type="text/javascript">
  var myarr = new Array(1,2,3,4,5,6);
  document.write(myarr + "<br>");
  document.write(myarr.slice(2,4) + "<br>");
  document.write(myarr);
</script>
運行結果:
1,2,3,4,5,6
3,4
1,2,3,4,5,6
(5)數組排序:sort()方法,該方法用於使數組中的元素按照一定的順序排序。
語法:arrayObject.sort(方法函數)
參數說明:可選,規定排序順序,必須是函數。如果不指定<方法函數>,則按unicode碼順序排列:myArray.sort(sortMethod);。
該函數要比較兩個值,然後返回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數a和b,起返回值如下:
若返回值  <= -1,則表示A在排序後的序列中出現在B之前。
若返回值  > -1 && < 1,則表示A和B具有相同的排列順序。
若返回值  >= -1,則表示A在排序後的序列中出現在B之後。
例子:
<script type="text/javascript">
  function sortNum(a,b) {
  return a - b;
 //升序,如降序,把“a - b”該成“b - a”
}
 var myarr = new Array("80","16","50","6","100","1");
  document.write(myarr + "<br>");
  document.write(myarr.sort(sortNum));
</script>
運行結果:
80,16,50,6,100,1
1,6,16,50,80,100
(6)數組元素刪除(數組拼接):splice()方法,用於刪除數組中從特定位置開始的元素,返回刪除的值,會修改原數組。
語法:arrayObject.splice(start,end,添加的項...)
參數說明:start,必需,規定從何處開始刪除。數字為元素下標(刪除值包括該下標)。
end,可選,表示刪除的數目。
splice()方法還可以添加元素,因此稱為字元串拼接。
例子如下:
var arr=[1,2,3,4,5];
arr.splice(2);//returns [3,4,5]
arr;//[1,2]

var arr=[1,2,3,4,5];
arr.splice(2,2);//returns [3,4]
arr;//[1,2,5]

var arr=[1,2,3,4,5];
arr.splice(1,1,"a","b");//returns [2]
arr;//[1,"a","b",3,4,5]
(7)數組遍歷:forEach()方法,用於遍曆數組。不會修改原數組。
語法:arrayObject.forEach(function(x,index,a(可選){})
參數說明:x,表示數組任意的元素,index表示元素的索引值,a表示指向數組,返回值為布爾值。
例子如下:
var arr=[1,2,3,4,5];
arr.forEach(function(x,index,a){
console.log(x + "|" +index +"|" + (a===arr));//console.log列印數據,相當於C語言里的printf
});
運行結果:
1|0|true
2|1|true
以此類推
(8)數組映射:map()方法,該方法用於對每一個數組元素進行操作,同樣不會修改原數組。
語法:arrayObject.map(function(x){});
例子:
var arr=[1,2,3];
arr.map(function(x){
return x+10;
});//return [11,12,13]
arr;//[1,2,3]
(9)數組過濾:filter()方法,用於篩選一些我們需要的數組元素。不會修改原數組。
語法:arrayObject.filter(function(x,index){})
參數說明:x,表示數組任意的元素,index表示元素的索引值。
例子:
var arr=[1,2,3,4,5,6,7,8,9,10];
arr.filter(function(x,index){
  return index%3===0||x>=8;
});
運行結果:
[1,4,7,8,9,10]
(10)數組判斷:every()和some()方法,用於判斷數組元素是否滿足條件,返回布爾值,與every()不同的是,some()表示只要有

一個元素滿足條件就返回true。
(11)reduce()和reduceRight()方法,用於數組元素之間的兩兩比較,最終得到一個值(把數組聚合成一個結果),如:找最大值

,求和。而reduceRight()表示從右邊開始兩兩比較。
(12)數組檢索:indexOf()和lastIndexOf()方法,用於檢索每個元素在數組中的索引值。lastIndexOf()表示從後往前檢索。
語法:arrayObject.indexOf(x,start),arrayObject.lastIndexOf(x,start)
參數說明:x,表示需要檢索的元素,start表示從何處開始檢索(下標值),如果start為負數表示從倒數第幾個元素開始檢索。


    【函數】
就是一塊javascript代碼,被定義一次,但可執行和調用多次。js中的函數也是對象,,所以他也可以像其他對象那樣操作和傳遞

,因此,js中的函數常被稱為函數對象。定義函數的方式有兩種:函數聲明和函數表達式。

    【函數聲明】
就是創建函數的一種方式,他有一個重要的特征:函數聲明提升,即函數聲明前置。意味著即使函數聲明在在語句的後面,在執行

代碼之前都會先讀取函數聲明。
函數聲明格式:
function add(a,b){
  return a+b;
}
(它以function開頭,擁有一個函數名,沒有括弧,沒有嘆號,也沒有賦右值)


    【對象】
javascript中的所有食物都是對象,如:字元串,數組,數值,函數等。每個對象帶有屬性和方法。

對象屬性:反映該對象某些特定的性質,如:字元串長度,圖像長度等。
對象方法:能夠在對象上執行的動作,比如:表單的提交(submit),時間的提取(getyear)。

    【window對象】
window對象是BOM的核心,window對象指的是當前的瀏覽器視窗,他表示瀏覽器的一個實例。在瀏覽器中window對象有雙重角色,它

即是通過javascript訪問瀏覽器視窗的一個介面,也是ECMAScript規定的Global對象,這意味著在網頁中定義的任何對象、變數、

函數,都以window作為其Global對象。因此,所有全局作用域中聲明的變數、函數都會成為window對象的屬性和方法。雖然全局變

量會成為window對象的屬性,但是,定義全局變數和在window對象上直接定義屬性還是有區別:全局變數不能通過delete刪除,而

直接在window對象上定義的可以。記住:嘗試訪問未聲明的變數會有錯,但是通過window對象查詢可以知道那個可能未聲明的變數

存在。

    【this對象】
javascript中的this比較靈活,在不同的環境下,同一個函數在不同的調用方式下,this都有可能不同。
在全局作用域中,this一般指向全局對象,在瀏覽器裡面,這個全局對象就是window。
在一般函數的中,this任然指向全局對象,在瀏覽器里,就是window。但是,在嚴格模式下,調用一般函數的this會得到一個

undefine值。
總的來說,在全局函數中,this等於window,而當函數被作為某個對象的方法調用時,this等於那個對象,特別的,匿名函數的執

行環境具有全局性,因此其this對象通常指向window。(匿名函數:創建一個函數,並將它賦值給變數functionname,在這種情況下

創建的函數叫做匿名函數)

    【DOM及DOM操作】
文檔對象模型DOM定義訪問和處理html文檔的標準方法。DOM和html文檔呈現為帶有元素(即標簽)、屬性(元素屬性)和文本(向

用戶展示的內容)的樹結構(節點樹)。

DOM操作有:
createElement(element):創建一個新的元素節點;
createTextNode():創建一個包含著給定文本的新文本節點
appendChild():指定節點的最後一個子節點列表之後添加一個新的子節點;
insertBefore():將一個給定節點插入到一個給定元素節點的給定節點前面;
removeChild():從一個給定元素中刪除一個節點;
replaceChild():把一個給定父元素里的一個節點替換為另一個節點。

順序有點亂,但是很迫不急的發出去了!希望能收到大神們的意見,謝謝!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如何使用CSS來製作圖形,比如說圓形,半圓形,三角形等。今天我特意在網上查閱了一下,介紹這樣的教程還是蠻多的,因此我也決定整理一份相關教程出來與大家一起分享。 很少會有人意識到,當瀏覽器繪製的border,會有一個角度的問題。我們就是得用這樣的一個技巧來製作三角的效果。我們只需要保證一邊的邊框是有... ...
  • × 目錄 [1]寫法 [2]增強 [3]實現 前面的話 本文先詳細介紹回到頂部的5種寫法,然後對其實現功能增加,最後得到最終實現 寫法 【1】錨點 使用錨點鏈接是一種簡單的返回頂部的功能實現。該實現主要在頁面頂部放置一個指定名稱的錨點鏈接,然後在頁面下方放置一個返回到該錨點的鏈接,用戶點擊該鏈接即可 ...
  • domManip 這個函數的歷史由來已久,從 jQuery 1.0 版本開始便存在了,一直到最新的 jQuery 版本。可謂是元老級工具函數。 domManip 的主要功能是為了實現 DOM 的插入和替換。具體共為以下 5 個函數服務 內部後插入(append) 內部前插入(prepend) 外部前 ...
  • 先知BOM,再知DOM BOM <a href="#">BOM</a> DOM* <a href="#">DOM</a> javaScript中的DOM操作 jQuery中的DOM操作 java中的DOM操作 基於JavaScript的DOM操作 DOM:文檔對象模型,文檔可以是.xml .html ...
  • 作為當代前端,前後端的界限越來越小,要想走的更穩,學習Linux操作系統的相關知識是必不可少的。 為什麼伺服器端採用linux操作系統? 1.linux相對於windows的性能更加穩定 2.前期投入成本低,相比於windows的伺服器產品,linux是完全開源免費的,linux支持最小化安裝,在相 ...
  • 一、圖片格式為png 1.shift+按住滑鼠左鍵,拉出參考線。 2.使用切片工具切出圖片 3.導出圖片:文件-儲存為web所用格式-預設(png-24)-選中需要導出圖片-點擊儲存-切片(選中用戶的所有切片)-保存(保存在桌面上) 二、圖片格式為psd 1.新建一個文檔 2.圖層中找到需要的圖層- ...
  • gitHub地址:https://github.com/lily1010/vue_learn/tree/master/lesson05 一 過濾器寫法 {{ message | Filter}} 二 Vue自帶的過濾器:capitalize 功能:首字母大寫 上面代碼輸出:Abc 三 Vue自帶的過 ...
  • HTML <b> 標簽 所有瀏覽器都支持 <b> 標簽。 定義和用法 <b> 標簽規定粗體文本。 所有瀏覽器都支持 <b> 標簽。 定義和用法 <b> 標簽規定粗體文本。 定義和用法 <b> 標簽規定粗體文本。 註釋:根據 HTML5 規範,在沒有其他合適標簽更合適時,才應該把 <b> 標簽作為最後 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...