JavaScript常用基礎知識


1、データタイプ:
    1)元のタイプ:String Boolean Number Null Udefiend
    2)引用タイプ:Object……
まとめ:なぜいつものようにデータの種類を話しますか?開発の中で彼らはいったいデータの種類に何かガイドがありますか?NullはObjectタイプですか?それともUdefiendタイプですか?意味のないものは時間がかかりません.しかし、ここで彼が教えてくれたのは、元のタイプは永遠に対象のコピーで、伝値は住所を伝えません.ただし、引用の種類は、参照であり、オブジェクトの参照を変更すると、オブジェクト自体に影響を及ぼします.ですから、5大元データタイプを必ず覚えてください.
/**       ,     */
var str = 'hello wrolld'; // new String('hello world')      
function changeStr(str) {
  str = 'welcome';
}
changeStr(str);
console.info(str);
/**       ,         ,            */
var str = {
  key: 'hello world'
};
function changeStr(str) {
  str.key = 'welcome';
}
changeStr(str);
console.info(str.key);
2、オブジェクトの属性
    1)obj.property 
    2)obj[property]
まとめ:これまでgetの方法がないので、属性値を取得します.言語学習が多くて、混ぜました.まるで、Javaではfor(String str:list)がよく使われています.しかし、Javascriptの中でこのように使うと必然的にエラーが発生します.Javascriptはこのようにfor(var str in list)を使うべきです.ある時は誤って雷を踏みました.オブジェクトの属性については、上記の2つの方法は同じだとは思わないでください.実は、2つの違いはまだあります.obj.propertyは変数ではなく、Objで定義されている属性名だけでなく、Javascript変数の命名基準に適合していなければなりません.さもなければ、Javascriptのオブジェクトは1を属性名として使用できます.しかし彼は命名の規範に合わないです.もしあなたがobjを使うなら、propertyは変数であり、この変数は任意であることができます(例えば、配列が遍歴している時は数字であり、属性が遍歴している時は文字列であるかもしれません).彼もオブジェクトに対応する属性値を取得できます.ですから、もしある対象の属性を知ったら、私達はobj.propertyを使うことができます.もし私たちが知らないなら、あなたたちは第二種類を採用すべきです.
var obj = new Object();
obj.name = 'maven';//           
obj[1] = 'git';//           ,       
obj[{name:'svn'}]='cvs';//         
for (var attr in obj) {
  console.info(obj[attr]);
}
3、オブジェクトの属性を削除する
    1)delete obj.property
    2)delete obj[property]
まとめ:インターネットで多くの資料を見ましたが、対象の属性を削除するということは彼の値をundefinedまたはNullに設定しています.本当のことを言いますと、最初は本当に信じていました.対象が存在しないとundefinedではないですか?後、コードテストに対して本当にピットされていることを発見しました.対象の属性は賦値によって削除できないです.信じないなら自分でfor inで試してみてもいいです.結果はこうです.特に、対象をJSON文字列に変換する時、対象の属性を削除したいです.Nullだけを賦与したら、JSONになりますか?それともNullの値がありますか?したがって、上記のようにオブジェクトの属性を削除し、オブジェクトの属性が存在しないようにします. 遍歴もできません. 
var obj = {};
obj.name = 'key';
obj.value = 'mavne';
obj.age =12;
obj.phone= 156;
obj.identify = '@dfd_dfd';

console.info(JSON.stringify(obj))
delete obj['value']; //     value
delete obj.name; //      name
obj.identify = undefined; //       ,            JSON        identify   
obj.age = null;//       ,           ,  JSON           
console.info(JSON.stringify(obj))
4、配列で指定された要素を削除する
      1)arrayObj.pop()//最後の要素を削除して要素値を返します.
      2)arrayObj.shift()//最初の要素を削除して要素値を返します.配列中の要素は自動的に前に移動します.
      3)arrayObj.splice(deletePos、deleteCount);指定された位置deletePosから指定された数のdeleteCountの要素を削除し、削除された要素を返します.
      4)delete array[property]//指定された位置の要素を削除し、削除したらtrueに戻ります.そうでなければfalseに戻ります.
まとめ:行列の対象となるものですか?それとも対象となるものですか?本当の話を言って、二者は本当に似ています.私はやはり配列が対象です.Javaの中ではこう言っています.万物は対象です.配列も含まれているでしょう.しかし、Javascriptは配列の中で指定された要素を削除したいなら、上記の4つの方法を使ってもいいです.前の2つの制限条件が多すぎて、あまり使わないです.後の2つの違いは、arrayObj.splice(deletePos、deleteCount)です.複数の要素を削除することができ、また、要素を削除する配列形式で戻ることができます.delete arrayは1つの要素だけを削除し、また、Boolean形式の値を返します.もちろん両方とも行列自身の操作に基づいています.つまり、彼らの操作は配列自体を変えます.また、Java削除セットの中で要素を指定する場合は、ループ中で削除する場合は、ディケンサを使用します.そうでないとエラーが発生します.Javascriptはループ中で削除するのはこのようなエラーが発生しないので、ループ中で削除しても大丈夫です.
var array = new Array();
array[0] = {name:'k1',value:'dd'}
array[1] = {name:'k2',value:'dd'}
array[2] = {name:'k3',value:'dd'}
array[3] = {name:'k4',value:'dd'}
array[4] = {name:'k5',value:'dd'}
array[5] = {name:'k6',value:'dd'}

for(var i = 0 ; i < array.length ; i++){
  console.info(i);
  if( i == 2){
    var obj = array.splice(i,1); //            ,      
    console.info(obj[0].name);
    //delete array[i];          ,         ,          ,    Boolean 
  }
}

for(var obj in array){
  console.info(array[obj]);
}