面试总结3.16

js运行机制

js是单线程的,单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。
任务又分为同步任务和异步任务
(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
(2)主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
(4)主线程不断重复上面的第三步。

vue开发环境和生产环境中跨域的配置

开发环境环境,在vue.config.js文件中配置代理

devServer: {
    
    
	proxy: {
    
    
		···
	}
}

生产环境中,配置nginx

location / {
    
      
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

    if ($request_method = 'OPTIONS') {
    
    
        return 204;
    }
} 

如何快速定位内存溢出问题所在

在这里插入图片描述

this指向

  1. 函数是new出来的,this指向实例
  2. 函数通过call、apply、bind绑定过,this指向绑定的第一个参数
  3. 函数在某个上下文对象中调用(隐式绑定),this指向上下文对象
  4. 以上都不是,this指向全局对象
    严格模式下的不同:
  5. 独立函数调用: this 指向undefined
  6. 对象上的方法: this 永远指向该对象

猜你喜欢

转载自blog.csdn.net/qq_40026668/article/details/114887051