跨域
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