菜鸟学习Javascript20170116
9.流程控制
順序結構
普通的一行行執行代碼
?條件結構--分支結構--選擇結構
? ? ? ? ?1.單路分支
? ? ? ??? ? ? If(條件){ ?條件成立時執行碼 ? ??}
? ? ? ??2.雙路分支
? ? ? ??? ?If(條件){?
? ? ? ? ? ? ? ? ? ? ? ?條件成立時執行的代碼
? ? ? ? ? ? ? ? ??}
? ? ? ? ? ? else{
? ? ? ? ? ? ? ? ? ?條件不成立時執行的代碼
? ? ? ? ? ? ? ? ?}
? ? ? ??3.多路分支
? ? ? ? ? ?用于范圍
? ??? ? if(條件1)
? ? ? ? ? ? ? ? ?{ 條件1成立時執行的代碼}
? ? ? ? ?else? if(條件2)
? ? ? ? ? ? ? ? ? { 條件2成立時執行的代碼}
? ? ? ? ? ? ? ? ? ?---?
? ? ? ? ? else? if(條件 n)
? ? ? ? ? ? ? ? ? { 條件n成立時執行的代碼}else{ 條件1、2至n不成立時執行的代碼}
? ? ? ?單個匹配
? ? ???switch(表達式)
? ? ? ? ? ?{
? ? ? ? ? ? ? case值1:執行代碼塊 1break;
? ? ? ? ? ? ? case值2:執行代碼塊 2break;
? ? ? ? ? ? ? ...
? ? ? ? ? ? ? case值n:執行代碼塊 nbreak;
? ? ? ? ? ? ?default:與 case值1 、 case值2...case值n 不同時執行的代碼
? ? ? ?}
? ? ? 4.嵌套分支
? ? ? ? ???If(){
? ? ? ? ? ? ? ? ? ? ?If(){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Switch(){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ?循環結構
? ? ? ?While()
? ? ? ? ? ? ? ? ?while(判斷條件){? ? 循環語句 }
? ? ? ? Do-while()
? ? ? ? ? ? ????do{? ? 循環語句 }while(判斷條件)?
? ? ? ?For()
? ? ? ? ? ? ?for ?(初始化變量;循環條件;循環迭代)
? ? ? ? ? ? ? ? ? ?{? ? ? ? 循環語句? }
? ? ??? ? ? ? js中for循環用的最多
? ? ? ? ? ? For(var i=1;i<=9; i++){
? ? ? ? ? ? ?For(var j =1; j<=i; j++)
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Document.write(j+”x”+i+”=”+(j*i)+””+””)
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? Document.write(“<br>”);
??? ? ?}
?
10.函數
????Javascript中的函數。
????函數:是一段完成“指定功能”的已經“命名”的代碼段。
????函數只用“調用”才能使用到,調用,通過名稱(可以在聲明之前,也可以在聲明之后)【可以重復調用】。
?
????或者
????function 函數名()
????{
????函數體;
????}
????????
????function text[函數名](a,b,c,d,參數5,){
??????功能段(一條,活多條)
??????Return 值
????}
????例子function add(x,y){
????Sum = x + y;
????Document.write(sunm);
????}
?????
????add(4,5);
?????
??
????text();【函數調用,引號不能省】
????1.函數名
????2.參數:根據需要使用參數
????3.函數體(功能)
????4.返回值(可選)
?????
????函數名不加()時,這個函數名就代表整個這個函數
?????
????回調函數 ,聲明
?
????????使用情況:
????????1.函數的作用 -- 決定我去不去使用
????????2.函數的參數 --決定我怎么用
????????3.返回值 ????--決定我使用后如何處理
11.函數默認值設置和內置函數
變量
全局變量:在函數外面聲明的變量。
局部變量:在函數內部聲明的變量,只有在函數內部使用,函數結束失效。
初始化默認參數
?
? ? ? ? ? ?<script>
function text(a,b,c)
{?
a = a ? a : 1;//如果a=a,則輸出a,不等于輸出1
b = b ? b : 2;
c = c ? c : 3;
?
alert(a+","+b+","+c);
}
text();//函數調用
</script>
函數參數初始化
通過arguments改變參數個數
?
? ? ? ? ? <script>
function canshubutong(a,b){
alert(arguments.length);
alert(arguments[3]);
}
canshubutong(1,2,4,6);
</script>
arguments改變參數
不管默認幾個參數,調用函數愿意輸出幾個就幾個,arguments就是這么一個任性的存在。
內置函數
parseInt() 函數可解析一個字符串,并返回一個整數。ps(內置函數很多,只是舉例一個)
變量
全局變量:在函數外面聲明的變量。
局部變量:在函數內部聲明的變量,只有在函數內部使用,函數結束失效。
12.javascript對象
????1.基于對象的操作方式(面向對象封裝、繼承、多態)
????2.將相關的操作使用一個對象完成,看作是一個整體
????Javascript ?類
???????????????
?????字符串對象
??????數學對象
??????數組
??????時間對象
?????
????對象中存的內容?
??????一。屬性(變量)
??????二。方法(函數)
?????都是和這個對象相關的
?????
????1.聲明對象
????2.使用對象
????3.使用系統對象
????步驟 1.找到對象
?????????2.實例化對象
?????????3.使用對象
????對象實例.屬性 (取值 ,賦值)
????對象實例[“屬性名”]
????對象實例.方法
?
????系統內置對象?
????自定義對象?
????和對象有關的一些操作
????遍歷對象
????
????遍歷對象兩個方式
????For(變量 in 對象){
????}
?????
????With(對象){
???????所有方法如果不加對象都是 括號對象的方法
????}
????群組討論給出理解:
?????
????number,string,boolean,undefined,null五種基本數據類型和Object復雜數據類型(基本引用類型),
基本類型不是對象,而他們具備一些方法屬性,是因為在訪問這個基本類型時后臺自動創建了一個對應的基本包裝類型的對象,在代碼自行完立即銷毀,
引用類型一直存在于當前作用域,基本包裝類型只存在一行代碼的執行瞬間,然后立即被銷毀
Object?/?Array?/?Function?/?Date?/?RegExp?/?Error?/?Map?/?Set?…引用類型
Object基本引用類型,Array、Function等都是Object的實例
?????
????提升:
????衍生點:typeof?a(判斷a的數據類型)?a?instanceof?b(判斷a是否是b的實例)?a.constructor(獲取a的構造函數)
?
13.Javascript內置對象應用
Math 靜態對象,不用new。
常見用方法:取上 ceil()
????????????隨機random()
????????????割舍floor()
????????????四舍五入 round()
????????????最大max(x,y)
????????????最小min(x,y)
?
正則表達式對象:
????????????方式一:re ?= ?//
????????????方式二:re ?= new RegExp();
?
????????????例子
????????????Var ??zz = /^a/i;
????????????Var ??zz = new RegExp(“^a”,“i”)
????????????Alert(typeof(xx));
?
14.數組的聲明與應用
一. 數組的作用
???????????只要是批量的數據都需要使用數組聲明
?
二.如何聲明數組
???????????1.快速聲明數組
?
????????????Var 數組名字 = [元素1,元素2,元素3,元素……];
????????????Var ??name = [“zhangsan”,”lisi”,wangwu”];
????????????Var ?arrs = [[“aaa”,”bbb”,”ccc”],[1,2,3,4],];
?
????????????2. 使用Array對象
Var arr =new ?Array(“元素1”,“元素2”);
?
三.遍歷數組
?
?
四.數組的處理{內置處理方法}
sort()對數組的元素進行排序
?
???var ?arrary = [1,9,4,3,6,8,2,7,0];
????arrary.sort();//sort(方式是排序,而且是數字個數相等的排序)
????/*倒敘排列*/
????arrary.sort(function(a,b){
????if(a > b){
????return -1;
????}
????else if(a==b){
????return 0;
????}
????else{
????return 1;
????}
????
????})
????
????document.write(arrary);
?
????還有 push()向數組的末尾添加一個或更多元素,并返回新的長度。
?????unshift()?向數組的開頭添加一個或更多元素,并返回新的長度。
?????shift()刪除并返回數組的第一個元素
?????????join() ???把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔
15.?DOM操作
?作用
??????DOM(Document Object Model)
??????1.document 文檔 ?HTMl XML文件
????????標記語言(標簽似的)
????????<body>
??????????????<div>
????????????????????<a>gaga</a>
??????????????</div>
????????</body>
??????2.Object 對象(HTML元素 轉成的對象(js對象))
???????????注意:如果使用js操作HTML文檔,就需要選中HTML文檔結構轉成JS對象
?????????????a。操作屬性
?????????????B。操作內容
???????????????????innerText(IE) textContent(火狐)
???????????????????innerHTML
???????????????????outeText
???????????????????outHTML
?????????????????表單
?????????????????????Value ?例如 input標簽和textare
?????????????C。操作樣式
???????????????????aobj.style.backgroundColor = “red”;
???????????????????aobj.style.fontSize = “75px”;
?????????????????
???????????????????ClassName
???????????????????aobj.className = “text”;
???????????????????aobj.className+=”??demo”;
?
?
???????????????????利用for in 遍歷所有標簽屬性和方法
?
???????????????????Var pro = “”;
???????????????????For ( pro in 對象名)
????????????????????{
??????????????????????Document.write(“a.”+pro+”=”+aobj[pro]+”<br>”);
????????????????????}
????????????????????
??????????有了以上三點的操作之前先轉成對象。
?
??????????轉成對象的兩種形式:
??????????????1.標記名(多個):id(唯一) ,name(多個)。
??????????????Document 中的三個方法
??????????????
??????????????Var ?objs = document.getEleMentsByTagName(“div”);
??????????????Var ?objs = document.getEleMentById(“one”);
??????????????Var ?objs = document.getEleMentByName(“two”);
?
??????????????2.通過數組
?
??????????????Document.all = [object]
????????????????????Document.appplets = [object]
????????????????????Document.embeds
????????????????????Document.script
????????????????????Documnet.forms
????????????????????Document.p_w_picpaths
????????????????????Doucment.anchors
????????????????????doucment.styleSheets
????????????????????Doucment.links
?
?
????????????????????Document.body
????????????????????Document.frames
????????????????????Document.title
?
?????????????數字訪問 7中方式
????????????????Document.forms[1] ????????????????
????????????????Document.forms[“名字”]
????????????????Document.forms.item[1]
????????????????Document.forms.item(“名字”)
????????????????Document.forms.名字
????????????????Document.名字
????????????????Document[“名字”]
?
????????????????中括號[ ] 和 點 . 相當于 (……的)
????????????????
??????????????????????
16.?DOM操作 之model
在 HTML DOM 中,所有事物都是節點。DOM 是被視為節點樹的 HTML。
?一、講文檔想成一個倒數,每一個部分(元素,內容,屬性,注釋)都是一節點。
?二、只要知道一個節點,按照關系找到其他節點
???????父節點 ??????????????????????parentNode
???????子節點(第一個,最后一個) ????childNodes ???????firstChild ??????????lastCHild
???????同胞節點(上一個 下一個) ???nextSibling ???????previousSibling
????????
??????每個節點只有一個父節點多個子節點
三、找到節點,節點類型nodeType,節點名nodeName,節點值nodeValue
?
??????每個節點都擁有包含著關于節點某些信息的屬性。
?
??????nodeName 屬性含有節點的名稱。
??????元素節點的nodeName是標簽名稱
??????屬性節點的nodeName是屬性名稱
??????文本節點的nodeName永遠是#text
??????文檔節點的nodeName永遠是#document
?
?????nodeType 屬性可返回節點的類型
?
元素 ????????????返回值?1
屬性 ??????????????:?2
文本? ? ? ? ? ? ? ? ? ? ? 3
注釋? ? ? ? ? ? ? ? ? ? ? 8
文檔? ? ? ? ? ? ? ? ? ? ? 9
?
?
可以在一個文檔流中
? 1。創建節點
? ? ?document.createElement(“img”);
? ? ?appendChild();
? ? ?insertBefore();
? 2。添加到文檔流中
? 3。刪除節點
? ? ?removeChild();
轉載于:https://blog.51cto.com/ls123/1892100
總結
以上是生活随笔為你收集整理的菜鸟学习Javascript20170116的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: is_numeric函数的引起的一个BU
- 下一篇: 面试之Java知识整理