变量提升(先使用,后定义)
console.log(a) // 10
var a = 10;
run() //running....20
function run(){
var b = 20
console.log("running...." + b)
}
let (ES6)
const x = 1;
x = 2; //报错 const 不能再次赋值
console.log(a) //undefine let 不支持变量提升
let a = 10;
let a = 30; //报错 let 不支持在次声明
function run(){
let b = 20;
}
console.log(b) //undefine。 let块状作用域
=> 函数 (ES6)箭头函数为匿名函数,不能变量提升
a = a => a //函数名 参数 返回值(没有{},默认是返回值)
b = (c,d) => {
//箭头函数的 this
//默认指向在定义它时,它所处的对象,而不是执行时的对象,
定义它的时候,可能环境是window(即继承父级的this)
console.log(this)
}
b(1,2)
function eat(){
//普通函数的this
//1,特指调用当前的函数的对象
//2,默认情况下,没找到直接调用者,则this指的是 window
//3,在严格模式下,没有直接调用者的函数中的this是 undefined
console.log(this)
}
eat()
最常用的定时器
setTimeout(function() {
conconsole.log("已经过了一秒钟......")
}, 1000);
持续更新中……