zoukankan      html  css  js  c++  java
  • javascript知识点复习

    ---恢复内容开始---

    1.js垃圾回收机制

      a.标记清除:当变量进入执行环境时会被垃圾回收器标记为“进入环境”,离开执行环境时会被标记为“离开环境”,等到垃圾回收器运行时给存储在内存中的所有变量添加标记,然后去掉环境中的变量以及被环境中的变量所引用的变量的标记,留下存在标记的就是要被删除的变量。(IE 使用)

      b.引用计数:申明一个变量并将引用类型的值赋给该变量时引用次数加一,如果该变量的值变为另一个则引用次数减一,当这个值的引用次数减到零时它占用的内存空间就会回收(BOM和DOM使用),缺点是容易造成内存泄漏。

    2.js的组成

      ECMAScript,DOM和BOM

      DOM:文档对象模型,通过它可以访问HTML文档的所以元素。

      BOM: 浏览器对象模型,通过它是使js有能力与浏览器进行对话。

      ECMAScript:核心组成部分,是js的规格,js是ECMAScript的实现。

    3.什么是同源策略,为什么要有同源限制。

      同源是指协议,域名和端口相同。它是一种约定,是浏览器最核心也是最基本的安全保障,如果没有同源策略则浏览器的正常功能可能都会收到影响。

    4.怎样进行跨域请求

      第一种方式:jsonp请求;jsonp的原理是利用<script>标签的跨域特性,可以不受限制地从其他域中加载资源,类似的标签还有<img>.

      第二种方式:document.domain;这种方式用在主域名相同子域名不同的跨域访问中

      第三种方式:window.name;window的name属性有个特征:在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久        存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。

      第四种方式:window.postMessage;window.postMessages是html5中实现跨域访问的一种新方式,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源。

      第五种方式:CORS;CORS背后的基本思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是应该失败。

      第六种方式:Web Sockets;web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。

    5.js的懒加载和预加载

      懒加载:又称延迟加载,包括defer和asyns,实现原理是将img图片或其他元素的背景图换成一张固定大小的占位图,只有当图片位置进入可视区域时才会设置图片真正路径进行加载。

      预加载:提前加载图片,当用户查看时可直接从本地中提取渲染。

    6.事件和事件机制

      事件:事件是由事件源引起的网页中的某个操作

      事件机制:事件冒泡(由具体元素到window)和事件捕获(由window到具体元素),阻止方法是ev.stopPropagation().注意IE旧版本的方法是ev.cancelBubble = true 。

    7.事件监听和事件代理(事件委托)

      事件监听:事件监听是为了解决普通事件绑定事件操作会覆盖之前的事件,dom对象.andEventListener(event,function,capture)。capture=false在冒泡阶段执行,capture= true 在捕获阶段执行。

      事件委托:也叫事件代理,解决多次获取DOM操作元素,利用事件冒泡机制实现。

    8.函数声明和函数表达式

      函数声明:function demo(e){ return e==type}

      函数表达式: var demo = function(e){ return e == type} 

      不同点:Javascript 中函数声明和函数表达式是存在区别的,函数声明在JS解析时进行函数提升,因此在同一个作用域内,不管函数声明在哪里定义,该函数都可以进行调用。而函数表达式的值是在JS运行时确定,      并且在表达式赋值完成后,该函数才能调用。

    9.闭包

      有权访问另一个函数作用域变量的函数

    10.正则表达式

      描述字符串特征的模式来匹配特定的字符串。

    11.IE和DOM事件流

      IE采用的是冒泡事件(button->div->body),DOM采用的是先捕获后冒泡(body->div->button->button->div->body)。

      IE使用: [Object].attachEvent("name_of_event_handler", fnHandler); //绑定函数
             [Object].detachEvent("name_of_event_handler", fnHandler); //移除绑定

      DOM使用:
          [Object].addEventListener("name_of_event", fnHandler, bCapture); //绑定函数
          [Object].removeEventListener("name_of_event", fnHandler, bCapture); //移除绑定

    12.js节点类型及如何判断

      节点类型有元素节点,属性节点,文本节点,注释节点,文档节点。

      用nodeObject.nodeType来判断节点,nodeObject为DOM节点,该属性返回用数字表示节点类型。

    13.js变量类型及如何判断

      数据变量类型有number,string,boolean,null,undefined。引用类型number,object,array

      用typeof来判断变量的类型,用instanceof来判断是不是该类的实例化对象(某个对象是否被另一个类构造)。

    14.js原型链

      javascrip中每一个对象都有一个Prototype属性,称为原型,而原型的值也是一个对象,因此它也有自己的原型这样就串联起来了一条原型链,原型链的链头是object,它的prototype比较特殊,值为NULL.

      原型链的作用是用来继承

      

    ---恢复内容结束---

  • 相关阅读:
    Codeforces 375D Tree and Queries(DFS序+莫队+树状数组)
    HDU 5972 Regular Number(字符串shift
    HDU 5905 Black White Tree(树型DP)
    BZOJ 3675 [Apio2014]序列分割 (斜率优化DP)
    2017 ACM/ICPC Asia Regional Guangxi Online 记录
    2017 ACM/ICPC Asia Regional Beijing Online 记录
    2017 ACM/ICPC Asia Regional Xian Online 记录
    2017 ACM/ICPC Asia Regional Qingdao Online 记录
    django中models字段的联合限制
    redis使用摘要
  • 原文地址:https://www.cnblogs.com/newCoo/p/11140158.html
Copyright © 2011-2022 走看看