1、typeof有6种类型:
undefined, boolen, string, number, object(null), function。
对象未初始化时一般先赋值null而不是其他值。
null == undefined //true
null === undefined //false

2、值为false:0, "", NAN, false, null, undefined

3、JS短路运算
&&:为真,返回最后一个数,为假,返回第一个数;
||:为真,返回第一个数,为假,返回最后一个数。

4、responseText:通常纯文本、json、(X)HTML都使用responseText。
responseXML:通常返回XML格式文档,返回XML文档时servlet要设置;可以使用DOM节点树和属性对XML文档对象进行检查和解析。

5、分页:
分页是服务器把某页需要的数据从数据库里面取出来,放到模板上面,生成HTML页面返回给浏览器,最终呈现在用户面前。
动态加载算是分页的一种。

6、存储

(1)cookie有长度限制,有个数限制,可以通过每个cookie里面设置子cookie来增加cookie数量。不能跨页面,有过期时间。

web storage

(2)sessionStorage和cookis类似,不过可以跨页面,适合小段数据存储,浏览器支持的话浏览器崩溃后重启依然可用。本地运行不可用。

(3)globalStorage(HTML5中被localStorage取代)用来跨会话存储,不过需要指定哪些域可以访问该数据,数据存储到通过JavaScript删除或者是用户清除浏览器缓存。

(4)localStorage,和globalStorage类似,不过规则更加严格,页面必须来自同一域名(子域名无效)、协议、端口,数据存储到通过JavaScript删除或者是用户清除浏览器缓存。

7、AJAX(Asynchronous JavaScript and XML):

无需刷新即可从服务器取得数据、动态加载页面。

status:
0:无缓存
1:闲置
2:检查中
3:下载中
4:更新完成
5:废弃

8、GET和POST区别:

    GET方法:
    (1)、使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:
    (2)、GET请求能够被缓存
    (3)、GET请求会保存在浏览器的浏览记录中
    (4)、以GET请求的URL能够保存为浏览器书签
    (5)、GET请求有长度限制
    (6)、GET请求主要用以获取数据
    (7)、安全性: 查询字符串会显示在地址栏的URL中,不安全,请不要使用GET请求提交敏感数据
    (8)、数据类型限制: 只允许ASCII字符类型
 

    POST方法:
    (1)、使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器:
    (2)、POST请求不能被缓存下来
    (3)、POST请求不会保存在浏览器浏览记录中
    (4)、以POST请求的URL无法保存为浏览器书签
    (5)、POST请求没有长度限制
    (6)、POST请求主要用于传递数据
    (7)、安全性:因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST求情比GET请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输
    (8)、数据类型限制:没有限制。允许二进制数据

9、JSON:
没有分号和变量,不支持undefined类型;
js不能直接读取JSON变量。js直接写JSON时最好写完后再使用Stringify()转成JSON。

10、事件委托:利用了事件冒泡,只指定一个事件处理程序,就能够管理某一类型的所有事件。使用事件委托,只需在DOM树中尽量最高的层次上添加一个事件处理程序。

11、闭包是指有权访问另一个函数作用域中变量的函数。闭包实现了封装。闭包只能返回包含函数中任何变量的最后一个值。闭包容易造成内存泄漏。

12、this对象运行时是基于函数的执行环境绑定的。匿名函数的执行环境具有全局性,因此其this对象通常指向window。函数执行都会取得this和arguments。

13、DOM:
(1)insertAdjacentHTML():
  beforebegin:同辈元素,之前插入
  afterend:同辈元素,之后插入
  beforeend:子元素,插入最后
  afterbegin:子元素,插入最前
(2)classList
  contains:是否包含类
  add:添加类
  remove:删除类
  toggle:添加或者删除类
  完全修改或者删除类采用className

