在不断学习的同时也要回过头看看那些自己遗忘的,没记牢固的知识点,分享一下小编遗忘的知识。

DOM对象 和 jQuery对象有什么不同

DOM对象
DOM对象是由W3C制定的, 浏览器实现的现有对象, 里面的API非常繁琐。
jQuery对象
1)jQuery对象是由jQuery库创建的,第三方实现的
2)DOM对象只能使用原生的 JS API
3)jQuery对象使用jQuery对象自己的API

数组去重 eg:var arr = [‘a’,’b’,’234’,’a’,‘b’,3,1,234];(在原型链上编程)

Array.prototype.aaa = function(){
		this.newarrs = [];
		return Array.from(new Set(this.arrs));
}
        
Array.prototype.method1=function () {
        var arr=[];
        for(var i=0;i<this.length;i++){
            if(arr.indexOf(this[i])==-1){
                arr.push(this[i]);
            }
        }
        return arr;
 }

将页面的div设置为全屏,且改变背景颜色

网页页面或多或少都会存在空白的间隙,要想div全屏显示需要用到一个选择器 (:root)
概述 :root 这个 CSS 伪类匹配文档树的根元素。对于 HTML 来说,:root 表示 元素,除了优先级更高之外,与 html 选择器相同。在声明全局 CSS 变量时 :root 会很有用。

<style type="text/css">
	:root{
			height: 100%;
		}
	body{
		margin: 0;
		height: 100%;
	}
	div{
		height: 100%;
		width: 100%;
		background-color: red;
	}
</style>

js对象和自定义构造函数创建对象的原理

1)构造函数的 prototype 属性值就是原型、 原型也是一个对象
2)对象来说 有一个 proto (隐式)属性的值祖先(原型)
3)构造函数来说 有一个 prototype 属性 值 是原型

时间线的顺序

1、创建Document对象,开始解析web页面。解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中,这个阶段document.readyState = ‘loading’.    
2、遇到link外部css,创建线程加载,并继续解析文档。
3、遇到script外部js,并且没有设置async、defer,浏览器加载,并阻塞,等待js加载完成并执行该脚本,然后继续解析文档。
    -解析的同步js文件-
4、遇到script外部js,并且设置有async、defer,浏览器创建线程加载,并继续解析文档。对于async属性的脚本,脚本加载完成后立即执行。    
    -异步禁止使用document.write(),因为document.write()有可能会清空文档流
        chrome浏览器禁止了外部异步的js文件使用document.write()方法
    -
5、遇到img等,先正常解析dom结果,然后浏览器异步加载src(图片资源),并继续解析文档。
6、当文档解析完成,document.readyState = ‘interactive’.
7、文档解析完成后,所有设置有defer的脚本按照顺序执行。
8、document对象触发DOMContentLoaded事件,这也标志着程序执行从同步脚本执行阶段,转换为事件驱动阶段。
    -事件驱动阶段:浏览器正常发挥功能-
9、当所有async的脚本的加载完成并执行后、img等加载完成后,document.readyState = ‘complete’,window对象触发load事件
    -页面所有的内容解析完成 加载完成-  
10、从此,以异步响应式处理用户输入、网络事件等。

TCP与UDP的区别

TCP: 是非常可靠地传输协议,会一直传输到你成功接收到为止。很负责
UDP: 而UDP却只会传输一次,不管你是否成功接收。很不负责

浏览器端不同存储的区别

cookie, localStorage ,sessionStorage ,web SQL, indexedDB,他们都是保存在浏览器端,且同源的。

区别:
1.cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

2.存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,2.5M~10M(根据浏览器的不同)。web SQL与indexedDB无上限。

3.数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。web SQL与indexedDB永久有效

4.作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage ,cookie,web SQL,indexedDB在所有同源窗口中都是共享的。

5.web SQL是关系数据库,引入了一组使用 SQL 操作客户端数据库的 API。indexedDB是非关系数据库

css实现文字溢出打点

div{
      width: 200px;
      height: 50px;
      background-color: #abcdef;
      /* 单行文字溢出处理 */
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis; 
}
div{
      width: 200px;
      height: 100px;
     /* 多行文字溢出处理 */
       overflow: hidden;
       text-overflow: ellipsis; 
       /* 设置盒子样式,-webkit-是兼容前缀 */
       display: -webkit-box;
       /* 设置盒子参考方式 */
       -webkit-box-orient: vertical;
       /* 设置超出多少行显示省略号 */
       -webkit-line-clamp: 3;
}

DOCTYPE的作用,标准模式与混杂模式的区分以及它们的何意义

声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。声明必须在 HTML 文档的第一行,这并不是一个 HTML 标签。

标准模式:又称严格模式,是指浏览器按照 W3C 标准解析代码。
混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。
区分:如果不写DOCTYPE就是混杂模式,否则就是标准模式
意义:混杂模式可以向下兼容低版本的浏览器

worker

Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。这样的好处是,一些计算密集型或高延迟的任务,被 Worker 线程负担了,主线程(通常负责 UI 交互)就会很流畅,不会被阻塞或拖慢。

Worker 线程一旦新建成功,就会始终运行,不会被主线程上的活动(比如用户点击按钮、提交表单)打断。这样有利于随时响应主线程的通信。但是,这也造成了 Worker 比较耗费资源,不应该过度使用,而且一旦使用完毕,就应该关闭。

Web Worker 有以下几个使用注意点。
(1)同源限制
分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。

(2)DOM 限制
Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用document、window、parent这些对象。但是,Worker 线程可以navigator对象和location对象。

(3)通信联系
Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。

(4)脚本限制
Worker 线程不能执行alert()方法和confirm()方法,但可以使用 XMLHttpRequest 对象发出 AJAX 请求。

(5)文件限制
Worker 线程无法读取本地文件,即不能打开本机的文件系统(file://),它所加载的脚本,必须来自网络。

DOM事件的三个过程

1、捕获:由外 向内,记录各级元素上绑定的相同事件 IE8中无此阶段
2、目标触发: 首先触发目标元素上的事件处理函数
3、冒泡:按照捕获顺序的反向,有内到外,依次触发各级父元素绑定的事件处理函数

异步加载js方案

1、只能IE用(IE9以下),等到dom文档完全解析完才会被执行
<script src="01.js" defer></script>
2async 加载完就执行 w3c标准方法
<script src="01.js" async></script>
3、创建script,插入到DOM,加载完毕后callback  按需加载
<script>
      function loadScript(url,callback){
          var script = document.createElement('script');
          script.type="text/javascript";
         if(script.readyState){
              script.onreadystatechange = function(){
                  if(script.readyState == 'complete' || script.readyState=='loaded'){
                      callback || callback();
                  }                    
              }
         }            
          script.src = url;
          document.head.appendChild(script);
      }
</script>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