值
值分为:基本类型和引用类型;
程序运行的本质是在内存中操作数据
引用类型都是对象;
对象的_proto_指向构造函数的prototype,构造函数的prototype也是对象,对象的_proto_指向构造函数的prototype;
对象的属性先在自己身上找,然后再沿着_proto_找;
运行时的临时环境
代码段运行前的准备工作--变量,函数,this;(if函数体:参数,arguments,自由变量的取值作用域)
所以this是调用时确定的,定义时确定不了
函数执行完(函数的执行上下文出栈)后,它的局部变量占用栈内存会被释放,拯救的方法是闭包
一个执行上下文可以激活另一个上下文,一个函数调用了另一个函数,这种实现方式是栈,我们可以称之为上下文堆栈。
this:函数运行时的上下文,this是函数的参数(相当于:obj.sayName.call(obj)),参数只有在函数调用时才确定
浏览器的线程
- js引擎线程是单线程的,主线程发起异步任务,异步任务把执行完成后把消息放到消息队列,等主线程有空了取出消息执行回调函数(AJAX、DOM事件、定时器、读写文件)
- 浏览器事件触发线程
- http请求线程
4.EventLoop轮询的处理线程
……
现代 js 框架主要在解决 UI 与状态同步的问题