在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/ 網(wǎng)絡(luò)安全問(wèn)答
司令 回答

return 是條語(yǔ)句,不能直接打印

function x(){
  return 2
} 
console.log(x())
網(wǎng)妓 回答

服務(wù)端加上一個(gè)允許跨域的響應(yīng)頭就好了

祈歡 回答

解決了,最后一行多了一行,因?yàn)榘l(fā)現(xiàn)后來(lái)的樣式都出問(wèn)題了,刪掉了最后一行空白行就好了。。。

大濕胸 回答

拼寫(xiě)錯(cuò)了

exports.create = ...
互擼娃 回答

jpress
http://JPress.io
當(dāng)然,可以在網(wǎng)易蜂巢找到docker鏡像,一鍵安裝

陌璃 回答

ifconfig eth0 |grep -i hwaddr|sed "s/.*HWaddr[[:space:]]\+\([a-z0-9\:]*\).*/\1/"

毀憶 回答

我看了下,感覺(jué)是一個(gè)懶加載的方式~

如果是的話用 lazyload.js 試試~

冷咖啡 回答

一行一行解釋源碼,估計(jì)也不太好理解;我們從另外一個(gè)角度來(lái)看這個(gè)問(wèn)題。

返回的是動(dòng)態(tài)函數(shù)

首先看 bonusCombination 函數(shù)的返回語(yǔ)句是:return (new Function(str)).apply(null, [arr, fun])。這條語(yǔ)句的分解如下::

  • new Function(str) :含義是利用 str 字符串動(dòng)態(tài)構(gòu)造出函數(shù),我們暫且稱(chēng)這個(gè)構(gòu)造出來(lái)的函數(shù)名為 strFn (即 var strFn = new Function(str)
  • 這樣就有 strFn.apply(null, [arr, fun]),轉(zhuǎn)換成我們平時(shí)可以理解的形式就是 strFn(arr, fun)

從這里我們可以看出,這個(gè) bonusCombination 的目的是動(dòng)態(tài)構(gòu)建一個(gè)函數(shù) strFn,該函數(shù)接受兩個(gè)入?yún)?arrfun —— 而這兩個(gè)入?yún)⒕褪俏覀儌鹘o bonusCombination 的入?yún)ⅲ?/p>

對(duì)應(yīng)你給的例子,這里的 arr 就是 [1,2,3,4],而 funnull

入?yún)?num 的作用,動(dòng)態(tài)創(chuàng)建函數(shù)體

我們知道 bonusCombination 還有一個(gè)入?yún)ⅲ褪?num,它的作用就是 鍛造 上述動(dòng)態(tài)函數(shù) strFn 的具體內(nèi)容,利用這個(gè) num 入?yún)?lái)影響那一大段字符操作,這樣也就影響了動(dòng)態(tài)函數(shù)的具體內(nèi)容:

函數(shù)體內(nèi)容

對(duì)于閱讀這樣的函數(shù),要理解它的含義,最好的辦法就是枚舉。

比如我們讓 num2:那么動(dòng)態(tài)構(gòu)建的函數(shù) strFn 結(jié)構(gòu)體如下:

var strFn2 = function(arr, fun){
  var arr=arguments[0]; 
  var fun=arguments[1];  
  var ret=[]; 
  for (var a = 0; a < arr.length; a++) {
    for(var b = a + 1; b < arr.length; b++){
        var temp = [];
          temp.push(arr[a]); 
          temp.push(arr[b]); 
          if(fun){
            ret.push(fun(temp));
        } else {
            ret.push(temp); 
        }
    } 
  };
  return ret;
}

可見(jiàn)函數(shù)體內(nèi)包含 2 次循環(huán)(因?yàn)?num 值為 2),返回的 ret 就是結(jié)果值;

也就說(shuō)調(diào)用 bonusCombination([1,2,3,4],2) 就相當(dāng)于調(diào)用 strFn2([1,2,3,4]),返回值就是你題中的 [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]

同樣如果我們讓 num3:那么動(dòng)態(tài)構(gòu)建的函數(shù) strFn 結(jié)構(gòu)體如下:

var strFn3 = function(arr, fun){
  var arr=arguments[0]; 
  var fun=arguments[1];  
  var ret=[]; 
  for (var a = 0; a < arr.length; a++) {
    for(var b = a + 1; b < arr.length; b++){
      for(var c = b + 1; c < arr.length; c++) {
        var temp = [];
          temp.push(arr[a]); 
          temp.push(arr[b]); 
          temp.push(arr[c]);
          if(fun){
            ret.push(fun(temp));
        } else {
            ret.push(temp); 
        }
      }
    } 
  };
  return ret;
}

函數(shù)體內(nèi)包含 3 次循環(huán)(因?yàn)?num 值為 3);此時(shí)調(diào)用 bonusCombination([1,2,3,4],3) 就相當(dāng)于調(diào)用 strFn3([1,2,3,4]),返回值是 [[1,2,3],[1,2,4],[1,3,4],[2,3,4]];

你也可以自己試一下讓 num4 或者 1,寫(xiě)出的函數(shù)體內(nèi)容是怎么樣的,你就能徹底明白這個(gè) bonusCombination 函數(shù)的作用了。

回答你的問(wèn)題

問(wèn)題1:看不懂為什么用字符串做變量,這個(gè)方法還有其他的功能嗎?
回答:字符串做變量就是為了動(dòng)態(tài)構(gòu)造函數(shù)體內(nèi)容,依據(jù) num 的不同值動(dòng)態(tài)生成不同的 strFn 函數(shù) —— 從這個(gè)角度上來(lái)講 bonusCombination 就是一個(gè) 工廠函數(shù);

