jsオブジェクトと行列の内緒話

10255 ワード

 
  
/*
【JavaScript 】
*/

/*
: , */

/* , */
var obj = {};
var obj = {name: 'maxthon'};
var obj = {name: {}, text: []};

/* new */
var a = new Array();
var d = new Date();
var r = new RegExp('javascript', 'i');
var o = new Object(); // var o = {};
/* : new ,
typeof Array; // 'function'
typeof Object; // 'function'
Object Function .
Function , Object .
*/

/* */
// . .
// : [], ( , ).
var t = {};
t.text = 'hello';
t.o = {};
t.o.name = 'rd';
t.n = [];

var t = {
"text": "hello"
};
console.log(t.text); // 'hello';
// : var , , var


/* */

var F = function () {};
F.prototype.name = 'RD';
var obj = new F;
for (var key in obj) {
console.log(key); // name;
}

// ,
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(key); //
}
}
/* : for in ; toString. */


/* */

window.a = 'rd';
console.log(a in window); // true;

var F = function () {};
F.prototype.name = 'RD';
var obj = new F;
console.log('name' in obj); // true;


var toString = Object.prototype.toString;

// obj, getName, ;
if (obj.getName && toString.call(obj.getName) === '[object Function]') ) {
obj.getName();
}

// :
console.log(null == undefined); // true;
console.log(null !== undefined); // true;


/* */
delete obj.name;
// : delete , var ;


/* */

// :
obj.name;
obj['name']; // name .

// [] , .
//
// : , .
//

/* : JavaScript ( ) . */
for (var key in obj) {
console.log(key); // key , .
}



/*
Object

JavaScript Object ;

1, constructor .
.
*/
var F = function () {};
var f = new F;
console.log(f.constructor == F); // true

// constructor ;
F.prototype.constructor == F;

// :
var F = function () {};
var G = function () {};
G.prototype = new F;

var g = new G;
console.log(g.constructor == F); // true;
console.log(g.constructor == G); // false;
// g instanceof F;


/*
2, toString()
*/
{'name': 'maxthon'}.toString(); // '[object Object]'

/* toString , , [object Object];
toString , */
['a', 'b', 1, false, ['e','f'], {}].toString();
// "a,b,1,false,e,f,[object Object]"

function t() {
console.log('test');
}
t.toString();
//

/*
3, toLocalString();

4, valueOf();
, . valueOf/toString.
5, hasOwnProperty();
6, propertyIsEnumberable();
;
7, isPrototyeOf();
a.isPrototyeOf(b);
a b , true;
*/
var o = {}; // new Object;
Object.prototype.isPrototyeOf(o); // true;
Object.isPrototyeOf(o); // false;
o.isPrototyeOf(Object.prototype); // false;
Function.prototype.isPrototyeOf(Object); // true;

/* 【 , 】 */



/*
: 、 ;

, , ;
0 ;
, . , , null, undefined.
*/

// .
var arr = [];
var arr = new Array();

var t = '';
var arr = [1,2,3, null, undefined, [], {}, t];

/* new 3 : */
var arr = new Array(); // [],

var arr = new Array(5); // 5; [] .
console.log(arr); // []; JavaScript undefined;

var arr = new Array('5'); // ['5'];
var arr = new Array('test'); // ['test'];

/* */
var s = [1, 2, 3];
s[5] = 'a';
console.log(s);
[1, 2, 3, undefined, undefined, 'a']



/* */

value = array[0];
a[1] = 3.14;
i = 2;
a[i] = 3;
a[a[i]] = a[0];

// -> ->
array.test = 'rd';

// 0, 2 32 1 .
// , JavaScript , , .


var array = [];
array[9] = 10; // array 10;
// : JavaScript 9 , .

var array = [];
array.length = 10; // array ;
array[array.length] = 4;


/* */
// delete undefined , .
// , : Array.shift();【 】 Array.pop();【 】 Array.splice();【 】 Array.length ;

/* */
var a = [1, 2, 3];
delete a[1];
console.log(a); // [1, undefined, 3];

/* : JavaScript 59
var , , delete .
: , . , .
*/


/* */
[].length;


/* */
var array = [1, 2, 3, 4, 5];
for (var i = 0, l = array.length; i < l; i++) {
console.log(array[i]);
}

array.forEach(function (item, index, arr) {
console.log(item);
});

/* : length , */

/* */
[[1], [2]]

/* */
// join
var array = [1, 2, 3, 4, 5];
var str = array.join(); // 1,2,3,4,5
var str = array.join('-'); // 1-2-3-4-5
// : String.split() ;

// reverse();
var array = [1, 2, 3, 4, 5];
array.reverse(); // [5, 4, 3, 2, 1]
// : ;

// sort();
var array = [1, 3, 2, 4, 5, 3];
array.sort();// [1, 2, 3, 3, 4, 5];
/* : , */

/* , sort(func);
func , , 0 , , 0 . , 0;
*/
array.sort(function (a, b) {
return b - a;
});

// : ,
[1, 2, 3, 4, 5, 6, 7, 2, 4, 5, 1].sort(function (a, b) {
if (a % 2 && b % 2) {
return a - b;
}

if (a % 2) {
return -1;
}

if (b % 2) {
return 1;
}

return a - b;

});


// concat() . ,
var a = [1, 2, 3];
a.concat(4, 5); // [1, 2, 3, 4, 5]
a.concat([4, 5]); // [1, 2, 3, 4, 5]
a.concat([4, 5], [8, 9]); // [1, 2, 3, 4, 5, 8, 9]
a.concat([4, 5], [6, [10, 19]]); // [1, 2, 3, 4, 5, 6, [10, 19] ]


// slice() . .
var a = [1, 2, 3, 4, 5];
a.slice(0, 3); // [1, 2, 3]
a.slice(3); // [4, 5];
a.slice(1, -1); // [2, 3, 4]
a.slice(1, -1 + 5)
a.slice(1, 4);
a.slice(-3, -2); // [3]
a.slice(-3 + 5, -2 + 5);
a.slice(2, 3);
/* :
.
: +
*/

// splice(pos[, len[, a, b]]) . , , ;
// . .
var a = [1, 2, 3, 4, 5, 6, 7, 8];
a.splice(4); // [5, 6, 7, 8]; a: [1, 2, 3, 4]
a.splice(1, 2); // [2, 3]; a: [1, 4];
a.splice(1, 1); // [4]; a: [1];

var a = [1, 2, 3, 4, 5];
a.splice(2, 0, 'a', 'b'); // [1, 2, 'a', 'b', 3, 4, 5]
a.splice(2, 2, [1, 2], 3); // ['a', 'b']; a: [1, 2, [1, 2], 3, 3, 4, 5]
/* :
, 。
.
*/


// push() pop() .
// push() , ;
// pop() , , .
// : , .

var stack = [];
stack.push(1, 2); // stack: [1, 2]; return 2;
stack.pop(); // stack: [1]; return 2;
stack.push(3); // stack: [1, 3]; return 2;
stack.pop(); // stack: [1]; return 3;
stack.push([4, 5]); // stack: [1, [4, 5]]returm 2;
stack.pop(); // stack: [1]; return [4, 5];

// unshift() shift() . , .


// toString() toLocalString()
[1, 2, 4].toString(); // 1,2,3;
['a', 'b', 'c'].toString(); // 'a,b,c';
// join .


/* jsapi :map, every, some, filter, forEach, indexOf, lastIndexOf, isArray */


/* */

arguments
document.getElementsByTagName();