this关键字
一.this的含义:解析器在调用函数时,没吃都会想函数内部传递进隐藏的参数
根据函数的调用方式的不同,this会指向不同的对象
a.一函数的形式调用时,this永远都是window
b.一方法的形式调用时,this就是调用方法的那个对象
二.在js中,this会随着执行环境的改变而改变:
1.在方法中,this表示该方法所属的对象
2.如果单独使用,this表示全局对象
3.在函数中,this表示全局对象,即函数的所属者
4.在函数中,在严格模式下函数没有绑定到this上,这时this是未定义(undefined)
5.在事件中,this表示接收事件的元素,如在html 事件中,this指向接收事件的html元素
6.类似call()和apply()方法可以将this引用到任何对象(apply和caii是函数对象的方法,它们运行切换函数执行的上下文环境,即可以切换this绑定的对象)
let和const
let和const是ES6新增的两个重要关键字,let声明的变量只在let命令所在的代码块内有效;const声明一个只读的常量,一旦声明,常量的值就不能改变
let 和const的相似处:都是块级作用域;都不和它所在作用域内的其他变量或函数拥有相同的名称。
二者的区别:const声明的常量必须初始化,而let声明的变量不用;const定义常量的值不能通过再赋值修改,也不能再次声明,而let定义的变量了可以修改
var、let、const的区别:
使用var关键字声明的全局作用域变量属于window对象;
使用let关键字声明的全局作用域变量不属于window对象
在相同的作用域或块级作用域中,不能使用let关键字来重置var关键字声明的变量
在相同的作用域或块级作用域中,不能使用let关键字来重置let关键字声明的变量
let关键字在不同作用域,或不用块级作用域中是可以重新声明赋值的
在相同的作用域或块级作用域中,不能使用const关键字来重置var和let关键字声明的变量
在相同作用域或块级作用域中,不能使用const关键字来重置const关键字声明的变量
const关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的
var关键字定义的变量可以使用后声明
let关键字定义的变量需要先声明在使用
const关键字定义的常量,声明时必须初始化,且初始化后不可再修改
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。