let, const, var
let | const | var | |
---|---|---|---|
作用域 | block | block | function |
重新赋值 | yes | no | yes |
重新声明 | no | no | yes |
对象
在下面的对象中,walk
和 talk
被称为方法,可以用两种方式声明
walk
和 talk
都是一样的,但其声明不同
1 | const person = { |
person.walk
不会调用该函数,只有 person.walk()
会调用该函数
1 | const newWalk = person.walk; |
这里我们得到了 walk
的引用,newWalk
也变成了一个方法
console.log(walk) → 在控制台中记录该函数
console.log(walk) → 调用该函数
要访问对象中的项目,我们使用以下内容:
- person.talk()
- person[“name”]
我们仅当我们从其他地方获取密钥时才使用第二种方法(例如通过某些表单从用户那里获取 name
键名】)
1 | const keyName = "name"; |
this
this
关键字指向特定对象或提供对该特定对象的引用
在对象外部使用 this
关键字调用函数作为独立函数,返回全局对象
全局对象也称为窗口对象
javascript
中的每个函数都是一个对象
使用 bind
关键字将 this
关键字指向特定对象
1 | const newWalk = person.walk.bind(person); |
现在 newWalk
函数指向名为 Dork
的 person
对象,同时将其记录在控制台中
console.log(newWalk()) → 将 person
对象记录在控制台中
箭头函数
普通函数
1 | const square = function (number) { |
箭头函数
1 | const square = (number) => { |
1 | const square = (number) => number * number; |
第二个更受欢迎
箭头函数模板
1 | const <function_name> = <parameters, ....> => { |
箭头函数的一个很好的用例
1 | const jobs = [ |
这里过滤出 isActive
值为真的 job
,并存储在 ActiveJobs
变量中
传递给函数的参数是 jobs
,函数返回值为真的作业。isActive
的 job
普通函数
1 | const ActiveJobs = jobs.filter(function (job) { |
使用箭头函数
1 | const ActiveJobs = jobs.filter((job) => job.isActive); |
或
1 | const ActiveJobs = jobs.filter((jobs) => { |
模板字符串
与使用 +
连接字符串相比,模板字符串可以以更好的方式完成这项工作
1 | const name = "Dork"; |
对于模板字符串,我们使用 `
(反引号)而不是 "
(引号),并且变量放在 ${}
内