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配列の重複要素を除去する例を通して、いくつかの文法知識を導入する:
上記の二つのポイントに関わるもの: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がないと属性が分からない場合、下根本はすべての属性を取得することができません.
初級は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がないと属性が分からない場合、下根本はすべての属性を取得することができません.