23.タイマー、閉パッケージ、BOM
3722 ワード
1.次のコードの出力はいくらですか?コードを修正してfnArriにiを出力させます.2つ以上の方法を使う
2.自動車オブジェクトをパッケージ化し、以下のようにして自動車の状態を取得することができる
3.次のコードの出力結果は?どうして?
4.次のコードの出力結果は?どうして?
5.次のコードの出力は?delayer:0、delayer:1を出力する方法...(閉パッケージで実現)
6.エレメントの真のアスペクトを取得する方法
getComputedStyle()が返すスタイルはリアルタイムのCSSStyleDeclarationオブジェクトで、要素のスタイルが変更されると自動的に更新されます.
7.URLはどのようにコードして復号しますか?どうしてコードするの?
参照1.URL符号化と復号2.URLコードについてネットワーク規格では、アルファベットと数字[0-9 a-zA-Z]、一部の特殊記号「$-.+!*'()」[二重引用符を含まない]、および一部の予約語のみが、符号化せずにURLに直接使用できることが規定されている.したがって、漢字等の文字については を符号化する必要がある.は、曖昧にならないように、特殊な意味を持つ文字を使用したパラメータを符号化する必要がある.文字(!$&'()*+,;=)クエリー・パラメータのキー値のペアを表す=など、各コンポーネントで区切りの役割を果たすために使用され、&シンボルはクエリーの複数のキー値のペアを区切るために使用されます.コンポーネント内の通常のデータにこれらの特殊文字が含まれている場合は、符号化する必要があります.
8.以下の関数を補完し、ユーザーのブラウザタイプを判断する
var fnArr = [];
for (var i = 0; i < 10; i ++) {
fnArr[i] = function(){
return i;
};
}
console.log( fnArr[3]() ); //10
//#1
var fnArr = []
for (var i = 0; i < 10; i ++) {
(function(){
var n = i
fnArr[i] = function(){
return n
}
})()
}
console.log( fnArr[3]() ) //3
//#2
var fnArr = [];
for (var i = 0; i < 10; i ++) {
fnArr[i] = (function(){
var n=i
return function(){
return n
}
})()
}
console.log( fnArr[3]() ); //3
2.自動車オブジェクトをパッケージ化し、以下のようにして自動車の状態を取得することができる
var Car = (function(){
var speed = 0;
function setSpeed(s){
speed = s
}
function accelerate(){
speed = speed+10
}
function decelerate(){
speed = speed-10
}
function getSpeed(){
console.log(speed)
}
function getStatus(){
if(speed){
console.log('running')
}else{
console.log('stop')
}
}
return {
setSpeed:setSpeed,
getSpeed:getSpeed,
accelerate:accelerate,
decelerate:decelerate,
getStatus:getStatus
}
})()
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
3.次のコードの出力結果は?どうして?
var a = 1;
setTimeout(function(){
a = 2;
console.log(a);
}, 0);
var a ;
console.log(a);
a = 3;
console.log(a);
//1 3 2
// setTimeout js , ,setTimeout 。
// setTimeout , setTimeout
4.次のコードの出力結果は?どうして?
var flag = true;
setTimeout(function(){
flag = false;
},0)
while(flag){}
console.log(flag);
// ,setTimeout , flag true , while, ,setTimeout
5.次のコードの出力は?delayer:0、delayer:1を出力する方法...(閉パッケージで実現)
for(var i=0;i<5;i++){
(function(){
var n = i
setTimeout(function(){
console.log('delayer:' + n );
}, 0);
})()
console.log(i);
}
6.エレメントの真のアスペクトを取得する方法
getComputedStyle()が返すスタイルはリアルタイムのCSSStyleDeclarationオブジェクトで、要素のスタイルが変更されると自動的に更新されます.
123
var div = document.querySelector('div')
var a = getComputedStyle(div).height
var b = getComputedStyle(div).width
console.log(a,b)//100px 443px
7.URLはどのようにコードして復号しますか?どうしてコードするの?
参照1.URL符号化と復号2.URLコードについて
//
decodeURI()
decodeURIComponent()
//
encodeURI() // ASCII or or~!@#$&*()=:/,;?+'
encodeURIComponent()// ASCII or or~!*()'
8.以下の関数を補完し、ユーザーのブラウザタイプを判断する
function isAndroid(){
return (/android/i.test(navigator.userAgent))
}
function isIphone(){
return (/iphone/i.test(navigator.userAgent))
}
function isIpad(){
return (/ipad/i.test(navigator.userAgent))
}
function isIOS(){
return (/(ipad)|(iphone)/i.test(navigator.userAgent))
}