面试总结(二)

1. 跨域

  • JSONP为什么能解决跨域问题: script标签的src属性并不被同源策略所约束。通过script标签引入js文件,这个js文件又会返回一个js函数调用,也就是请求后通过callback的方式回传结果。不受同源策略的限制;兼容性更好;支持老版本浏览器;只支持get请求;
  • jsonp返回的内容和json有什么不同:json是理想的数据交换格式,但没办法跨域直接获取,于是就将json包裹(padding)在一个合法的js语句中作为js文件传过去。这就是json和jsonp的区别,json是想要的东西,jsonp是达到这个目的而普遍采用的一种方法,当然最终获得和处理的还是json。所以说json是目的,jsonp只是手段。json总会用到,而jsonp只有在跨域获取数据才会用到。
  • CORS 跨域: 普通跨域请求:只需服务器端设置Access-Control-Allow-Origin;带cookie跨域请求:前后端都需要进行设置,根据xhr.withCredentials字段判断是否带有cookie
  • vue-jsonp: vue中使用jsonp方式跨域
  • 反向代理
module.exports = {
  devServer: {
    open: true,
    proxy: {
      "/api": {
        target: "http://192.168.0.17:8088",
        changeOrigin: true, //允许跨域
        pathRewrite: {
          "^/api": "",
          //会将请求/api/xuanke/index.php替换为/xuanke/index.php
        },
      },
    },
  },
};

复制代码

2. CSS选择器( 三大特性 )

常用选择器:

  1. 标签选择器: span { color: red }
  2. 通用选择器: * {color: red }
  3. 类选择器: .className: { color: red}
  4. id选择器: #idName: {color: red}
  5. 后代选择器: .parent .child {}
  6. 子选择器: div > span {}
  7. 相邻兄弟选择器: .parent + .child {}
  8. 通用兄弟选择器: .parent ~ .child {}
  9. 并集选择器: .parent ,.child {}
  10. 交集选择器: div.className(#id)

css三大特性:
1、继承:父级文本样式被子级继承
2、层叠:当样式发生冲突时,权重低的样式会被覆盖
3、优先级:
!important > 行内样式 > id > 类 > 标签 > * > 继承
遵循就近原则

猜你喜欢

转载自juejin.im/post/7036576151208214564