jsの基礎知識と向上

3145 ワード

jsのレベルを見分ける簡単な例を見ました.問題は今何曜日ですか?
  初級はswitch caseかif elseです.
 function one(){
var weekday=new Date().getDay();
var str=「今日は日曜日です.」
switch(weekday){
  case 0:
             str+=「日」
     break;
   ......
        }
return str;
  }
 少しの階段:
   var weekdays=['日',一',二',三',四',五',六']
   var week=new Date().getDay()
   alert(「今日は日曜日」+weekdays[week]);
もっと簡単なもの:
   var str=「今日は日曜日です」+「日一二三四五六」.charAt(new Date).getDay();
徐々に一行のコードになります.これを見ないでください.簡単にそう考えられます.これは視野と知識のレベルに関連しています.
くだらない話は全部しました.javascriptの知識と使い方をゆっくり紹介してください. レベルが比較的に一般的です.
1.js配列の重複要素を除去する例を通して、いくつかの文法知識を導入する:
 <script type="text/javascript">
	var data = [1,2,2,8,6,8];
    data = unique(data);
	//alert(data.length);
	/*for(var i = 0 ; i < data.length ; i ++){
		alert(data[i]);
	}*/
	for(var i in data) {
		alert(data[i]);
	}

	function unique(data) {
		data = data || []; //     data null    []
		var a = {} ;//  
		for( var i = 0,len = data.length ; i < len ;i ++) {
			var v = data[i];
			//  typeof[a[v]]   undefined               a        
			//        data      a         
			if('undefined' == typeof(a[v])) {
				a[v] = 1; //                     
			}
		}
		//    
		data.length = 0;
		//       
		for(var i in a){
			//          
			data[data.length] = i;
		}
		return data;
	}
 
上記の二つのポイントに関わるもの:1.for inサイクル  2.連結配列のオブジェクト(上のオブジェクトa)
for inサイクルを簡単に紹介します.>>
 文法:for(variable in object){
              statement
          }
variableは声明の1つのvarの変数配列の1つの要素またはオブジェクトの1つの属性とすることができます.
ループ中に本体のobjectの各属性に対して一回実行します.属性名を文字列でvariable変数に与えます.  ここで[]が使えます.
演算子は属性値を取得します.
for/inサイクルは対象の下付きと値を巡回します.ここでは[]演算子でobj.xx属性を使用してはいけません.そうでないと、undefinedになります.
var obj={x:1,y:2,z:3}    for(var i in obj){        alert('下付き>'+i+"::"+obj[i]);
ここでは、関連する配列オブジェクト(以下、注目)について説明します.
javascriptの中の配列は実は特殊な対象で、対象に対してfor/inで配列に対して循環することができます.もちろん例外ではありません.
2.連結配列のオブジェクト
 var obj={x:1,y:2,z:3}
私達はobj.x obj.y obj.zを通してもいいです.  「.」演算子はオブジェクト属性値を取得します.「[]」は配列にアクセスするために使用されることが多いですが、以下の2行のコードは等価です.
object.property
object[property]
前者のpropertyは識別子であり、後者は文字列である.
        javaのオブジェクトの属性は固定されています.  実行中に属性を動的に追加することはできませんが、javascriptでは、オブジェクトの属性値を「.」で取得すると、属性は識別子となります.  javascriptの標準では識別子は一つずつ入力しなければなりません.彼らはデータタイプではなく、プログラムは操作できません.
        「[]」を使うと、属性は文字列であり、文字列はjavascriptのデータタイプであり、プログラム実行中に操作して作成することができます.
たとえば
var obj={x 1:「sss」、x 2:「ddd」、x 3:「aaa」}    var str="    for(var i=1;i<=3;i+){        str+=obj["x"+i]; //文字列スティッチングでアクセスできますが、obj.("x"+i)を通過できません.    }    alert(str)
上記の除去重複の例もあります.
var a={};var key="name";
a[key]=“ganjp”;alert(a.name); 
for(var n in a){        alert(a[n]);
このように属性を増やすことができます.  
ここのfor/inの強さも表現されています.  for/inがないと属性が分からない場合、下根本はすべての属性を取得することができません.