14、call,apply,bind方法的用法、联系和区别

  这三个方法都是用于指定函数内部的this指向的问题,方式都差不多,只是存在使用形式上的不同。

  (1):第一个参数都是指定函数内部中this的指向(函数执行时所在的作用域),然后根据指定的作用域,调用该函数。

  (2):都可以在函数调用时传递参数。call,bind方法需要直接传入,而apply方法需要以数组的形式传入。

  (3):call,apply方法是在调用之后立即执行函数;而bind方法没有立即执行,只是赋值。要执行需要在后面加上()来立即调用。

 15、跨域

  JavaScript的安全策略中不允许跨域调用其它页面的对象。跨域是指同一域名不同端口、同一域名不同协议域名和域名对应IP、主域名相同子域名不同(次级域名不同)、不同域名之间对象的调用。有src的都可以实现跨域。

16、web优化:

  加缓存。

 

  几乎绝大部分优化都围绕这个来进行的。让用户最快的看到结果。

  相同的JS、CSS、图片等使用浏览器缓存

  1)、根据服务器端的响应header,一个文件对浏览器而言,有几级不同的缓存状态。

  (1)服务器端告诉浏览器不要缓存此文件,每次都到服务器上更新文件。

  (2)服务器端没有给浏览器任何指示。

  (3)在上次传输中,服务器给浏览器发送了Last-Modified或Etag数据,再次浏览时浏览器将提交这些数据到服务器,验证本地版本是否最新的,如果为最新的则服务器返回304代码,告诉浏览器直接使用本地版本,否则下载新版本。一般来说,有且只有静态文件,服务器端才会给出这些数据。

  (4)服务器强制要求浏览器缓存文件,并设置了过期时间。在缓存未到期之前,浏览器将直接使用本地缓存文件,不会与服务器端产生任何通信。

  2)、从输入URL到页面呈现需要下面5个步骤

  (1)输入URL地址或者点击URL的一个链接

  (2)浏览器根据URL地址,结合DNS,解析出URL对应的IP地址

  (3)发送HTTP请求

  (4)开始连接请求的服务器并且请求相关的内容

  (5)浏览器解析从服务器端返回的内容,并且把页面显现出来

  3)、浏览器就向服务器发送HTTP的请求,过程如下:

  (1)浏览器通过发送一个TCP的包,要求服务器打开连接

  (2)服务器也通过发送一个包来应答客户端的浏览器,告诉浏览器连接开了。

  (3)浏览器发送一个HTTP的GET请求,这个请求包含了很多的东西了,例如我们常见的cookie和其他的head头信息。


  压缩信息。

  1)、静态资源压缩,(合并js、css、图片,使用grunt压缩,使用背景图片background-image定位等替代加载的图片)

  2)、内容的滚动加载(瀑布流),

  3)、异步请求,

  4)、http请求合并

  5)、减少http请求等。

  6)、使用外部的JS和CSS

 

  分布、集群。(分散单个服务器的压力,加快并行下载速度)

  1)、cdn缓存加速

  2)、动静分离

17、map(), forEach(), some(), every(), filter():

  可以从右到左省略参数(对应数组元素、对应数组索引、数组,全部都不改变原数组。
  (1)map(element, index, array)
  执行每一项并通过return返回值,return返回的值为当前索引对应的值
  (2)forEach(element, index, array)
  执行每一项,但没有return,不改变原来数组,但可以通过索引改变原来数组对应的值
  (3)some(element, index, array)
  有一项为true则返回true,否则返回false
  (4)every(element, index, array)
  所有项返回true才返回true,否则返回false
  (5)filter(element, index, array)
  创建新的数组,返回为true的数组的元素

18、优雅降级、渐进增强

  渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
  优雅降级 graceful degradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
  区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。

19、端口(默认)
  Http:80
  Https:443
  Ftp:20或21(更常用)

20、Http状态码:
  成功
    200 OK
  重定向
    304 Not Modified
  请求错误
    400 Bad Request
    403 Forbidden
    404 Not Found
  服务器错误
    502 Bad Gateway 

21、作用域链:
  在执行环境中对变量与函数的有权访问和有序访问。

posted on 2016-08-26 11:51  乔啊乔  阅读(168)  评论(0编辑  收藏  举报