第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Backticks調用函數

Backticks調用函數

紫衣仙女 2019-07-15 19:35:36
Backticks調用函數我不知道該怎么解釋,但是當我跑console.log`1`在Google Chrome中,我得到的輸出類似于console.log`1`VM12380:2 ["1", raw: Array[1]]為什么反勾號調用日志函數,以及為什么它要將raw: Array[1]?Catgocat在JS的房間里提出的問題,但是除了關于模板串這并不符合為什么會發(fā)生這種事。
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

它在es-6中被稱為標記模板-6可以讀到更多關于它們的信息。這里有趣的是,我在聊天的明星部分找到了鏈接。

但是代碼的相關部分如下(基本上可以創(chuàng)建一個過濾的排序)。

function tag(strings, ...values) {
  assert(strings[0] === 'a');
  assert(strings[1] === 'b');
  assert(values[0] === 42);
  return 'whatever';}tag `a${ 42 }b`  // "whatever"

基本上,它只是將“1”標記為控制臺.log函數,就像它對任何其他函數所做的那樣。標記函數分別接受模板字符串的解析值和可以執(zhí)行進一步任務的值。

Babel將上述代碼轉到

var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));

正如您在上面的示例中所看到的那樣,在被Babel轉移之后,標簽函數(控制臺.log)被傳遞給如下ES6->5轉置代碼的返回值。

_taggedTemplatalLoose([“1”],[“1”]);

此函數的返回值將傳遞給控制臺。日志將隨后打印該數組。


查看完整回答
反對 回復 2019-07-15
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

標記模板文字:

以下語法:


function`your template ${foo}`;

被稱為標記模板文字。


作為標記模板文字調用的函數以下列方式接收其參數:


function taggedTemplate(strings, arg1, arg2, arg3, arg4) {

  console.log(strings);

  console.log(arg1, arg2, arg3, arg4);

}


taggedTemplate`a${1}b${2}c${3}`;

  1. 第一個參數是所有單個字符串字符的數組。
  2. 其余的參數對應于通過字符串插值得到的變量的值。請注意,在示例中沒有

    arg4

    (因為只有3次字符串插值),因此

    undefined

    當我們嘗試記錄

    arg4

使用REST參數語法:

如果我們事先不知道在模板字符串中會發(fā)生多少次字符串插值,那么使用REST參數語法通常是有用的。此語法將函數接收的其余參數存儲到數組中。例如:

function taggedTemplate(strings, ...rest) {

  console.log(rest);

}


taggedTemplate `a${1}b${2}c${3}`;

taggedTemplate `a${1}b${2}c${3}d${4}`;


查看完整回答
反對 回復 2019-07-15
  • 3 回答
  • 0 關注
  • 623 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號