javascript-知識點集合

第三課、JavaScript的語法與關鍵字
一、JavaScript的語法
字符串、數字、布爾、數組、對象、Null、Undefined
一、js的變量區分大小寫
username userName  這是兩個不一樣的變量
二、每行結尾的分號無關緊要,若是語句的結束處沒有分號,那麼js會自動將這行代碼的結尾做爲語句的結尾。
alert("Hello World");
alert("Hello World")
三、變量是弱類型
定義變量時至使用var運算符。
好比:var username="tom";正確
     var age=30;正確
     int age=30;錯誤
四、使用大括號標籤代碼塊
{  //代碼} 被封裝在大括號內的語句按照順序執行。

五、註釋
一、單行註釋 //
   單行註釋使用雙斜線"//" 開頭,在"//"後面的文字即爲註釋內容,
   註釋的內容在代碼執行過程當中不起做用。
   var now=new Date();//獲取日期對象
二、多行註釋
多行註釋以"/*"開頭,以"*/"結尾,在二者之間的內容爲註釋內容,
在代碼執行過程當中不起任何做用。
/*
*功能:獲取當前日期
*做者:tom
*/
function getClock(){
//內容
}
二、JavaScript中的關鍵字
var username="tom";
關鍵字不能用做變量名,函數名以及循環標籤。
abstract  continue  finally    instanceof  private  this
boolean   default   float      int         public   throw
break     do        for        interface   return   typeof
byte      double    function   long        short    true
case      else      goto       native      static   var
catch     extends   implements new         super    void
char      false     import     null        switch   while
class     final     in         package     with     synchronized

第四課、JavaScript的數據類型

var flag=true;

一、數值型
整型:123   //十進制
     0123  //八進制,以0開頭
     0x123 //十六進制,以0x開頭

浮點型:整數部分加小數部分組成,只能用十進制來表示,不過可使用科學記數法
3.1415926  //標準形式的浮點數
3.14E9     //採用科學記數法來表示,表明的是3.14乘以10的9次方

二、字符型

字符型數據是使用單引號或者雙引號括起來的一個或者多個字符。
'a' 'Hello World'
"a" "Hello World"
 
JavaScript與Java不同,js沒有char數據類型,若是要表示單個字符,必須
使用長度爲1的字符串。

單引號包含雙引號:'你們好,我叫"tom"'
雙引號包含單引號:"你們好,我叫'tom'"
三、布爾型

布爾型數據只有true或者false。在js中也可使用整數0表明false,使用非0的
整數來表明true。
四、轉義字符

以反斜槓開頭的不可顯示的特殊字符一般稱爲控制字符,也被稱爲轉義字符。
\b 退格
\n 換行
\f 換頁
\t Tab符
\r 回車符
\' 單引號
\" 雙引號
\\ 反斜槓

五、空值

null ,用於定義空的或者不存在的引用。

var a=null;

六、未定義值

已經聲明可是沒有賦值的變量。

var a;
alert(a);
undefined 是關鍵字,用來表明未定義值。

第五課、變量的定義與使用

一、變量的命名規則

變量名由字母、數字、下劃線組成,可是不能以數字開頭。
不能使用JavaScript中的關鍵字。
嚴格區分大小寫。
username  userName

二、變量的聲明

var variable;

可使用一個var 聲明多個變量,好比
var now,year,month,date;

能夠在聲明變量的同時對它進行賦值,也就是初始化。
var now="2015-10-10",year="2015",month="10",date="10";

若是隻是聲明瞭變量,沒有賦值,那麼該變量的默認值是undefined

JavaScript是弱類型,聲明的時候不須要指定變量的類型,變量的類型將根據
變量的值來肯定。

全局變量的聲明:一、在函數體外聲明的都是全局變量。不管是否有var 聲明。
二、在函數體內部使用var聲明的變量是局部變量,不使用var
聲明直接賦值的變量是全局變量。

var quanju=123;//這是全局變量
//若是給一個還沒有聲明的變量賦值時,JavaScript會自動使用該變量建立一個
//全局變量。
 quanju1="abc";//這也是全局變量

 function test(){
var quanju3="aaaaa";//這是局部變量
quanju2="12345";//這也是全局變量
test2();
 }

 function test2(){
alert(quanju2);
 }

三、變量的做用域

變量的做用域是指變量在程序中的有效範圍。
全局變量:定義在全部函數以外,做用於整個代碼的變量。
局部變量:定義在函數體內,只做用於函數體內的變量。

第六課、運算符的應用

一、賦值運算符
var userName="tom";//簡單賦值運算符
複合賦值運算符
a+=b; //至關於a=a+b;
a-=b; //至關於a=a-b;
a*=b; //至關於a=a*b;
a/=b; //至關於a=a/b;
a%=b; //至關於a=a%b;
a&b=b;//至關於a=a&b;
a|=b; //至關於a=a|b;
a^=b; //至關於a=a^b;

二、算術運算符

+  alert(3+5); 
-  *  /  %
++ i=1;j=i++;//j是1,i是2。由於i++是先用後加。
  i=1;j=++i;//j是2,i是2。由於++i是先加後用。
-- 同理。
除法運算時,0不能做爲除數,若是0是除數,則返回結果爲Infinity。

三、比較運算符

<  小於   alert(1<9);//true
>   大於 alert(1>9);//false
<=
>=
==  等於       只根據表面值進行判斷,不涉及數據類型。alert("11"==11);
=== 絕對等於   不只判斷表面值,還要判斷數據類型是否同樣。
!=  不等於     只根據表面值進行判斷,不涉及數據類型。
!== 不絕對等於 不只判斷表面值,還要判斷數據類型是否同樣。

四、邏輯運算符

!    邏輯非。!真=假,!假=真  !("11"===11) 返回true
&&   邏輯與。只有當兩個操做數的值都爲true的時候,結果纔會true。 
false&&true 返回值是false
true&&false 返回值爲false
true&&true  返回值爲true
好比: (1<2)&&(2>3) 返回的是false
||   邏輯或。只要兩個操做數有一個是true,則結果就是true。
false||true  返回值是true
true||false  返回值是true
false||false 返回值是false
好比: (1<2)||(2>3) 返回的是true
五、條件運算符

條件運算符是JavaScript支持的一種特殊的三元運算符。
語法格式:  操做數?結果1:結果2;
   若是操做數的值爲true,則整個表達式的結果爲結果1
            若是操做數的值爲false,則整個表達式的結果爲結果2
   var a=30;
   var b=28;
   var c=a>b?a:b;//30

六、字符串運算符

鏈接字符串的兩種方式
+ 。var a="Hello"+" World";
+=。a+=" Hello EveryOne!";//至關於a=a+"Hello EveryOne!";

第七課、流程控制之if、switch語句

一、if條件判斷語句
一、if(expression){
//expression爲true的時候執行裏面的內容
  }

二、if(expression){
//expression爲true的時候執行裏面的內容
  }else{
//expression爲false的時候執行裏面的內容
  }

三、if(expression1){
//expression1爲true的時候執行裏面的內容
   }else if(expression2){
//expression2爲true的時候執行裏面的內容
   }else if(expression3){
//expression3爲true的時候執行裏面的內容
   }else{
//這個else無關緊要。若是有的話,則上述條件
//都不知足的時候執行else
   }
二、switch語句

語法格式:
switch(expression){

case judgement1:statement1:break;
case judgement2:statement2:break;

...
default:defaultstatement;
}
示例:
var username="tiger2";
switch(username){
case "jerry":alert("小老鼠");break;
case "tom":alert("貓");break;
case "tiger":alert("老虎");break;
default:alert("沒有匹配到任何值");
}

課下做業:把以上示例用if語句來實現。



第八課、流程控制之for、while、do-while語句

一、for循環語句
語法格式:for(①initialize;②test;④increment){
③statement
 }
 ①->②(true)->③->④->②(true)->③->④->......
 ①->②(true)->③->④->②(false) for循環結束
 示例:
var sum=0;
for(var i=1;i<=10;i++){
sum+=i;
}
alert("總和爲:"+sum);

二、while循環語句

while循環的循環體可能一次都不執行。

語法格式:while(①expression){
②statement
}
①(true)->②->①(true)->②.....
①(false) 直接終止while循環。
示例:
var sum1=0;
var i=100;
while(i<=1){
sum1+=i;
i++;
}
alert("while總和爲:"+sum1);
三、do-while循環語句
do-while循環的循環體可以保證至少執行一次。
語法格式:
do{
①statement
}while(②expression);

示例:
var sum2=0;
var i2=1;
do{
sum2+=i2;
i2++;
}while(i2<=10);
alert("do-while總和爲:"+sum2);

while循環是 先判斷條件是否成立,而後再根據判斷的結果是否執行循環體。也就是
說循環體有可能一次都執行不了。
do-while循環是 先執行一次循環體,而後再判斷條件是否成立。因此無論條件
是否成立,至少可以執行一次。


第九課、函數的定義與調用

一、函數的定義

function functionName([parameter1,parameter2,...]){
statments;
[return expression;]
}
function是必需要寫的,由於這是定義函數的關鍵字。
functionName 是函數名,必需要寫,並且在同一個頁面中,函數名是惟一的。
而且區分大小寫。
parameter:可選參數,用於指定參數列表。當使用多個參數時,參數間使用
逗號進行分隔。一個函數最多能夠有255個參數。
statements:必選參數,這是函數體,用於實現函數功能的語句。
expression:可選參數,用於返回函數值。expression能夠是任意的表達式、變量或常量。
//函數定義
示例:function account(price,number){
var sum=price*number;
return sum;
    }

    var i=account(10,5);//函數調用

二、函數的調用

function checkName(){
var str=form1.userName.value;
if(str==""){
alert("用戶名不能爲空");
}else{
alert("用戶名能夠註冊");
}
}

<body>
<form name="form1" method="post" action="">
請輸入姓名:<input type="text" name="userName" id="userName" size="30"/>
<br/>
<input type="button" value="檢測" onclick="checkName()"/>
</form>
</body>


第十課、事件與事件處理

一、事件
什麼是事件?例如在頁面載入完畢時,將觸發onload(載入)事件;當用戶單擊按鈕時,
將觸發按鈕的onclick事件等。
經常使用事件:
onabort: 對象載入被中斷時觸發
onblur: 元素或窗口自己失去焦點時觸發
onchange: 改變<select>元素中的選項或其餘表單元素失去焦點,而且在其
獲取焦點後內容發生過改變時觸發
onerror: 出現錯誤時觸發
onfocus: 任何元素或窗口自己得到焦點時觸發
onkeydown: 鍵盤鍵(包括Shift、Alt等)被按下時觸發
onkeypress: 鍵盤鍵被按下,併產生一個字符時觸發。也就是說按下Shift或Alt等鍵
不會觸發
onkeyup: 釋放鍵盤上的按鍵時觸發
onload: 頁面徹底載入後觸發
onunload: 頁面徹底卸載後觸發
onclick: 單擊鼠標左鍵時觸發。當光標的焦點在按鈕上,並按Enter鍵時也會觸發
ondblclick: 雙擊鼠標左鍵時觸發
onmousedown: 單擊任何一個鼠標按鍵時觸發
onmousemove: 鼠標在某個元素上移動時持續觸發
onmouseout: 鼠標從指定的元素上移開時觸發
onmouseover: 鼠標移到某個元素時觸發
onmouseup: 釋聽任意一個鼠標按鍵時觸發
onreset: 單擊重置按鈕時,在<form>上觸發
onresize: 窗口或框架的大小發生改變時觸發
onscroll: 在任何帶滾動條的元素或窗口上滾動時觸發
onselect: 選中文本時觸發
onsubmit: 單擊提交按鈕時,在<form>上觸發

二、事件處理

事件處理程序是用於響應某個事件而執行的處理程序。事件處理程序能夠是任意的
JavaScript語句,一般使用函數來對事件進行處理。

第一種方式,在HTML中綁定:
<script language="javascript">
function save(){
alert("保存按鈕被點擊");
}
 
</script>

<input type="button" name="save" value="保存" onclick="save()"/>

第二種方式,在JavaScript中綁定:
①<input type="button" name="save" id="save" value="保存"/>

<script language="javascript">
 
②var bt_save=document.getElementById("save");
bt_save.onclick=function(){
alert("保存按鈕被單擊");
};
 
</script>

第二種方法要注意先執行①,才能執行②。  這樣的話,須要把js放在html的後面,那麼就要放在</body>的上面就能夠了



第十一課、String對象介紹

一、屬性

在JavaScript中能夠用單引號或者雙引號括起來的一個字符串看成一個字符串對象
的實例,因此能夠在某個字符串後面加上.去調用String對象的屬性和方法。

length:返回String對象的長度。表明的是字符串當中字符的個數。
      每一個漢字按一個字符計算
"你們好".length;//值爲3.
"Hello World".length;//值爲11

二、經常使用方法
indexOf(subsString[,startIndex])
用於返回第一次出現子字符串的字符位置。若是沒有找到指定的子字符串,
則返回-1。
subString:必選參數。要在String對象中查找的子字符串
startIndex:可選參數。
示例:
 var str="admin@java1995.com";
 var index=str.indexOf("@",6);
 alert(index);

substr(start[,length])
用於返回指定字符串的一個子串。
start:必選參數,用於指定獲取子字符串的起始下標。若是是一個負數,
     那麼表示從字符串的尾部開始算起始位置。-1表明最後一個字符,
     -2表明倒數第二個字符,以此類推。
length:可選參數,用於指定字符串中字符的個數。若是省略,則返回從
start開始位置到字符串結尾的子串。
 
示例:
 var word="One World One Dream!";
 var subs=word.substr(4,5);// World

 var word="One World One Dream!";
 var subs=word.substr(4);// World One Dream!

substring(from[,to])
from:用於指定要獲取子字符串的第一個字符在string中的位置
to:可選參數,指定最後的位置。
[from,to)  包含from,不包含to.因此若是要獲取to的字符,須要to+1
示例: 
 var word="One World One Dream!";
 var subs=word.substring(4,8+1);// World

split(delimiter[,limit])
用於將字符串分割爲字符串數組。
delimiter:指定的分隔符
limit:可選參數,用於指定返回數組的最大長度。
返回值:一個字符串數組

示例:
var str="www.java1995.com";
 var arr=str.split(".");
 for(var i=0;i<arr.length;i++){
alert(arr[i]);
 }
 //以上代碼彈出的值依次爲:www java1995 com

var str="www.java1995.com";
 var arr=str.split(".",2);
 for(var i=0;i<arr.length;i++){
alert(arr[i]);
 }
 //以上代碼彈出的值依次爲:www java1995



第十二課、Math與Date對象介紹

一、Math對象

在使用Math對象時不能使用new關鍵字建立實例,而是直接使用對象名.成員 這種格式
 alert(Math.PI);
 alert(Math.random());
 alert(Math.max(3,76,21,90,5,6,-5,-903));
 alert(Math.min(3,76,21,90,5,6,-5,-903));

二、Date對象
var now=new Date();//建立Date對象
var year=now.getFullYear();//獲取年份
var month=now.getMonth()+1;//得到月份
var date=now.getDate();//獲取日期
var day=now.getDay();//獲取星期
var hour=now.getHours();//獲取小時
var minutes=now.getMinutes();//獲取分鐘
var sec=now.getSeconds();//獲取秒


第十三課、Window對象介紹

    window對象即爲瀏覽器窗口對象,是全部對象的頂級對象。window對象提供了許多
屬性和方法,這些屬性和方法被用來操做瀏覽器頁面的內容。

    window對象和Math對象同樣,也不須要使用new關鍵字建立對象實例,而是直接使用
對象名.成員 的格式來訪問其屬性或方法。

一、window對象的經常使用屬性

document 對窗口或框架中含有文檔的document對象的只讀引用
defaultStatus 一個可讀寫的字符,用於指定狀態欄中的默認消息
frames 表示當前窗口中全部的frame對象的集合
location 用於表明窗口或框架的location對象。若是將一個URL賦給該屬性,、
那麼瀏覽器將加載並顯示該URL指定的文檔。
length 窗口或框架包含的框架個數
history 對窗口或框架的history對象的只讀引用
name 用於存放窗口的名字
status 一個可讀寫的字符,用於指定狀態欄中的當前信息
top 表示最頂層的瀏覽器窗口
parent 表示包含當前窗口的父窗口
opener 表示打開當前窗口的父窗口
closed 一個只讀的布爾值,表示當前窗口是否關閉。
self 表示當前窗口
screen 對窗口或框架的screen對象的只讀引用,提供屏幕尺寸、顏色深度
等信息。
navigator 對窗口或框架的navigator對象的只讀引用,經過navigator對象
能夠得到與瀏覽器相關的信息
二、window對象的經常使用方法

因爲window對象使用十分頻繁,並且又是其餘對象的父對象,因此在使用window對象
的屬性和方法時,JavaScript容許省略window對象的名稱。

alert() 彈出一個警告對話框
confirm() 顯示一個確認對話框,單擊確認按鈕時返回true,
不然返回false
prompt() 彈出一個提示對話框,並要求輸入一個簡單的
字符串
blur() 把鍵盤的焦點從頂層瀏覽器窗口中移走
close() 關閉窗口
focus() 把鍵盤的焦點賦予給頂層的瀏覽器窗口
open() 打開一個新窗口
scrollTo(x,y) 把窗口滾動到(x,y)座標指定的位置
scrollBy(offsetx,offsety) 按照指定的位移量滾動窗口
setTimeout(timer) 在通過指定的時間後執行代碼
clearTimeout() 取消對指定代碼的延遲執行
moveTo(x,y) 將窗口移動到一個絕對位置
moveBy(offsetx,offsety) 將窗口移動到指定的位移量處
resizeTo(x,y) 設置窗口的大小
print() 至關於瀏覽器工具欄的打印按鈕
setInterval() 週期執行指定的代碼
clearInterval() 取消週期性的執行代碼

第十四課、DOM技術概述 
 一、DOM概述 DOM是一種與瀏覽器、平臺及語言無關的接口,可以以編程方式訪問和操做文檔。
 一、DOM是Document Object Model(文檔對象模型)的簡稱。 
 二、提供了訪問、操做該模型的API。
 二、DOM的分層結構 在DOM中,文檔的層次結構被表示爲樹形結構。樹是倒立的,樹根在上,枝葉 在下面,樹的節點表示文檔中的內容。 在樹形結構中, 直接位於一個節點之下的節點被稱爲該節點的子節點; 直接位於一個節點之上的節點被稱爲該節點的父節點; 具備相同父節點的節點是兄弟節點; 一個節點的下一個層次的節點集合是該節點的後代; 一個節點的父節點,祖先節點以及其餘全部位於他之上的節點都是該節點的祖先;



第十五課、DOM遍歷文檔

一、遍歷文檔
在DOM中,HTML文檔各個節點被視爲各類類型的Node對象,而且將HTML文檔表示爲
Node對象的樹。

   Node對象的屬性

屬性 類型 描述
parentNode Node 節點的父節點,沒有父節點是爲null
childNodes NodeList 節點的全部子節點的NodeList
firstChild Node 節點的第一個子節點,沒有則爲null
lastChild Node 節點的最後一個子節點,沒有則爲null
nodeName String 節點名
nodeValue String 節點值
previousSibling Node 上一個兄弟節點
nextSibling Node 下一個兄弟節點
nodeType short 表示節點類型的常量
Element <a > <img >
Text  文本


第十六課、DOM操做文檔

Node對象的經常使用方法

方法 描述
insertBefore(newChild,refChild) 在現有節點refChild以前插入節點
newChild
replaceChild(newChild,oldChild) 將子節點清單中的子節點oldChild
換成newChild,並返回oldChild節點
removeChild(oldChild) 將子節點清單中的子節點oldChild
刪除,並返回oldChild節點

appendChild(newChild) 將節點newChild添加到該節點的子節點
清單末尾。若是newChild已經在樹中,
則先將其刪除

hasChildNodes() 返回一個布爾值,表示節點是否有子節點

cloneNode(deep) 返回這個節點的拷貝(包括屬性)。若是
deep爲true則拷貝全部包含的節點,不然
只拷貝這個節點。

課下做業:新增一個功能,可以刪除指定的行數。刪除以前要進行判斷輸入的內容
是否合法。


第十七課、正則表達式(1)

一個正則表達式是由普通字符(如a~z)以及特殊字符(稱爲元字符)組成的模式字符串。
該模式字符串描述在查找文字主體時待匹配的一個或多個字符串。正則表達式做爲一
個模板,將某個字符模式與所搜索的字符串進行匹配。

一、字符類

 代碼   說明       示例
[...] 匹配方括號中字符序列的任意一個 /[012]/能夠與0A1B2C中的字符0或1或2匹配
字符。其中可使用連字符"-"匹配 /[0-5]/能夠與a3g02gsf91dfs4中的0到5
指定範圍內的任意字符。 之間的任意數字字符匹配

[^...] 匹配方括號中字符序列未包含的任意 /[^012]/能夠與0A1B2C中的除0、一、2
字符。其中可使用連字符"-"匹配不 以外的任意字符匹配,在這裏匹配A或B或C
在指定範圍內的任意字符。 /[^a-z]/能夠與a3g02gsf91dfs4不在小寫
字母a-z之間的任意字符匹配。

. 匹配除了換行和回車以外的任意字符,
至關於[^\r\n]

\d 匹配任意一個數字字符,至關於[0-9] /\d\d/能夠匹配wy32k中的32

\D 匹配任意非數字字符,至關於[^0-9] /\D/能夠匹配wy3k中的w或y或k

\s 匹配任意空白字符,如空格、製表符、 /\s\d\d/能夠匹配my age is 20.中的 20
換行符等,至關於[\t\n\x0B\f\r] 注意2前面的空格。

\S 匹配任意非空白符,至關於[^\t\n\x0B\f\r] /\S/能夠匹配A B中的A或B

\w 匹配任何英文字母、數字字符以及下劃線, /\w/能夠匹配shdf82w09_+&^中的字母、
至關於[a-zA-Z0-9_] 數字、下劃線

二、量詞

代碼 說明 示例
? 匹配前一項0次或1次 /JS?/能夠匹配JScript中的JS或者JavaScript中
的J

+ 匹配前一項1次或屢次, /JS+/能夠匹配JS,也能夠匹配JSSSS或者JSSSSSS,
但至少出現1次 也就是說能夠匹配J後面出現一個或多個S。

* 匹配前一項0次或者屢次, /bo*/能夠匹配b、bo、boo、boooo之類的字符串
也就是任意次

{n} 匹配前一項剛好n次,其中n爲 /o{2}/能夠匹配book中的兩個o,也能夠匹配booook
非負整數 中任意兩個連續的o

{n,} 匹配前一項至少n次 /o{2,}/不匹配home中的o,由於至少要匹配兩個o。
因此能夠匹配good或者gooooood中的全部o

{n,m} 匹配前一項至少n次,但不能 /o{2,5}/能夠匹配book中的兩個o,也能夠匹配
超過m次,其中n、m是非負整 boooook中的5個連續的o
數,而且n<=m

在使用{n,m}時,數字與逗號之間不能有空格符

三、指定匹配位置

代碼 說明 示例
^ 匹配字符串的行開頭。 /^g/匹配good中的g,但不匹配bag中的g
^必須出如今指定字符
串的最前面才起做用。

$ 匹配字符串的行結尾。 /g$/匹配bag中的g,但不匹配good中的g
$必須出如今指定字符
串的最後面才起做用。

\b 匹配單詞的邊界 /e\b/匹配"I love seek"中love的e,不匹配seek中的e

\B 匹配單詞的非邊界 /e\B/匹配"I love seek"中seek的e,不匹配love中的e

四、使用選擇匹配符
    正則表達式的選擇匹配符只有一個"|",使用"|"能夠匹配指定的多個選項中的任意一項。
例如/World|Dream/能夠匹配"One World One Dream"中的World或者Dream

五、分組
    分組就是使用小括號將多個單獨的字符或字符類組合成子表達式,以即可以像處理一個
獨立的單元那樣,用"|"、"*"、"+"或者"?"等來處理他們。好比/J(ava)?Script/能夠匹配
JavaScript,也能夠匹配JScript  

更多資料請加入Java資源庫官方羣:253190527

Java資源庫原創教程《JavaScript腳本語言輕鬆入門》
講師:李偉

第十八課、正則表達式(2)

一、經過RegExp類的構造方法建立
\d{3}
語法格式:new RegExp(pattern[,flags])
pattern:必選參數,用於指定須要進行匹配的模式字符串。
flags:可選參數,用於指定正則表達式的標誌信息。
g:全局標誌。若是設置了該標誌,對於某個文本執行搜索或者替換時,將對
 文本中的全部匹配部分起做用,不然僅搜索或替換第一次匹配的內容。
i:忽略大小寫標誌。
m:多行標誌。若是不設置這個標誌,那麼^只能匹配字符串的開頭,$只能
 匹配字符串的結尾;若是設置了這個標誌,那麼^能夠匹配多行字符串的
 每一行的開頭,$能夠匹配多行字符串的每一行的結尾。

var objExp=new RegExp("\\d",g);

二、經過正則表達式字面量建立RegExp對象

正則表達式字面量由兩條斜線//中間加入模式匹配字符串組成。若是還要指定標誌
信息,則在最後的斜線/後面加上標誌信息,好比g或者i.
var objExp=/\d/g;

三、使用test()方法進行模式匹配
test()方法用於對一個指定的字符串執行模式匹配,若是搜索到匹配的字符,
返回true,不然返回false
var objExp=/\d/g;
objExp.test("abc");
四、使用exec()方法進行模式匹配

exec()方法返回值不是true或者false,而是當沒有搜索到匹配的字符時,返回null,
不然返回一個數組,這個數組的第一個元素包含與正則表達式相匹配的字符串,其餘
元素包含的是匹配的各個分組(用括號括起來的子表達式)

語法格式:
regExp.exec(str)


JS小技巧

1. innerHTML是符合W3C標準的屬性,而innerText只適用於IE瀏覽器,所以,儘量地去使用innerHTM


這種var x = new string ;如何聲明?

注意在函數內要使用var才能聲明局部變量






學到這兒了



分號是用來分隔可執行JavaScript語句。 
因爲函數聲明不是一個可執行語句,因此不以分號結束。

var x = function (a, b) {return a * b};
var z = x(4, 3);

以上函數其實是一個 匿名函數 (函數沒有名稱)。javascript

函數存儲在變量中,不須要函數名稱,一般經過變量名來調用html


在 JavaScript 中,不少時候,你須要避免使用 new 關鍵字。
java



匿名自我調用的函數 (沒有函數名)
node


(function () {
    var x = "Hello!!";      // 我將調用本身
})();
jquery


JavaScript 函數可做爲表達式使用:
JavaScript 函數做爲一個值使用:

arguments.length 屬性返回函數調用過程接收到的參數個數:  
function myFunction(a, b) {
    return arguments.length;
}


toString() 方法將函數做爲一個字符串返回:
function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();


函數定義做爲對象的屬性,稱之爲對象方法。
函數若是用於建立新的對象,稱之爲對象的構造函數。


function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
}

