HLJ 发布于
2018-05-31 20:49:37

在中国,有多少程序员干到40了?那么其他人去干什么了?

promise链式调用

  • then()函数

多个异步请求如何同步发生

  • 可以通过async await执行顺序

Es6新语法

  1. let let将会具有块级作用域,即在{}之间有效,同时不允许在为声明前进行使用
  2. const const为常量,不允许修改他的值
  3. 模板字符串
  4. 增强的对象字面量:【给对象属性赋值时,无需写成键值对】
  5. 解构赋值
  6. 扩展运算符 7 .Module语法
  7. 新增数据结构map
  8. 箭头函数

Let和Const区别

  1. 作用域不同(暂时性死区)
  2. 不存在变量提升现象
  3. 相同作用域不允许重复声明
  4. 顶层对象属性

let,const,var的区别

  1. const声明一个只读的常量,一旦声明就不能改变,也就意味着声明的时候就必须赋值, 不能像var那样,留在以后赋值,否则就会报错,其他的跟let相同

剪头函数的this

  1. 箭头函数的 this 指向比较特殊,它总是指向其最近的外层函数作用域的 this 所指对象

普通函数指向、构造函数的指向、Js全局指向、事件指向

  1. 普通函数-this指向调用的对象
  2. 全局函数—this指向window
  3. 事件中-this指向发生事件的dom对象
  4. 构造函数中-this指向创建出的对象。

普通函数this指向调用的对象

  1. 全局函数—this指向window
  2. 对象中的函数this指向当前对象
  3. 事件中的this指向发生事件的dom对象
  4. 定时器,这里的this指向window(常见面试题之一)

target和currentTarget的区别

  1. target:触发事件的元素。

  2. currentTarget:事件绑定的元素。

  3. 两者在没有冒泡的情况下,是一样的值,但在用了事件委托的情况下,就不一样了; 例如:

    <ul id="ulT">
    <li class="item1">fsda</li>
    <li class="item2">ewre</li>
    <li class="item3">qewe</li>
    <li class="item4">xvc</li>
    <li class="item5">134</li>
    </ul>
    <script type="text/javascript">
    document.getElementById("ulT").onclick = function  (event) {
    console.log(event.target);
    console.log(event.currentTarget);
    }
    </script>
    
  4. currentTarget始终是监听事件者,而target是事件的真正发出者。

普通函数改变指向

  1. call()
  2. apply()
  3. bind()

三个改变指向的区别

  1. 1、都是用来改变函数执行时的上下文,再具体一点就是改变函数运行时的this指向
  2. 2、区别:参数书写方式不同
  3. bind 返回的是一个新的函数,必须调用它才会被执行。

深拷贝和浅拷贝

  1. 1、浅拷贝:只复制指向某个对象的指针,而不复制这个对象本身,新旧对象共享一块内存。
  2. 2、深拷贝:复制并创建一个一模一样的对象,不共享内存,修改新对象旧对象不会变。

JSON深拷贝的缺陷

  1. 1、如果obj里面存在时间对象,JSON.parse(JSON.stringify(obj))之后,时间对象变成了字符串。
  2. 2、如果obj里有RegExp、Error对象,则序列化的结果将只得到空对象。
  3. 3、如果obj里有函数,undefined,则序列化的结果会把函数, undefined丢失。
  4. 4、如果obj里有NaN、Infinity和-Infinity,则序列化的结果会变成null。
  5. 5、JSON.stringify()只能序列化对象的可枚举的自有属性。如果obj中的对象是有构造函数生成的, 则使用JSON.parse(JSON.stringify(obj))深拷贝后,会丢弃对象的constructor。
  6. 6、如果对象中存在循环引用的情况也无法正确实现深拷贝。

有没遇到过循环引用的对象

  1. 递归

cookie的跨域

  1. 1、Nginx 正向和反向代理的区别

  2. 正向代理和反向代理的区别:正向代理隐藏真实客户端,反向代理隐藏真实服务端

  3. 2、cookie跨域问题

  4. 因为cookie存在跨域问题,其中一个解决方法是,设置Nginx代理服务器,将两个服务器域名统一到一个反向代理服务器。

  5. 3、解决顶级域名与二级域名之间的cookie跨域问题

    #通过设置domain
    #顶级域名服务器与二级域名服务器之间哪个设置都能生效
    #设置完毕后写回到客户端,用另一个服务器即可访问此Cookie
    cookie.setDomain("test.com"); 
    

    javascript事件委托是什么

  6. 在javascript中,事件委托就是利用冒泡的原理,将事件加到父元素或祖先元素上,触发执行效果。

  7. 事件委托的优点:

  8. 1、可以提高JS性能;

  9. 2、可以动态添加DOM元素,不需要因为元素的变动而修改事件绑定。

Nginx解决跨域问题

  1. 给Nginx服务器配置响应的header参数即可。
    Access-Control-Allow-Origin
    
文章来源:https://blog.csdn.net/yelvgou9995/article/details/80481648
最后生成于 2024-05-27 22:52:14
此内容有帮助 ?
0