「JavaScript高級プログラム設計」
4398 ワード
一、基本概念
1、パーrseInt、パーrseFloat
1、Steringタイプ:
ECMAScriptでは、文字列は参照タイプではありません.
2、ゴミ収集
JavaScript変数には2つのタイプがあります.基本タイプは、 参照タイプ:オブジェクト. 基本タイプ値および参照タイプ値は、メモリ内の
三、引用の種類
1、アラy
各方法は、2つのパラメータを受信します.各項目で実行する関数と、その関数を実行するスコープオブジェクトと、thisに影響を与える値です.これらの方法に入ってくる関数は、3つのパラメータを受信する.
every():配列内の各動作に与えられた関数がある場合、関数ペア
以上の方法は、配列に含まれる値を変更しません.
3、Arayの並び替えsort(function(a,b){…)
コールバック関数:
1、継承する
1、パーrseInt、パーrseFloat
parseInt('123',10) // , 10
parseFloat('12.12') //
parseFloat('12.12.123') // 12.12 ,
二、変数、作用領域とメモリの問題1、Steringタイプ:
ECMAScriptでは、文字列は参照タイプではありません.
2、ゴミ収集
## Null, 。
function createPerson(name){
var localPerson = new Object();
localPerson.name = name;
}
var globalPerson = createPerson("Nicholas");
globalPerson = null; // globalPerson ,
リボン:JavaScript変数には2つのタイプがあります.
と
.Undefined
、Null
、Boolean
、Number
、String
、
、および
の5つの基本データタイプを含む.
値であるため、
において、以下の特徴がある.一つの変数から他の変数に基本型の値をコピーすると、この値のコピーが作成されます.
の値は
、
中である.参照型の値を含む変数は、実際には対象自体ではなく、オブジェクトを指すポインタが含まれています.一つの変数から他の変数
にコピーされた
は、最終的に
です.値はどの
がtypeof
オペレータを使用することができるかを決定し、値はどの
がinstanceof
オペレータを使用することができるかを決定する.作用域から離れる値は自動的に回収可能としてマークされますので、ゴミ収集中に削除されます.“ ”
は現在主流のゴミ収集アルゴリズムであり、このアルゴリズムの思想は
であり、その後メモリを再回収する.三、引用の種類
1、アラy
## 1、toString()、toLocalString()、valueOf()
var colors = ["red", "blue", "green"]; // 3
console.log(colors.toString()); // "red,blue,green"
console.log(colors.valueOf()); // ["red","blue","green"]
console.log(colors); // ["red","blue","green"]
2、Arayの反復方法各方法は、2つのパラメータを受信します.各項目で実行する関数と、その関数を実行するスコープオブジェクトと、thisに影響を与える値です.これらの方法に入ってくる関数は、3つのパラメータを受信する.
、
、
.every():配列内の各動作に与えられた関数がある場合、関数ペア
がtrueに戻ると、trueに戻ります.some():配列内の各動作に与えられた関数が与えられています.関数が
にtrueを返したら、trueに戻ります.filter():配列内の各動作に与えられた関数を返してtrue
の項からなる
を返します.forEach():配列内の各動作に与えられた関数です.この方法は
です.map():配列内の各項目に対して与えられた関数を実行し、関数ごとに呼び出された結果からなる行列を返します.以上の方法は、配列に含まれる値を変更しません.
## every()、some()
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item, index, array){
return (item > 2);
});
alert(everyResult); //false
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true
## filter()
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]
## map()
var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]
## forEach()
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item, index, array){
item++;
});
console.log(numbers); // [1,2,3,4,5,4,3,2,1]
forEachは戻り値がないので、最初のパラメータの関数は元の配列に影響を及ぼさないので、この方法は基本的に遍歴のみに適用されます.3、Arayの並び替えsort(function(a,b){…)
コールバック関数:
a < b
は
に戻ると a、b
になる.
を返したら a、b
.0
なら
です.var a = [0,4,5,20,12,25,15];
a.sort(function(a,b){
return a-b; //
return b-a; //
})
四、対象に向ける1、継承する
/**
* -- prototype
*/
function Animal() {
this.name = 'animal';
}
Animal.prototype.sayName = function() {
alert(this.name);
};
function Person() {}
console.log(Person.prototype.constructor); // [Function: Person]
//
Person.prototype = Animal.prototype;
console.log(Person.prototype.constructor); // Function: Animal]
//
Person.prototype.constructor = 'Person';
var person = new Person();
console.log(Person.prototype); // { sayName: [Function] }
console.log(person.__proto__); // { sayName: [Function] }
console.log(person.__proto__ === Person.prototype); // true
/**
* ************************************
* ********* __proto__ prototype 。
* ************************************
*/