基础知识

[].slice.call(arguments,1) ==argument.slice(1) 相关讨论
但是arguments为类数组对象,没有slice方法,所以只能通过call方法调用!


window.location 对象会返回很多对象,常用的为 host(域名) ,search(?q=sahkuadkjskji&name=sd&) ,port ,protocol(协议/http/https)


获取url传参!

  //获取url传参
    function getParam(name) {
        //该正则表达式匹配 以&或者name开头的 并且以 &结尾的
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        // window.location.search  表示?后面的参数  substr(start,length)
        var r = window.location.search.substr(1).match(reg);
        if (r != null) {
            //decodeURIComponent  解码
            //encodeURIComponent  编码
            // test1="http://www.w3school.com.cn/My first/"
            // encodeURIComponent(test1);

            //test2="http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F"
            // decodeURIComponent(test2);
            //这里为啥子是r[2]?
            return decodeURIComponent(r[2]);
        }
    }

json 格式一般有两种
参考json基础
第一种 :{key:value,name:ss}
第二种:[{},{},{}]

1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
一个对象以“{”开始,“}”结束。每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔。
packJson = {"name":"nikita", "password":"1111"}

2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。  这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
packJson = [{"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"}];
数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。

json

1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。
  2、大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。
  3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。
  4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号”",以便于不同语言的解析。
  5、JSON内部常用数据类型无非就是字符串、数字、布尔、日期、null 这么几个,字符串必须用双引号引起来,其余的都不用,日期类型比较特殊,这里就不展开讲述了,只是建议如果客户端没有按日期排序功能需求的话,那么把日期时间直接作为字符串传递就好,可以省去很多麻烦。


前端快速搭建服务器方法!

gulp 模拟服务,测试ajax


js 兼容获取可视区域宽高

documen.documentElement.clientWidth||document.body.clientWidth;

因为不声名ducument的话,第一个取不到。

clientWidth:width+padding


跨域

跨域demo

常见跨域方式为jsonp和cors(Cross Origin Resource Sharing)

jsonp 原理是客户端通过动态添加请求,在url里面携带参数,服务器根据参数返回可执行的js文件,本地通常有一个和url参数名相同的函数.

cors 服务器在res中返回Access-Control-Allow-Origin: http://api.qiutc.me

postMessage

// 主页面 blog.qiutc.com