(function(){
'use strict'
var a=b=3//这儿由于严格模式,将会出错
})()
console.log(a)
console.log(b)
//Uncaught ReferenceError: b is not defined,a不会打印
关于严格模式:戳这里
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