- 开发无止境 -
Data: 2022-03-12 08:45:59Form: JournalClick: 16
答:箭头函数中的this与函数(对象)中的this指代的不一致,指代的是整个window对象,在这个对象中,你并未定义userName,你可以仅仅打印this,看看输出的是什么。
答:ctrl+i
答:你这在外面引用的,不用this,改之前先想一下this是谁?他引用是谁?当前你的代码在全局this指向window, Window对象里是没有这个方法的
demo1:流程: 分支
大量输出文本变量时,使用模板字面量会 使代码变得更简洁。
模板字面量,是允许嵌入表达式的字符串字面量。
他的语法结构是:`string ${expression} string`
用反引号包括住整个模板字面量。
表达式要用${}
包括。
要在模板字面量内使用反引号
,需要用斜杠转义输出。
支持输出多行模板字面量
支持表达式
输出多行模板字面量时,换行处不需要手动输入\n
转义符进行换行,编译器会自动识别字面量中的换行。
这有什么用呢?
当然你需要输入一大段json或者写一段html代码的时候,用多行模板字面量会非常的方便。
除了常规变量以外,模板字面量还支持插入表达式。
模板字面量不仅支持简单运算符,还支持三目运算符
。
将普通参数传入函数时,我们用圆括号包裹;
将模板字面量传入函数时,我们用反引号包裹。
当我们将一个模板字面量传入一个函数,且这个函数有两个以上的
参数时,这两个参数会有默认意义。
第一个参数(非占位符):
是以模板字面量中的${}
即表达式为分隔符,分割模板字符串,只取字符串而不取表达式或者参数而构成的数组。
如:
将template传入函数,那么函数的第一个参数就默认是['你好!','!',raw:Array(2)]
可以看见,除了“你好!”和“!”还有一个特殊的属性raw,这个raw并不是数组的成员,也就是说,你不能用arr[2]
去访问到它。
把raw属性展开:
可以看到对转义符的处理,raw的属性跟arr1是不一样的。
string会识别转换转义符,而raw会将转义符再次转义成普通字符串,最后输出原样的字符串。
第二个及以后的参数(占位符)
如果函数只有2个参数,而传入的模板字面量有多个占位符(表达式)时,
那么,第二个参数只能对应模板字面量中的第一个占位符(表达式)