关于严格模式:戳这里
var p=new Promise(function(resolve){ console.log(1) resolve() }).then(function(){ console.log(4) }) console.log(2) console.log(3) //1 2 3 4 setTimeout(()=>console.log(4),0) var p1=new Promise(function(resolve,reject){ console.log(6) setTimeout(()=> console.log(3),0) resolve('hello') }).then(function(val){ console.log(val) }) setTimeout(()=> console.log(2),0) console.log(5) //6 5 hello 4 3 2 var length = 10 function fn(){ alert(this.length) } var obj = { length: 5, method: function(fn) { fn() // 10 arguments[0]() // 1 } } obj.method(fn) function f1(){}; var f2 = function(){}; var f3 = new Function('str','console.log(str)'); var o3 = new f1(); var o1 = {}; var o2 =new Object(); console.log(typeof Object); //function console.log(typeof Function); //function console.log(typeof o1); //object console.log(typeof o2); //object console.log(typeof o3); //object console.log(typeof f1); //function console.log(typeof f2); //function console.log(typeof f3); //function