// This creates a new object
var x = new myFunction("John","Doe");
x.firstName;                             // 返回 "John"


   
   
   
   
  1. function myFunction(a, b) {
  2. return a * b;
  3. }
  4. var b = myFunction();
  5. var a =myFunction.call(b, 10, 2);
  6. document.writeln(a);

全部函數都能訪問全局變量。  正則表達式

實際上,在 JavaScript 中,全部函數都能訪問它們上一層的做用域。express

JavaScript 支持嵌套函數。嵌套函數能夠訪問上一層的函數變量。編程


仔細研究一下JS中()()這樣的寫法的問題,可能涉及到閉包的問題

JS中的~符號,能夠把函數轉換爲表達式

閉包:就是拿到本該拿不到的類中的變量


    
    
    
    
var counter = 2;function add() { var counter; return function () {return counter += 1;}};add()add()add()alert(add()());
js也是變量就近原則,因此輸出老是1

另外一個就是變量聲明、函數前置,這個對理解做用域很重要

關於閉包和this的一個很好的程序
   
   
   
   
m = 100;var obj = { m: 1, test:function(){ alert(this.m); return function(){ alert(this.m); } }}var s = obj.test();s();

簡要說明this的能力要強於prototype的做用
   
   
   
   
function test(){ this.a = 1;}test.prototype.a = 100;var p = new test;alert(p.a);
輸出結果是1

