行内元素有那些 块级元素有那些 空元素有哪些
-
行内元素:不能实现宽度高度,横向显示
- a,span,i,em,var,b,strong,sup,sub,s,del,label,font,mark
-
块级元素:能设置宽度高度,纵向显示,并且默认站宽一整行
- h1~h6,p,div,ul,ol,li,dl,dt,dd,table,form,hr,fieldset,legend,marquee,iframe,header,nav,footer,section,main,figure,figcaption,hgroup,aside,article
-
行内块元素:能设置宽度高度,并且横向显示
- input,img,select,textarea
-
空元素:就是单标签
- input,img,br,meta,link,hr
-
置换元素:因为默认自带宽度告诉浏览器能进行根据类型路径加载对应的内容
- input,img,select,textarea
html页面渲染方式和流程
- 用户输入url地址,浏览器根据域名寻找IP地址
浏览器向服务器发送http请求,如果服务器段返回以301之类的重定向,浏览器根据相应头中
的location再次发送请求服务器端接受请求,处理请求生成html代码,返回给浏览器,这时的html页面代码可能是经过压缩的浏览器接收服务器响应结果,如果有压缩则首先进行解压处理,紧接着就是页面解析渲染
- 解析渲染该过程主要分为以下步骤:
解析HTML----构建DOM树----DOM树与CSS样式进行附着构造呈现树------布局、绘制
- 详细过程如下:
1)用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务
器返回html文件。
2)浏览器开始载入html代码,发现标签内有一个标签引用外部CSS文件。
3)浏览器又发出CSS文件的请求,服务器返回这个CSS文件。
4)浏览器继续载入html中部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了。
5)浏览器在代码中发现一个标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图
片下载完,而是继续渲染后面的代码。
6)服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要
回过头来重新渲染这部分代码。
7)浏览器发现了一个包含一行Javascript代码的标签,赶快运行它。
8)Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个
内置对象
JS 中分为七种内置类型,七种内置类型又分为两大类型:基本类型和对象( Object )。
-
基本类型有六种: null , undefined , boolean, number , string , symbol 。其中 JS 的数字类型是浮点类型的,没有整型。并且浮点类型基于 IEEE 754 标准实现,在使用中会遇到某些 Bug。 NaN 也属于 number 类型,并且 NaN 不等于自身。
-
对于基本类型来说,如果使用字面量的方式,那么这个变量只是个字面量,只有在必要的时候才会转换为对应的类型。
-
内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
内置对象最大的优点就是帮助我们快速开发
JavaScript 提供了多个内置对象:Math、 Date 、Array、String等- Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。Math数学对象 不是一个构造函数 ,所以我们不需要new 来调用 而是直接使用里面的属性和方法即可
- Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用Date 实例用来处理日期和时间 var date = new Date();
- 数组对象 (创建的两种方式为: 字面量创建 和 new Array())
- 字符串对象 String
深拷贝和浅拷贝
- 浅拷贝是创建一 个新对象,这个对象有着原始对象属性值的一-份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址。(Object.assing()和JSON转换都可以实现深拷贝)
- 深拷贝是将一 个对象从内存中完整的拷贝-份出来,从堆内存中开辟- -个新的区域存放新对象。
- 区别:浅拷贝基本类型之前互不影响,引用类型其中一个对象改变了地址,就会影响另-一个对象;深拷贝改变新对象不会影响原对象,他们之前互不影响。