写在前面
最近在系统学习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”
然后 剩下的插值 和 字符串 两两匹配 没有 就是""
总结
明天继续