2/23 JavaScript 中标签函数中 模板 问题

写在前面

  最近在系统学习JavaScript( 之前只是停留在实践较多的 但是越发发觉不理解底层的东西 有些时候 代码就是要出错 尤其是 体现在 js 单线程处理问题上 )

  买了红宝书

  然后看了一会儿

  发现了 标签函数 里面 参数 有点奇怪

  于是研究了一下


代码

let a = 6;
let b = 7;

function test(strings,...expressions){
    console.log(strings);
    for(const value of expressions){
        console.log(value);
    }
}
test`${a}+${b}=${a+b}`;
test`${a}+${b}${"b="}=${"this is bad"}()${a+b}`;
test`${a}${b}${"b="}${"this is bad"}()${a+b}`;

  上面的就是 标签函数 

  通过获取一个模板字符串 来得到参数

  参数 有几个

  第一个 是不包括插值的模板字符串

  以后的参数 是传入模板的插值 

  很奇妙的东西来了

  就是 如果 插值参数 有 n 个的话

  那么 我们的模板 的 数组长度就有 n+1 个

  按照上面的输出 康康

  

  起初,我根本找不到 第一个参数 的规律

  但是 看到了书上一段代码

  

  于是恍然大悟

  其实 是这样来排列的

  第一位 某一串字符串(遇到插值之前的字符串) “xxxx”\

  然后 剩下的插值 和 字符串 两两匹配 没有 就是""

  

 

   

 

 总结

  明天继续

 

posted @ 2021-02-23 23:16  WaterMealone  阅读(67)  评论(0编辑  收藏  举报