Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Outline

cdn加速网站加载速度的原因

涉及到跨域问题,网站加速 1.会选择最近的节点 2.不同域名的资源,浏览器同时加载同一域名的资源数量有限制

跨域(jsonp,cors)

拥有src属性的标签不受跨域的限制<script>,,<iframe> 动态生成的script的src属性里将参数包括callback传递给服务端 远程js文件调用本地页面里面的callback(data),将数据传进来。

clone 一个对象

浅拷贝

数组,对象深拷贝:

   js的slice方法返回一个新数组(不会修改原素组)
   var arr = ["One","Two","Three"];
   var arrtoo = arr.slice(0);
   arrtoo[1] = "set Map";
   js的concat方法(返回连接数组的副本,不会改变原数组)
   var arr = ["One","Two","Three"];
   var arrtooo = arr.concat();
   arrtooo[1] = "set Map To";
   var cloneObj = function(obj){
     var str, newobj = obj.constructor === Array ? [] : {};
     if(typeof obj !== 'object'){
         return;
     } else if(window.JSON){
         str = JSON.stringify(obj), //序列化对象
         newobj = JSON.parse(str); //还原
     } else {
         for(var i in obj){
             newobj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i]; 
         }
     }
     return newobj;
 };

jquery:

var y = $.extend({}, x),          //shallow copy
    z = $.extend(true, {}, x);    //deep copy

参考文献

typeof 返回值

   undefined boolean string object(object,null,Array) function

闭包,面向对象(ES6的写法)

   function People(name){
       this.name = name;
       this.say = function(){
           console.log(this.name)
       }
   }
   var join = new People('join')
   join.name
   join.say()
   class People{
       constructor(name){
           this.name = name;
       }
       say(){
           console.log(this.name)
       }
   }

event bus

垂直水平居中一个元素(高度不固定)

sum(1,2)===sum(1)(2)

function sum() {
  var num = arguments[0];
  if(arguments.length === 2) {
    return arguments[0] + arguments[1]
  } else {
    return function(sec) {
       return num + sec;
    }
  }
 
}
function add(x) {
    var sum = x;
    var tmp = function (y) {
        sum = sum + y;
        return tmp;
    };
    tmp.toString = function () {
        return sum;
    };
    return tmp;
}
console.log(add(1)(2)(3));  //6
console.log(add(1)(2)(3)(4));   //10
function add () {
    var args = Array.prototype.slice.call(arguments);
 
    var fn = function () {
        var arg_fn = Array.prototype.slice.call(arguments);
        return add.apply(null, args.concat(arg_fn));
    }
 
    fn.valueOf = function () {
        return args.reduce(function(a, b) {
            return a + b;
        })
    }
 
    return fn;
}
add(1) // 1
add(1,2)(3) //6
add(1)(2)(3)(4)(5) // 15

参考文献

js获取url参数

function UrlSearch() 
{
   var name,value; 
   var str=location.href; //取得整个地址栏
   var num=str.indexOf("?") 
   str=str.substr(num+1); //取得所有参数   stringvar.substr(start [, length ]

   var arr=str.split("&"); //各个参数放到数组里
   for(var i=0;i < arr.length;i++){ 
    num=arr[i].indexOf("="); 
    if(num>0){ 
     name=arr[i].substring(0,num);//第二个参数表示截取到多少位
     value=arr[i].substr(num+1);//第二个参数表示截取多少位
     this[name]=value;
     } 
    } 
} 
var Request=new UrlSearch(); //实例化

==与===区别

涉及到数据类型的转换

HTML5,css3新增的特性

js实现继承

浏览器缓存

etag,last-modified,cache-control

计算机基础知识

操作系统,数据结构,算法,通讯协议

Morty Proxy This is a proxified and sanitized view of the page, visit original site.