JavaScript 中的模板,是除语句和表达式以外的另一种可执行结构。
函数参数也是一种可执行结构,包括缺省参数、剩余参数和参数展开。以下代码以缺省参数为例:
// 每次调用函数 foo 时,都会执行一遍 x++ 表达式,并将其结果值作为函数参数传入
var x = 0;
function foo(i=x++) {
console.log(i)
}
foo() // 0
foo() // 1
x // 2
另外,模板字面量可用于触发函数执行(一般不这么做),并且会作为函数参数传入。具体见如下代码:
// 声明一个打印其参数的函数 foo
function foo(...args){
console.log(...args)
}
// 不带参数调用时,无任何打印信息
foo()
// 用模板字面量触发函数执行,打印参数表如下
// 只有一个数组型参数,成员是字符串
foo``
// ['', raw: Array(1)]
// 数组内的成员即为模板字面量中的字符串值
foo`xxx yyy`
// ['xxx yyy', raw: Array(1)]
// 第一个参数为数组
// 第二个及之后的参数为模板字面量中表达式的值
foo`${123}`
// ['', '', raw: Array(2)] 123
// 数组内的各成员分别为模板字面量中表达式前后的字符串值
foo`xxx${123}yyy`
// ['xxx', 'yyy', raw: Array(2)] 123
foo`xxx${123}yyy${456}zzz`
// ['xxx', 'yyy', 'zzz', raw: Array(3)] 123 456
----- 极客时间《JavaScript 核心原理解析》学习笔记 Day 7 -----

文章详细阐述了JavaScript中的模板和函数参数的特性,如缺省参数的执行行为以及模板字面量在函数调用中的作用。通过示例展示了函数参数如何在每次调用时执行,以及模板字面量如何传递参数给函数,包括无参数调用和带有表达式的模板字符串的情况。
1460

被折叠的 条评论
为什么被折叠?



