js(學習筆記)

來源:互聯網
上載者:User

1.js中雙單引號均可。
<a href="javascript:alert('hello')">點點</a>
<a href="#" onclick="alert('hello')">點點</a>

2.js的變數
null變數的值為空白,undefine沒有指向任何對象
var i=10;
i="aaaa";
i最後為aaaa
i=10;i類似於全域變數

3.js調試
安裝DeBugBar來協助調試

4.判斷變數初始化
var x;
if(x==null)
{}
if(typeof(x)=='undefined')
{}
if(!x)
{}
推薦用最後一種方法
if(x)//變數北初始化了或變數不為空白或變數不為0

5.函數的聲明
alert(add(1,2));
function add(i1,i2){     //最好這個大括弧不要換行,避免引起bug
  return i1+i2;
}
//alert(add(1,2));//alert()在function之前之後均可
匿名函數
var f1=function(i1,i2){return i1+i2;};(注意;的區別意義)
alert(f1(1,2));
//聲明一個函數,立刻使用

6.js物件導向基礎:
js中沒有類的文法,是用函數閉包(closure)類比出來的
function Person(name,age){//是一個函數,js沒有class,這裡是用一個函數來類比class
this.Name=name;//this.Name動態變數
this.Age=age;
this.SayHello=function(){alert(this.Name)};
}
Person p1=new Person('dan',23);
p1.SayHello();
【p1.sex='男';
alert(p1.sex);//也是動態增加屬性】

7.Array對像(相當於c#中的ArrayList,Hashtable)
是一個動態數組,無需預先定製大小
var arr=new Array();
arr[0]="zheng";
arr[1]="dan";
arr[2]="dan";
for(var i=0;i<arr.length;i++){
 alert(arr[i]);
}
例1:
function getMax(arr){
  var max=arr[0];
  for(var i=0;i<arr.length;i++){
    if(arr[i]>max){
       max=arr[i];
       return max;
      }
  }
}
var var1=new Array();
var1[0]=20;
var1[1]=10;
var1[2]=2;
var1[3]=5;
int max=getMax(var1);
alert(max);
例2:
{3,a,8,haha}
i和length-1個交換位置

function myReverse(arr){//傳遞不是拷貝
for(var i=0;i<arr.length/2;i++){
var temp=arr[i];
arr[i]=arr[arr.length-i];
arr[arr.length-i]=temp;
}
}
var arr=new Array();
arr[0]="zheng";
arr[1]="dan";
arr[2]="dan";
alert(myReverse(arr));
例3:
將數組字串用|進行分割  arr.join("|")

function myjoin(arr){
 var s=arr[0];
 if(arr.length<=0)
  return;
 for(var i=1;i<var.length;i++){
  s+="|"+arr[i];
   }
  return s:
}

var arr=new Array();
arr[0]="zheng";
arr[1]="dan";
arr[2]="dan";
alert(myjoin(myjoin(arr)));

8.js中的Dictionary
Array: 數組,Dictionary , Stack.
var diet=new Array();
dict["人"]="zheng";
dict["口"]="dan";
dict["手"]="dan";
alert(dict["人"]);//彈出結果為"zheng";
["人"為key,"zheng"為value的Dictionary]
foreach(var k in dict{
alert(k);//遍曆出來的結果為key(即:人口手);
}
註:數組用法是Dictionary的特例(key為整數)

9.Array的簡化聲明
var arr=[1,2,3];//數組
var nameAge={"tom":30,"joy":20};//Dictionary

10.用for擷取對象所有的成員,對象的成員就是以對象的key的形式出現的
for(var a in document){
alert(a);
}
var p1=new Object();
p1.Name="zheng";
p1.age=23;
p1.SayHello=function(){alert("hello");};
p1.SayHello();
foreach(var a in p1){
alert(e);//得到zheng 23 SayHello;e 就是每一個key
}

11.js無需編譯直接運行,開發環境vs中,記事本中
vs2008SP1VS90SP1-KB958502-x86這兩個補丁 JQuery  "."不出來也不影響運行

12.
<script type="text/javascript"></script>
引用外部js檔案,外部檔案只會載入一次,降低網站的負載。現實共用。
<script src="commonJs.js" type"text/javascript"></script>[head標籤中]

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.