ステップアップタスク11

3601 ワード

テーマ1:次のコード出力はいくらですか?コードを修正してfnArriにiを出力させます.2つ以上の方法を使う
   for (var i = 0; i < 10; i ++) {
       fnArr[i] =  function(){
           return i;
       };
   }
```    console.log( fnArr[3]() );  //  10,     i  10,              10
  :

```    var fnArr = [];
   for (var i = 0; i < 10; i ++) {
       (function(i){
           fnArr[i] = function(){
               return i;
           }
       })(i);
   }
``` console.log( fnArr[3]() );  //3
  :

``` var fnArr = [];
   for (var i = 0; i < 10; i ++) {
       fnArr[i] =  (function(i){ //IIFE &   
           return function(){
               return i;
           }
       })(i);
   }
``` console.log( fnArr[3]() );  //3
  :

```    var fnArr = [];
   for (let i = 0; i < 10; i ++) { //  ES6: let
       fnArr[i] =  function(){
           return i;
       };
   }
```    console.log( fnArr[3]() );
  2:        ,              
```var Car = (function () {
   let speed = 0;
   function setSpeed(s){
       return speed = s;
   }
   function getSpeed(){
       return speed;
   }
   function accelerate(){
       return speed+=10;
   }
   function decelerate(){ //       
       return speed>0?speed-=10:speed;
   }
   function getStatus(){
       return speed>0?'running':'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);//2
}, 0); //   0,          
var a ;
console.log(a); //1
a = 3;
```console.log(a); //3
  4:           ?    ?
```var flag = true;
setTimeout(function(){//           
   flag = false;
},0)
while(flag){} //setTimeout        ,  flag   true,    。
```console.log(flag);  //    
  5:        ?    delayer: 0, delayer:1...(       )
```for(var i=0;i<5;i++){
   (function(t){
           //       let t;
       return setTimeout(function(){
                   console.log('delayer:' + t );
               }, 0);
   })(i);
   console.log(i);
```}
  6:            ?
```function trueStyle(element,pseduoElement){
   //IE   window.getComputedStyle(),  element.currentStyle();
   return element.currentStyle ? element.currentStyle : window.getComputedStyle(element,pseduoElement);
}
let trueWidth = trueStyle(element).width;
```let trueHeight = trueStyle(element).height;
  7:URL       ?      ?
```let myURL = 'https://www.google.com/#q=javascript';
//         URL       (  ),  encodeURI();
let simpleURL = encodeURI(myURL); //"https://www.google.com/#q=javascript"
//         URL          URL    ,  encodeURIComponent();
let completeURL = encodeURIComponent(myURL);
let newURL = 'https://www.google.com/?back=' + completeURL; //"https://www.google.com/?back=https%3A%2F%2Fwww.google.com%2F%23q%3Djavascript"
window.open(simpleURL); //        ,   ```https://www.google.com/#q=javascript
  8:      ,          
```function isAndroid(){
   return /Android/.test(navigator.userAgent);
}
funcnction isIphone(){
   return /iPhone/.test(navigator.userAgent);
}
function isIpad(){
   return /iPad/.test(navigator.userAgent);
}
function isIOS(){
   return /(iPad)|(iPhone)/i.test(navigator.userAgent);
```}