Skip to content

Commit

Permalink
函数参数默认值 && 模板字符串
Browse files Browse the repository at this point in the history
  • Loading branch information
dptms committed Oct 23, 2017
1 parent c452af6 commit 75ceda0
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 1 deletion.
7 changes: 6 additions & 1 deletion 2.arrow-function.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,9 @@ this.hobbies.map(function (hobby) {
```
this.hobbies.map(hobby => console.log(`${this.name} loves ${hobby}`));
```
这是因为箭头函数没有自己的 `this` 值,他的 `this` 值是继承父级作用域的,与我们之前接触的 `this` 值是在执行时动态指定的不同,箭头函数的 `this` 值是词法作用域,也就是在定义的时候就指定的,而且以后也不会随调用方法的改变而改变。
这是因为箭头函数没有自己的 `this` 值,他的 `this` 值是继承父级作用域的,与我们之前接触的 `this` 值是在执行时动态指定的不同,箭头函数的 `this` 值是词法作用域,也就是在定义的时候就指定的,而且以后也不会随调用方法的改变而改变。

# 不适用场景
* 作为构造函数,一个方法需要绑定到对象
* 当你真的需要this的时候
* 需要使用arguments对象的
15 changes: 15 additions & 0 deletions 3.default-augument.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# 函数参数的默认值
```
function multiply(a, b) {
a = a || 5;
b = b || 3;
return a * b;
}
```
ES6可以写成
```
function multiply(a=5, b=6) {
return a * b;
}
```
* 如果只想传入第二个参数,第一个参数应该是 `undefined`
38 changes: 38 additions & 0 deletions 4.template-string.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 模板字符串

ES6语序我们用反引号 ` ` \` 来定义我们的字符串,可以不需要用 `+` 来拼接字符串。如果字符串里面需要使用到变量的时候可以使用`${variable}`,甚至可以在 `{}` 中使用js表达式。

```
const dp = {
name: 'dp',
todos: [
{ name: 'go to store', completed: false },
{ name: 'watch movie', completed: false },
{ name: 'running', completed: true },
]
}
const templete = `
<ul>
${dp.todos.map(todo => `<li>${todo.name} ${todo.completed ? '√' : 'X'}</li>`).join('')}
</ul>
`;
console.log(templete);
```

# 标签模板字符串

```
function highlight(strings, ...values) {
const highlighted = values.map(value => `<span class="highlight">${value}</span>`);
return strings.reduce((prev, curr, i) => `${prev}${curr}${highted[i] || ''}`, '');
}
const user = 'Marry';
const topic = 'Learn to use markdown';
const sentence = highlight`Dp ${user} has commented on your topic ${topic}`;
document.body.innerHTML = sentence;
```

0 comments on commit 75ceda0

Please sign in to comment.