按引用傳遞的時候,會改變引用外面的值
   
   
   
   
var obj ={ name:"jingya"}function test(oo){ oo.age = 25; console.log('inner',oo);}test(obj)console.log('out',obj)
在使用getElementById調整CSS屬性的時候,要把""加上
  
  
  
  
function bb(){ document.getElementById("p_test").style.color = "red" ; document.getElementById("p_test").style.textAlign = "center" ;}
可使用this來簡化代碼
   
   
   
   
function changetext(id){id.innerHTML="Ooops!";}</script></head><body><h1 onclick="changetext(this)">Click on this text!</h1>

冒泡是內部事件先觸發


經過DOM函數修改HTML代碼
   
   
   
   
var para = document.createElement("h1")var node = document.createTextNode("this is new word")para.appendChild(node)var a = document.getElementById("div1")a.appendChild(para)

惰性載入函數
函數顆粒化
級聯函數

進制轉換
   
   
   
   
var myNumber=128;myNumber.toString(16); // returns 80myNumber.toString(8); // returns 200myNumber.toString(2); // returns 10000000

無窮大(Infinity)

NaN - 非數字值,若是是,返回true

var x = 1000 / "Apple";
isNaN(x); // returns true
var y = 100 / "1000";
isNaN(y); // returns false

JavaScript 字符串

   
   
   
   
