深入web
该栏目记录深入web知识和数据结构和算法
李国庆❀
用最孤独的时光塑造出最好的自己,才能笑着对别人说那些云淡风轻的过去。
展开
-
typeof 运算符与深拷贝
typeof 运算符与深拷贝 typeof 运算符 首先我们来探究 typeof 究竟能判断出来哪些数据类型。 判断值类型 let a; const b = 'abc'; const c = 100; const d = true; const e = Symbol('d'); typeof(a) // "undefined" typeof(b) // "string" typeof(c) // "number" typeof(d) // "boolean" typeof(e) // "symbol"原创 2020-09-08 18:55:27 · 189 阅读 · 0 评论 -
new运算符优先级问题
这里收录一道阿里的变态面试题!!! function Foo() { getName = function() { console.log(1); }; return this; } Foo.getName = function() { console.log(2); }; Foo.prototype.getName = function() { ...原创 2020-03-30 20:53:10 · 1143 阅读 · 1 评论 -
子元素在父元素中水平垂直居中的六种方法
这里介绍六种方法使子元素在父元素中水平垂直居中,并且分析其优缺点。 目录 定位:三种 display: flex JavaScript display: table-cell 首先给出页面结构和默认背景色: (由于在浏览器中的显示结果都是水平垂直居中,所以就不附加运行图了。) HTML <div class="parent"> <div class="child"&g...原创 2020-03-29 22:22:17 · 1636 阅读 · 0 评论 -
CSS中两种盒模型
在CSS盒模型的默认定义中,对一个元素设置的width和height只会应用到这个元素的内容区。 如果这个元素有任何的border或padding,绘制到屏幕上时的盒子宽度和高度会加上设置的边框和内边距值。这意味着当你调整一个元素的宽度和高度时需要时刻注意到这个元素的边框和内边距。当我们实现响应式布局时,这个特点尤其烦人。 box-sizing 属性可以被用来调整这些表现: content-b...原创 2020-03-29 17:11:10 · 96 阅读 · 0 评论 -
H5与HTML5
H5 != HTML5 H5是一个产品名词,HTML5是一个技术名词。H5不是一项技术,而是一个标准。 HTML5指的是包括 HTML 、 CSS 和 JavaScript 在内的一套技术组合。它希望能够减少网页浏览器对于需要插件的丰富性网络应用服务( Plug-in-Based Rich Internet Application , RIA ),例如: AdobeFlash 、 Microsof...原创 2020-03-29 16:43:31 · 253 阅读 · 0 评论 -
H5 新增标签
该页列出所有HTML5新增的有效标签。 脚本 Element Description <template> 通过 JavaScript 在运行时实例化内容的容器。 章节 Element Description <section> 定义文档中的一个章节 <nav> 定义只包含导航链接的章节 <article>...原创 2020-03-29 15:58:12 · 188 阅读 · 0 评论 -
meta viewport
浏览器的viewport是可以看到Web内容的窗口区域,通常与渲染出的页面的大小不同,这种情况下,浏览器会提供滚动条以滚动访问所有内容。 窄屏幕设备(如移动设备)在一个虚拟窗口或视口中渲染页面,这个窗口或视口通常比屏幕宽;然后缩小渲染的结果,以便在一屏内显示所有内容。然后用户可以移动、缩放以查看页面的不同区域。例如,如果移动屏幕的宽度为640px,则可能会用980px的虚拟视口渲染页面,然后缩小页...原创 2020-03-29 15:25:43 · 180 阅读 · 0 评论 -
HTML 语义化
什么是 HTML 语义化 ? 例如:添加标题使用<h1>到<h6>标签,添加段落使用<p>标签,添加时间使用<time>标签等等。 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。 为什么要语义化? HTML 的发展有几个阶段: 荒野阶段:该阶段的页面都由后台来实现,...原创 2020-03-29 15:06:54 · 108 阅读 · 0 评论 -
链表_链表封装
链表结构本身就是一种可以代替数组的结构,所以它的操作与数组的操作非常类似。 与数组比较,它们都可以存储一系列的元素,但是实现的机制完全不同。 数组有很多缺点: 数组需要申请一段连续的内存空间,并且大小是固定的(大多数编程语言),所以在数组增加元素时需要扩容。(一般情况下是申请一个更大的连续内存空间,比如2倍,再将元素复制过去) 在数组的中间或末尾插入元素成本很高,因为它内部需要改变插入位置后面的...原创 2020-03-24 15:22:08 · 675 阅读 · 0 评论 -
优先级队列_优先级队列封装
我们已经了解过了队列,接下来了解一下什么是优先级队列: 其实程序就是对生活的一种描述,之前我们了解过队列,一个队列就好比生活中我们去火车站进站,每个人都需要排队,依次进站乘车。 但是我们考虑到这个一个现象: 在火车站进站时,都会规定军人优先,这里就涉及到了优先级的概念。在程序中亦是如此,队列也有优先级队列之说。 接下来实现一下优先级队列的封装: function PriorityQueue()...原创 2020-03-24 11:35:05 · 154 阅读 · 0 评论 -
队列_队列结构封装
队列(Queue)结构满足先进先出Fifofirst in first out。 队列使用的方法有: enqueue() dequeue() front() size() toString() 与之前的栈结构的方法相似,唯一不同就是第二个方法,栈是删除最后一个元素,而队列是删除第一个元素: function Queue() { // 属性 this.item = []; ...原创 2020-03-24 10:23:18 · 163 阅读 · 0 评论 -
栈_栈结构封装
栈(Stack)结构满足Lifo(Last in first out)。 栈常见的操作有: push() pop() peek() isEmpty() size() toString() 接下来使用JavaScript来封装一个栈结构: function Stack() { this.item = []; // 栈的相关操作 // 1. 将元素压入栈 Stack...原创 2020-03-23 22:28:40 · 204 阅读 · 0 评论