前端常见的知识点(一)

各个浏览的内核和前缀

Chrome:webkit    -webkit-

Safari: webkit     -webkit-

Firefox:gecko   -moz-

IE:trident  -ms-

opera:presto  -o-

所谓的浏览器内核就是浏览器所采用的渲染引擎,渲染引起决定了浏览器如何显示网页的内容及页面的格式信息



css

1.常见的空标签:<br> <hr> <img> <link>(css规范规定:每个元素都会有display属性,确定该元素的类型,每个元素都有默认值)

2.要想写出跨浏览的CSS,必须要知道浏览器解析CSS的两种模式:标准模式和怪异模式

   标准模式:浏览器按照W3C的标准执行代码

   怪异模式:浏览器按照自己的方式执行代码,不同的浏览器执行方式不一样

   如何判断浏览器到底怎么解析文档,就是在网页中的DTD声明直接相关,DTD声明顶了标准文档的类型

3.display的属性值

   list-item:此元素会作为列表显示

   inlin-block:既具有block的宽高由具有inline的同行元素特性

   flex:设置为flex后,子元素的float、clear和vertical-align属性将失效

4.未知div大小,实现垂直水平居中与浏览器中的实现方式

<!DOCTYPE html>  
<html>  
<head>  
    <title>未知div大小,垂直水平居中</title>  
    <meta charset="utf-8">  
    <style type="text/css">
    *{margin:0;padding:0;} 
    div{
    	border:1px solid #000;
    	position: absolute;	// 主要代码	
    	left: 50%;		
    	top:50%;
    	transform:translate(-50%,-50%);
    }
    </style> 
<body>  
  <div>
  	hello<br>
  	hello word<br>
  	hello everyone<br>
  	hello<br>
  	hello word<br>
  	hello everyone
  </div>
</body>  
</html>
<!DOCTYPE html>  
<html>  
<head>  
    <title>未知div大小,垂直水平居中</title>  
    <meta charset="utf-8">  
    <style>
    *{margin:0;padding:0;}
    html,body{height:100%;}
    body{display:flex;align-items:center;justify-content:center;}
    </style>
    <div>  
       hello<br> 
       hello<br> 
       hello<br> 
       hello 
    </div>  
</div>  
</body>  
</html>
5.清除浮动的方式有

   1)给父元素定义高度

   2)clear:both

   3)定义伪类after和zoom

   4)父级定义overflow:hidden

6.盒模型

  1)content+padding+margin+border

  2)IE下:content包括padding+border

7.引入css文件有三种方式

  1)行内式:<p style="color:red;">123</p>

  2)内嵌式:<style></style>

  3)外链式:<link rel="stylesheet" type="text/css" href="路径">

8.浏览器兼容性问题:

   (1)每个浏览器默认的内外补丁都不同,所以在编写代码时,都要清除内外补丁 *{margin:0;padding:0;}

   (2)几个img标签放在一起的时候,有些浏览器会有默认的间距,清除内外补丁也没有作用,img标签添加float属性,就可以解决了

   (3)IE6认识的hack 是下划线_ 和星号 *

            IE7 认识的hack 是星号 *

   比如:height:300px;*height:200px;_height:100px; 

   IE6浏览器在读到height:300px的时候会认为高时300px;继续往下读,他也认识*heihgt, 所以当IE6读到*height:200px的时候会覆盖掉前一条的相冲突设置,认为高度是200px。继续往下读,IE6还认识_height,所以他又会覆盖掉200px高的设置,把高度设置为100px;最后识别的height:100px

9.DOCTyps作用:告知浏览器的解析器用什么文档标准解析这个文档

   标准模式:排版和js运作都是以浏览器支持的最高标准在运行

   兼容模式:页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为防止站点无法工作



HTML5

1.HTML5中form表单中新的输入控件 

   email:电子邮箱文本框,输入不是邮箱的时候,验证不能通过

   tel:电话号码

   url:网页的URL

   number:只能包含数字的输入框

   color:颜色选择器

   datetime:显示完整的日期

   time:显示时间,不含时区

   date:显示日期

2.解决HTML5新标签的浏览器兼容问题:在IE6/7/8下,支持document.createElement()方法产生的标签,可以根据这种方式创建出HTML的新标签,需要添加默认的样式

3.对语义化标签的理解:让页面内容简洁化,结构更清晰,便于浏览器搜索引擎解析,同时便于阅读代码的人对网站更容易的分块



js

1.如何减少HTTP请求,提高性能

  1)CSS Scriptes(CSS精灵图):每个图片的加载都会发送一个HTTP请求,把全网站的图标都放在一个图像文件中,用CSS的    background-iamge和background-position属性来定位像是其中的一小部分。

  2)js和css文件都只存在一份:合并脚本和css文件,可以减少HTTP请求。

