面试1

跨域

jsonp

jsonp的原理就是动态滴创建script标签,将script标签的src的url中传入要发给其他域服务器的数据,和接收服务器返回数据的函数名字

iframe 缺点不利于seo

基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域

ES6中fetch

fetch语法糖

fetch('/test/content.json', { // url: fetch事实标准中可以通过Request相关api进行设置
    method: 'POST',
    mode: 'same-origin', // same-origin|no-cors(默认)|cors
    credentials: 'include', // omit(默认,不带cookie)|same-origin(同源带cookie)|include(总是带cookie)
    headers: { // headers: fetch事实标准中可以通过Header相关api进行设置
        'Content-Type': 'application/x-www-form-urlencoded' // default: 'application/json'
    },
    body: 'a=1&b=2' // body: fetch事实标准中可以通过Body相关api进行设置
}).then(function(res){ res: fetch事实标准中可以通过Response相关api进行设置
    return res.json();
}).then(function(data){
    console.log(data);
}).catch(function(error){
    
});

字符串截取

  • substring()
  • 功能:字符串截取,比如想从"MinidxSearchEngine”中得到"Minidx”就要用到substring(0,6)
  • 语法
  • stringObject.substring(start,stop)
  • substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
  • 如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
  • 如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
  • 如果 start 或 end 为负数,那么它将被替换为 0。
  • substr 方法
  • stringObject.substr(start [, length ])
  • 参数 描述
  • start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
  • length 可选。在返回的子字符串中应包括的字符个数。

angular双向绑定

  • angular并不存在定时脏检测。
  • angular对常用的dom事件,xhr事件等做了封装, 在里面触发进入angular的digest流程。
  • 在digest流程里面, 会从rootscope开始遍历, 检查所有的watcher。
  • 谈起angular的脏检查机制(dirty-checking), 常见的误解就是认为: ng是定时轮询去检查model是否变更。
  • 其实,ng只有在指定事件触发后,才进入$digest cycle:DOM事件,
  • 譬如用户输入文本,点击按钮等。(ng-click)
  • XHR响应事件 ($http)
  • 浏览器Location变更事件($location)
  • Timer事件($timeout, $interval)
  • 执行$digest()或$apply()

angular与vue的区别

  • angular用的是脏检查,为每一个数据设置watch,数据改动就更新。
  • vue用的是双重绑定

- CMD VS AMD

  • CMD与AMD都是为了javascript 组件化开发 AMD是requireJS CMD是Seajs
  • AMD是提前执行 不过requireJS从2.0开始也成为了延迟执行 CMD是延迟执行

display的全部属性

  • inline inline-block block none flex table-sell table

img为行内替换元素 所以可以设置宽高

input框disabled之后如何获取value值

  • 在做网站管理后台的用户修改功能时,由于当前用户修改个人信息时规定用户名不能修改,故使用了input标签的disabled属性,但是在提交数据后却发现用户名显示为空了。后来一查才知道input设置为disabled值时会有下面的限制:
  • 1、不能接收焦点;
  • 2、使用tab键时将被跳过;
  • 3、可能不是successful的。
  • 解决方法是:可以使用readonly=”readonly”属性代替即可,而input设置为readonly属性也有一些限制:
  • 1、可以接收焦点,但不能被修改;
  • 2、可以使用tab键进行导航;
  • 3、可能是successful的。

找Bug 用过firebug或者开发人员工具F12

如何解决移动端页面抖动

-webkit-backface-visibility: hidden  页面抖动

Less 特点

  • 变量
  • 混合
  • 嵌套规则
  • 运算
  • 函数
  • 作用域
  • 命名空间
  • 注释
  • 导入 import

Less原理

  • CSS预解析
  • 为css样式生成工具

gulp作用

  • Sass、Less编译
  • CSS JS 图片压缩
  • CSS JS合并
  • CSS JS 内联
  • 自动刷新
  • 雪碧图
  • ESLint
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家。(题目来...
    北冥风尘阅读 163评论 0 0
  • 1.请你谈谈Cookie的弊端 cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很...
    熊孩子CEO阅读 740评论 0 11
  • HTML&CSS:对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级...
    无目的阅读 198评论 0 0
  • 1.如何判别Object、Array对象 通过Object.prototype.toString可以检测Objec...
    卡农me阅读 468评论 0 1
  • 今天天气暖和一点天气很好,晚上回到家儿子给我开门说妈妈你累了快坐下歇歇吧。儿子给我拿拖鞋倒水给我喝儿子长大了懂事了...
    放飞心情_a7c7阅读 216评论 0 0