var answer="It's alright";var answer="He is called 'Johnny'";var answer='He is called "Johnny"';
字符串使用strong>split()函數轉爲數組:
   
   
   
   
txt="a,b,c,d,e" // Stringtxt.split(","); // Split on commastxt.split(" "); // Split on spacestxt.split("|"); // Split on pipe

javascript參數的做用域
在函數的函數裏,才能訪問上一層的函數,單獨的一個function函數沒法去上一層訪問windows內的函數
   
   
   
   
var my = 10;function changetext(){ var ms = 10; function s(){ alert(ms); } s();}
RegExp
正則表達式描述了字符串的模式對象

i - 修飾符是用來執行不區分大小寫的匹配。windows

g - 修飾符是用於執行全文的搜索(而不是在找到第一個就中止查找,而是找到全部的匹配)。數組

 test()方法搜索字符串指定的值,根據結果並返回真或假。

exec() 方法檢索字符串中的指定值。返回值是被找到的值。若是沒有發現匹配,則返回 null。


    
    
    
    
var str="Visit W3CSchool";var patt1=/w3cschool/i;Visit W3CSchool
     
     
     
     
var str="Is this all there is?";var patt1=/is/g;Is this all there is?
      
      
      
      
var str="Is this all there is?";var patt1=/is/gi;Is this all there is?
       
       
       
       
var patt1=new RegExp("e");document.write(patt1.test("The best things in life are free"));true
        
        
        
        
var patt1=new RegExp("e");document.write(patt1.exec("The best things in life are free"));e

setInterval() 方法

setInterval() 間隔指定的毫秒數不停地執行指定的代碼

         
         
         
         
setInterval(function(){alert("Hello")},3000);

如何中止執行?

clearInterval() 方法用於中止 setInterval() 方法執行的函數代碼。

   
   
   
   
myVar=setInterval("javascript function",milliseconds);

setTimeout() 方法

    
    
    
    
setTimeout(function(){alert("Hello")},3000);

如何中止執行?

clearTimeout() 方法用於中止執行setTimeout()方法的函數代碼。

     
     
     
     
myVar=setTimeout("javascript function",milliseconds);

鏈式操做
在html中的onload沒有註冊函數,要否則jquery中的ready函數無法使用






相關文章
相關標籤/搜索