2.面向对象

   面向对象中:对象下的变量叫属性,对象下的函数叫方法

   js的封装:js只有私有和公有两个封装方式

   js的继承:不是通过关键字extends,而是通过对象和原型链的方式来完成继承的

   js的多态:它本身无态,无态就是多态的一种体现

   原型链:实例对象与原型之间的链接,叫做原型链

   原型链的最外层:object.prototype

   原型:改写对象下的属性或者方法,让相同的属性或者方法在内存中只存在一份,好处就是可以提高性能

3.对作用域的理解:作用域链的作用就是保证执行环境里有权访问变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象就终止,作用域链向下访问变量是不被允许的。

4.Ajax请求过程

  1)创建一个XMLHTTPRequest对象,也就是创建一个异步调用对象

  2)创建一个新的HTTP请求,同时指定该请求的方式,URL及验证信息

  3)设置相应HTTP请求状态变化函数

  4)发送HTTP请求

  5)获取异步调用返回的数据

  6)使用js和DOM来实现局部刷新

5.js跨域请求的方式

  1)通过jsonp跨域

  2)通过修改window.domain来跨子域

  3)用PHP来请求数据,ajax请求PHP中的数据(数据代理)

6.前端性能优化的方式

  1)减少DOM操作(DOM操作会重新渲染DOM树)

  2)部署前,图片压缩,代码压缩

  3)优化js代码,减少冗余代码

  4)减少HTTP请求

7.常见的HTTP状态码

   200:请求成功

   400:发送了一个错误的请求

   404:请求失败,未找到请求的资源

   500:服务器遇到一个错误,使其无法为请求提供服务

8.js中常见的数据类型:String、Number、Boolean、null、undefined

9.js闭包:js在函数内部可以读取全局变量,在函数外部无法读取局部变量

10.事件委托:捕获、目标、冒泡(IE9不支持冒泡,解决办法就是为父元素添加事件监听,减少DOM的重排和重绘)

11.如何获取对象,对象元素

    document.getElementById('id')document.getElementsByTagName('a')

12.Ajax请求数据时,get和post的区别

    get:将获取的数据存放在url中,保密性不好,存储的数据有限,并且需要encodeURLComponent编码

    post:将数据存放在natwork中,保密性好,可以存放大量数据,但是需要send()方法

13.Ajax优点:(1)通过异步刷新,提升用户体验

                        (2)优化了浏览器和服务器之间的传输,减少了不必要的数据往返,减少宽带占用

                        (3)减少了大用户量下的服务器负载

  (4)实现动态不刷新

    Ajax缺点:(1)暴露了与服务器交互细节

                       (2)不容易调试

14.添加、移除、移动、复制、创建和查找节点

  (1)创建新节点

document.createElement(‘标签名称’) // 创建一个具体元素

   (2)添加、移除、替换、插入

        appendChild() removeChild() replaceChild() insertBefore()

   (3)查找

       getElementsByTagName() // 通过标签名称

       getElementById() // 通过元素Id,唯一属性

       getElementsByName() // 通过元素的Name属性值

15.js中的内置对象:

     数据封装类对象:object、Array、Boolean、number、string

     其他对象:function、arguments、match、date

16.this对象的理解:

    (1)this总是指向函数的直接调用者

    (2)如果有new关键字,this指向new出来的对象

    (3)在事件中,this指向触发这个事件的对象,在IE中attachEvent中this总是指向window

17.数组去重

var arr = [1,4,7,1,4,7,2,5,8];
   var arr2 = [];
   for(var i=0;i<arr.length;i++){
   	if(arr2.indexOf(arr[i]) == -1){
   		arr2.push(arr[i]);
   	}
   }
console.log(arr2);
18.随机数组中,数组可能包含数组,将数组 [1,[2,3,4],5,[6,7],8],最后转换为[1, 2, 3, 4, 5, 6, 7, 8]

var arr = [1,[2,3,4],5,[6,7],8];
var arr2 = [];
for(var i=0;i<arr.length;i++){
	if(arr[i].length == undefined){
		arr2.push(arr[i]);
	}
	if(arr[i].length !=1){
		for(var j=0;j<arr[i].length;j++){
			arr2.push(arr[i][j]);
		}
	}
}
console.log(arr2);


移动端

1.移动端的默认样式:

   默认字体设置:helvetica

   清除点击的阴影:-webkit-tap-highlight-color

   消除按钮圆角:-webkit-appearance (想要彻底的删除加上:border-radius:0)

   禁止文字的缩放:-webkit-text-size-adjust:100%

   选中文字设置:-webkit-user-select:none(不可以选中文字,有兼容性问题)

2..IOS10下设置meta禁止用户缩放是不可行的,可以用阻止PC事件document.addEventListenter(‘touchstart’,function(ev){ev.preventDefault()})解决










  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值