該方法還有另外的功能,體現(xiàn)在入?yún)?fun 上,可以對(duì)每個(gè)結(jié)果元素調(diào)用 fun(temp),相當(dāng)于使用數(shù)組的 map 功能。

問(wèn)題2:一開(kāi)始為什么定義一個(gè) variable;
回答:主要是為動(dòng)態(tài)函數(shù)體提供足夠多的中間變量,沒(méi)啥具體含義,只要是符合 js 變量名稱(chēng)就可以。這里使用 ab... 這些變量名,估計(jì)是為了簡(jiǎn)單起見(jiàn),你可以用任何符合 js 變量名稱(chēng)規(guī)范的字符串就行。

問(wèn)題3:請(qǐng)一步一步來(lái)解釋
回答:讀懂上面兩小節(jié)的分析或者參考前一個(gè)回答,每一行解釋這里就不附上了。

其他

這種利用 Function 動(dòng)態(tài)函數(shù)構(gòu)造出來(lái)的功能函數(shù),性能堪憂;
你也知道,如果 arr 入?yún)?shù)組越長(zhǎng),num 越大,那么嵌套的循環(huán)體也就越多,性能就越差

這樣的代碼雖然能運(yùn)行,但質(zhì)量比較糟糕,還有很大的性能隱患,不能放在線上正式的產(chǎn)品中使用。這段代碼比較適合用來(lái)學(xué)習(xí) Function 的功能,以及 組合數(shù)學(xué) 的相關(guān)知識(shí)。

這種方式的編程屬于 元編程 范疇,可以參考我最近寫(xiě)的文章 《【資源集合】 ES6 元編程(Proxy & Reflect & Symbol)》了解更多。后續(xù)有機(jī)會(huì),我看能否使用 Proxy & Reflect 來(lái)重寫(xiě)這個(gè) bonusCombination 函數(shù)。

墻頭草 回答

B 中數(shù)據(jù)如果比較固定的話,可以定義另外一個(gè)實(shí)體類(lèi)(泛型類(lèi)也可以)來(lái)接收

朕略萌 回答

在自動(dòng)化執(zhí)行的腳本選擇yes/no的簡(jiǎn)直是反人類(lèi)的設(shè)計(jì)。腳本就是為了不打斷用戶(hù),中途不應(yīng)該再讓用戶(hù)確認(rèn)。

你先看看你的腳本有沒(méi)有非交互式參數(shù),如果沒(méi)有的話必須重寫(xiě)。

value一般是指表單的元素的值,比如input,.的話是獲取對(duì)象的一種方式,比如

var abc={name:'花非花'}
abc.name ==>指向的就是"花非花"
久舊酒 回答

你的第一個(gè)例子:router.delete('/:id',function(req,res){}) 是符合REST接口規(guī)范了

第二個(gè)例子:是個(gè)人寫(xiě)的,按照的是個(gè)人習(xí)慣

這個(gè)沒(méi)什么特別的規(guī)則,如果你們有團(tuán)隊(duì)要求了,就得按照要求寫(xiě)了

爛人 回答

可以參考一下這個(gè),現(xiàn)在在搬磚中。。。也不能提前幫你測(cè)一下https://router.vuejs.org/zh/g...

她愚我 回答

需要設(shè)置ssl證書(shū),或者不驗(yàn)證證書(shū),例:

$ql = QueryList::get('https://...',[],['verify' => false]);

詳情可以查看GuzzleHttp文檔:http://guzzle-cn.readthedocs....

咕嚕嚕 回答

有兩個(gè)地方存在問(wèn)題:
1、第六行代碼,express.bodyParser ,bodyParser 已經(jīng)單獨(dú)分離了,你還 express. 自然就引用不到。
2、如果你的意圖是上傳文件,那么對(duì)不起,bodyParser 也沒(méi)用,你需要使用 busboy 、multiparty、formidable、multer 其中任意一種處理文件的中間件。

不歸路 回答

cteateElement 的時(shí)候就應(yīng)該把 children 準(zhǔn)備好了
所以應(yīng)該從子到父創(chuàng)建實(shí)例

需要2個(gè)遞歸

  • 第一個(gè)遞歸用來(lái)整理 json
  • 第二個(gè)用來(lái)創(chuàng)建實(shí)例

參考下面代碼:

class App extends React.Component {
  constructor() {
    super()
    this.badJson = [
      {id: 1, pid: 0, type: 'div'},
      {id: 2, pid: 1, type: 'ul'},
      {id: 3, pid: 2, type: 'li'},
      {id: 4, pid: 3, type: 'span'},
      {id: 5, pid: 0, type: 'div'}
    ]
  }

  handleJson(val, pid) {
    if (val.pid == pid) {
      const children = this.badJson.map(val2 => this.handleJson(val2, val.id)).filter(x => x)
      if (children.length) val.children = children
      return val
    }
  }

  createNodes({id, pid, children, type}) {
    return React.createElement(
      type || 'div',
      {key: id},
      children ? children.map(val => this.createNodes(val)) : id
    )
  }

  render() {
    // 處理 JSON
    const goodJson = this.badJson.map(val => this.handleJson(val, 0)).filter(x => x)

    return <div>{goodJson.map(val => this.createNodes(val))}</div>
  }
}