ジョブ20
4566 ワード
問答
閉包とは何ですか何の効果がありますかクローズドとは、自由変数にアクセスできる関数(変数はローカルに使用されるが、クローズドに定義される)を意味する.言い換えれば、クローズド内の関数を定義すると「記憶」が作成されたときの環境を「記憶」することができます. クローズドの役割: 関数参照設定のための遅延時間 オブジェクト・インスタンス・アプローチ関連関数 包装に関する機能 set Timeout 0は何の役割がありますか? javascriptの非同期を実現する. イベントにおいて、setTimeoutは、現在の任意の拡張イベントのイベントプロセッサの実行を完了し、文書の現在の状態の更新を完了した後、setTimeout内に登録された関数を有効にするようにブラウザに通知する. コード
下のコードの出力はどれぐらいですか?コードを修正してfnAriにiを出力させる.二つ以上の方法を使います.
関数は以下の通りです
関数コードは以下の通りです.
閉包とは何ですか何の効果がありますか
alert(1);
setTimeout("alert(2)", 0);
alert(3);
// 1 3 2
下のコードの出力はどれぐらいですか?コードを修正してfnAriにiを出力させる.二つ以上の方法を使います.
var fnArr = [];
for (var i = 0; i < 10; i ++) {
fnArr[i] = function(){
return i;
};
}
console.log( fnArr[3]() ); // 10
// I :
(function(){
var fnArr = [];
for(var i=0;i<10;i++){
fnArr[i]=(function(num){
return function(){
return num;
};
})(i);
};
console.log(fnArr[4]());
}())
// 4
(function(){
var fn1,fn2;
fn1=(function(num){
return function(){
return num++;
}
})(1);
fn2=(function(num){
return function(){
return num;
}
})(2);
console.log( fn1() );
console.log( fn2() );
}());
// 1,2
クローズドパッケージを使用して自動車オブジェクトを一つ包装し、次のように自動車状態を取得することができます.var Car = //todo;
Car.setSpeed(30);
Car.getSpeed(); //30
Car.accelerate();
Car.getSpeed(); //40;
Car.decelerate();
Car.decelerate();
Car.getSpeed(); //20
Car.getStatus(); // 'running';
Car.decelerate();
Car.decelerate();
Car.getStatus(); //'stop';
//Car.speed; //error
// :
var Car = (function(){
var val;
function setSpeed(num){
return val=num;
}
function getSpeed(){
return val;
}
function accelerate(){
return val +=10;
}
function decelerate(){
return val-=10;
}
function getStatus(){
if(val>0){
return "running";
}else{
return "stop";
}
} return{
setSpeed:setSpeed,
getSpeed:getSpeed,
accelerate:accelerate,
decelerate:decelerate,
getStatus:getStatus,
val:"error"
};
}());
// :
Car.setSpeed(30);
30
Car.getSpeed();
30
Car.accelerate();
40
Car.getSpeed();
40
Car.decelerate();
30
Car.decelerate();
20
Car.getSpeed();
20
Car.getStatus();
"running"
Car.decelerate();
10
Car.decelerate();
0
Car.getStatus();
"stop"
つの関数を書いてsetTimeoutを使ってsetIntervalの機能を模擬しますか?関数は以下の通りです
var i=0;
function intv(){
setTimeout(function(){
console.log(i++);
intv();},1000);
}
intv();
関数を書いて、setTimeout平均を計算します.関数コードは以下の通りです.
// ?
function getMini(){
var i=0;
var start = Date.now();//
var clock = setTimeout(
function (){
i++;
if (i ===1000){
clearTimeout(clock);
var end = Date.now;//
console.log((end-start)/i);// - i, 。
}
clock =setTimeout(arguments.callee,2);
},2)
}
getMini();
このコードの出力結果は?なぜですか var a = 1;
setTimeout(function(){
a = 2;
console.log(a);
}, 0);
var a ;
console.log(a);
a = 3;
console.log(a);
// 1 3 2 JavaScript , setTimeout , 1 3 2.
このコードの出力結果は?なぜですかvar flag = true;
setTimeout(function(){
flag = false;
},0)
while(flag){}
console.log(flag);
// while , setTimeout , 。
このコードの出力は以下の通りですか?どのようにdelayer:0を出力しますか?delayer:1…(function(){
var count =[];
for(var i=0;i<5;i++){
count[i]=(function(num){
return function(){
return 'delayer:' +num;
};
})(i);
};
console.log(count[0]());//delayer:0
console.log(count[1]());//delayer:1
console.log(count[2]());//delayer:2
console.log(count[3]());//delayer:3
console.log(count[4]());//delayer:4
}())
文を転載します:本文はだから著作権はすべて空腹の人の谷と作者の本人に属して、もし転載するならば、出所を明記して下さい、ありがとうございます.