美文网首页
小问题笔记

小问题笔记

作者: Pretty_Boy | 来源:发表于2017-08-16 14:38 被阅读12次
  • 深拷贝,浅拷贝

此问题针对于引用类型
浅拷贝,拷贝(地址)完后,改变任意对象的值后,均改变
深拷贝,拷贝完后,与前对象无关
实现深拷贝:

  1. 开辟新的栈空间复制
  2. json序列化和反序列化后

  • XSS和CSRF

跨站脚本攻击,跨站请求伪造
前者通过在前后端对输入部分的内容进行验证过滤,并且对特殊字符进行编码
后者通过增加动态验证(二次验证),以及对cookies进行删除


  • 双向数据绑定的原理和SPA路由原理
  • 通过Object.defineProperty()实现监控数据,准确的发送变更位置给视图
  • 通过window.onhashchange事件监听url的#变化,H5新增的history api
    A)history.pushState(data, title [, url]):往历史记录堆栈顶部添加一条记录; data会在onpopstate事件触发时作为
    参数传递过去;title为页面标题,当前所有浏览器都会 忽略此参数;url为页面地址,可选,缺省为当前页地址;
    B)history.replaceState(data, title [, url]) :更改当前的历史记录,参数同上;
    C)history.state:用于存储以上方法的data数据,不同浏览器的读写权限不一样;
    D)window.onpopstate:响应pushState或replaceState的调用;

http://www.cnblogs.com/bigbearbb/p/4261017.html


  • 高效化递归函数

将需要多次计算的值,利用数组将其保存下来【记忆函数】
callee和caller
arguments.callee:指向参数arguments对象的函数【有利于匿名函数的递归和封装】
functionName.caller:指向当前函数的直接父函数

console.time(4)
let fibonacci3 = function(){
    let memo = [0,1] ;
    let fib = function(n){
        let result=memo[n] ;
        if(typeof result!=='number'){
            result=arguments.callee(n-1) + arguments.callee(n-2) ;
            memo[n]=result ;
        }
        return result ;
    };
    return fib ;
}();
console.log(fibonacci3(102));
console.timeEnd(4)

  • React、Vue、Angular

http://36kr.com/p/5085661.html


  • call和apply

object[.functionname].call(obj,arg1,arg2,...)
object[.functionname].apply(obj,[arg1,arg2,...])
作用均是使Object中的作用域变成obj的,即改变this的作用域


  • 事件流和事件委托

事件流:捕获阶段、执行阶段、冒泡阶段
捕获为由外向内触发
冒泡为由内向外触发
addEventListener() 第三个参数为bool false为冒泡阶段
stopPropagation()、stopImmediatePropagation()可阻止事件流的后续传播。
事件委托就是父元素监听子元素的冒泡事件
$('元素').on( events [, selector ] [, data ], handler )

  • promise

promise对象是一个对未来结果的一个承诺
var promise = new promise(function(resolve,reject){})实例化
resolve(data) 代表成功时返回的值
reject(data) 代表失败时返回的值
和promise.resolve()/reject效果一致
同时还有其他方法如all()等
promise的状态有三:
pending初始状态,fulfilled成功,rejected失败
改变状态后不可更改

相关文章

  • 小问题笔记

    深拷贝,浅拷贝 此问题针对于引用类型浅拷贝,拷贝(地址)完后,改变任意对象的值后,均改变深拷贝,拷贝完后,与前对象...

  • Centos7 安装mysqlclient小记

    开发的时候碰到一些小问题,防止遗忘做一下笔记。

  • Macbook出现闪屏现象怎么办

    在使用Macbook的过程中,总会出现一些小问题。你的Macbook苹果笔记本出现过闪屏现象吗?Macbook笔记...

  • Swift4.0 构造函数-KVC

    在学习swift时遇到的小问题,供自己作为笔记使用,也希望能帮到需要的人。部分资料参考http://m.blog....

  • 一个小问题笔记

    题目: auto x = sq(3.14); 实现sq,用所有你能想到的方法,看看有多少种? 题目要求实现一个函数...

  • Android开发中小问题汇总(持续更新)

    Android开发中小问题汇总(持续更新),此排序没有任何优先级或者重要程度。 此笔记只为记录平时开发中碰到的经常...

  • 书法临帖老是记不住怎么办?(续篇)

    文/安祥 [《这样读书就够了》阅读笔记二] 《书法临帖老是记不住怎么办?》,这样一个小问题、小标题,居然还有续篇,...

  • 爱种子 读书笔记 20151110

    呵呵哒!亲爱的童鞋们,又到了整理笔记的时候啦。 小童老师非常认真地看了我第一次做的笔记分享,指出一些小问题,在这里...

  • Linux 安装 Apache Jena Fuseki 3.6

    一、简介 因项目用到TDB+Fuseki,故需要在linux部署测试一下,作个笔记和小问题总结,抵抗不好的记性。。...

  • 身体之事无小事

    身体之事无小事,身体上的事情,有小问题就会有大问题,出来小问题,杀灭小问题,永远将小问题杀灭在摇篮里,就不愁有大问题。

网友评论

      本文标题:小问题笔记

      本文链接:https://www.haomeiwen.com/subject/uhxprxtx.html