1、 请写出至少20个HTML5标签
<article><aside> <audio><video> <canvas><datalist><command> <details><embed> <figcaption><figure> <footer><header><nav><section> <hgroup><keygen> <mark><time><summary>
2、 简述jpg。Gif。png-8.png-24的区别,分别使用场景
gif、jpg、png格式的图片在网站制作中的区别
Gif格式特点:
1.透明性,Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha透明)。
2.动画,Gif这种格式支持动画。
3.无损耗性,Gif是一种无损耗的图像格式,这也意味着你可以对gif图片做任何操作也不会使得图像质量产生损耗。
4.水平扫描,Gif是使用了一种叫作LZW的算法进行压缩的,当压缩gif的过程中,像素是由上到下水平压缩的,这也意味着同等条件下,横向的gif图片比竖向的gif图片更加小。例如500*10的图片比10*500的图片更加小
5.间隔渐进显示,Gif支持可选择性的间隔渐进显示
由以上特点看出只有256种颜色的gif图片不适合照片,但它适合对颜色要求不高的图形(比如说图标,图表等),它并不是最优的选择,我们会在后面中看到png是最优的选择。
Jpeg格式特点:
1.透明性,它并不支持透明。
2.动画,它也不支持动画。
3.损耗性,除了一些比如说旋转(仅仅是90、180、270度旋转),裁切,从标准类型到先进类型,编辑图片的原数据之外,所有其它操作对jpeg图像的处理都会使得它的质量损失。所以我们在编辑过程一般用png作为过渡格式。
4.隔行渐进显示,它支持隔行渐进显示(但是ie浏览器并不支持这个属性,但是ie会在整个图像信息完全到达的时候显示)。
由上可以看出Jpeg是最适web上面的摄影图片和数字照相机中。
Png格式特点:
1.类型,Png这种图片格式包括了许多子类,但是在实践中大致可以分为256色的png和全色的png,你完成可以用256色的png代替gif,用全色的png代替jpeg
2.透明性,Png是完全支持alpha透明的(透明,半透明,不透明),尽管有两个怪异的现象在ie6(下面详细讨论)
3.动画,它不支持动画
PNG图片格式现在包含三种类型:
1.PNG8256色PNG的别名
2.PNG24全色PNG的别名
3.PNG32全色PNG的别名
基本上PNG32就是PNG24,但是附带了全alpha通道。就是说每个像素上不仅存储了24位真色彩信息还存储了8位的alpha通道信息,就如同GIF能存储透明和不透明信息一样。当我们把图片放到不太搭配的背景上的时候,透明PNG图片的边缘会显示得更加平滑。
当然,我也知道你的想法,“但是Photoshop也能生成带透明通道的PNG图片!”我也知道,它只是表面上这么说是PNG24,让我也产生困惑了。
作为一个伤感的Fireworks倡导者,我只使用PNG32支持附带alpha通道的真色彩图片。不管怎样,如果你习惯使用Photoshop,你就应该知道,Photoshop在“存储为WEB格式”中只提供PNG8和PNG24两种PNG格式。
我敢肯定你经常会勾选“支持透明”选项,以获得带有透明度的PNG图片,但是这样你就获取了一张PNG32图片。——Photoshop只是觉得把PNG32这个名称给隐藏掉了。奇怪吧?……
对png8的误解
Png8的在ie中的怪异表现:
半透明的png8在ie6以下的浏览器显示为全透明。
Alpha透明的全色PNG(png32)在ie6中会出现背景颜色(通常是灰色)。
由上面可以总结:
(a)全透明的png8可以在任一浏览器正常显示(就像gif一样)。半透明的png8在除了ie6及其以下的浏览器下错误的显示成全透明,其它浏览器都能正常显示半透明。这个bug并不需要特殊对待,因为在不支持半透明的浏览器下只是显示为全透明,对用户体验影响不大,它反而是透明gif的加强版。
(b)第二个bug没有什么好的方法解决,只能通过影响性能的方法AlphaImageLoader与需要加特殊标签(VML)。
因此得出结论就是:请使用PNG8。
Png8的软件问题:
Photoshop只能导出布尔透明的PNG8。
Fireworks既能导出布尔透明的PNG8,也能导出alpha透明的PNG8。
3、 能够设置文本加粗的样式属性是什么
字体加粗(font-weight)
功能:用于设置字体笔划的粗细。
属性值:正常度 - normal
相对度 - bold, bolder, light, lighter
渐变度 - 100, 200, 300, 400(相当于normal), 500, 600, 700(相当于 bold、 lighter、 bolder、以及数值100-900。
语法为:h1 {font-weight: 属性值}
4、 编写一个布局,页面宽度自适应,最小宽度300px,左边定宽35%,右边定宽65%
1 <div class="container"> 2 <div class="left"></div> 3 <div class="right"></div> 4 </div> 5 6 <style> 7 .container { 8 height: 600px; 9 _ 300px; 10 min- 300px; 11 } 12 .left { 13 35%; 14 height: 100%; 15 background: #ff0; 16 float: left; 17 } 18 .right { 19 overflow: hidden; 20 65%; 21 height: 100%; 22 background: #0f0; 23 } 24 </style>
5、 谈谈对html5的了解
(1)、良好的移动性,以移动设备为主。
(2)、响应式设计,以适应自动变化的屏幕尺寸
(3)、支持离线缓存技术,webStorage本地缓存
(4)、新增canvas,video,audio等新标签元素。新特殊内容元素:article,footer,header,nav,section等,新的表单控件:calendar,date,time,email,url,search。
(5)、地理定位...
(6)、新增webSocket/webWork技术
6、 Js面向对象的几种方式
(1)、对象的字面量 var obj = {}
(2)、创建实例对象 var obj = new Object();
(3)、构造函数模式 function fn(){} , new fn();
(4)、工厂模式:用一个函数,通过传递参数返回对象。function fn(params){var obj =new Object();obj.params = params; return obj;},fn(params);
(5)、原型模式:function clock(hour){} fn.prototype.hour = 0; new clock();
首先,每个函数都有一个prototype(原型)属性,这个指针指向的就是clock.prototype对象。而这个原型对象在默认的时候有一个属性constructor,指向clock,这个属性可读可写。而当我们在实例化一个对象的时候,实例newClock除了具有构造函数定义的属性和方法外(注意,只是构造函数中的),还有一个指向构造函数的原型的指针,ECMAScript管他叫[[prototype]],这样实例化对象的时候,原型对象的方法并没有在某个具体的实例中,因为原型没有被实例。
7、前端页面有哪三层构成,分别是什么,作用是什么
Css: 层叠样式表 ,表现, 由css负责创建。css对“如何显示有关内容”的问题做出了回答。
Html:超文本标记语言 ,结构,由 HTML 或 xhtml之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P标签表达了这样一种语义:“这是一个文本段。”
Js: 客户端脚本语言 ,行为, 内容应该如何对事件做出反应。
8、 如何对网站的文件和资源进行优化
(1)、文件合并(目的是减少http请求)
(2)、文件压缩 (目的是直接减少文件下载的体积)
(3)、使用cdn托管资源
(4)、使用缓存
(5)、gizp压缩你的js和css文件
(6)、meta标签优化(title,description,keywords),heading标签的优化,alt优化
(7)、反向链接,网站外链接优化。
9、 JQuery中有几种类型的选择器
(1)、层叠选择器$(“form input”)
(2)、基本过滤选择器:first:last:not()
(3)、内容过滤选择器:odd:eq():animated
(4)、可视化过滤选择器:hidden:visible
(5)、属性过滤选择器:div[id]
(6)、子元素过滤选择器:first-child:last-child:only:child
(7)、表单元素过滤选择器:enabled:disabled:checked:selected
(8)、id,类,类型,元素...
10、说几条javasprit的基本规范
(1)、不要在同一行声明多个变量。
(2)、请使用 ===/!==来比较true/false或者数值
(3)、使用对象字面量替代new Array这种形式
(4)、不要使用全局函数。
(5)、Switch语句必须带有default分支
(6)、函数不应该有时候有返回值,有时候没有返回值。
(7)、For循环必须使用大括号
(8)、If语句必须使用大括号
(9)、for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染。
11、 Html5中本地存储概念是什么,有什么优点
cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
存储大小:
cookie数据大小不能超过4k。
sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
有期时间:
localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
sessionStorage 数据在当前浏览器窗口关闭后自动删除。
cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
12、什么是ajax和json,它们的优缺点
ajax的全称:Asynchronous Javascript And XML。
异步传输+js+xml。
所谓异步,在这里简单地解释就是:向服务器发送请求的时候,我们不必等待结果,而是可以同时做其他的事情,等到有了结果它自己会根据设定进行后续操作,与此同时,页面是不会发生整页刷新的,提高了用户体验。
(1)创建XMLHttpRequest对象,也就是创建一个异步调用对象
(2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息
(3)设置响应HTTP请求状态变化的函数
(4)发送HTTP请求
(5)获取异步调用返回的数据
(6)使用JavaScript和DOM实现局部刷新
13、 你知道那些针对jQuery的优化方法
基于Class的选择性的性能相对于Id选择器开销很大,因为需遍历所有DOM元素。
频繁操作的DOM,先缓存起来再操作。用Jquery的链式调用更好。
比如:var str=$("a").attr("href");
for (var i = size; i < arr.length; i++) {}
for 循环每一次循环都查找了数组 (arr) 的.length 属性,在开始循环的时候设置一个变量来存储这个数字,可以让循环跑得更快:
for (var i = size, length = arr.length; i < length; i++) {}
14、编写一个方法求一个字符串的字节长度,假设:一个英文字符占用一个字节,一个中文字符占用两个字节
1 function num(str) { 2 var num1 = str.length; 3 var num2 = 0; 4 for (var i = 0; i < str.length; i++) { 5 if (str.charCodeAt(i) >= 10000) { 6 num2++; 7 } 8 } 9 console.log(num1 + num2) 10 }
15、简述ECMASCRIPT6的新特性
1.增加块作用域
2.增加let const
3.解构赋值
4.函数参数扩展 (函数参数可以使用默认值、不定参数以及拓展参数)
5.增加class类的支持
6.增加箭头函数
7.增加模块和模块加载(ES6中开始支持原生模块化啦)
8.math, number, string, array, object增加新的API
16、Apply和call方法的异同
相同点:两个方法产生的作用是完全一样的,第一个参数都是对象;
不同点:
call()方法参数将依次传递给借用的方法作参数,即fn.call(thisobj, arg1,arg2,arg3...argn),有n个参数
apply()方法第一个参数是对象,第二个参数是数组fn.apply(thisobj,arg),此处的arg是一个数组,只有两个参数
17、 为什么利用多个域名来提供网站资源会更有效?
(1)、突破浏览器的并发限制(浏览器同一域名最大的并发请求数量为6个,ie6为2个)
(2)、节约cookie带宽
(3)、CDN缓存更方便
(4)、防止不必要的安全问题(尤其是cookie的隔离尤为重要)
(5)、节约主机域名连接数,优化页面响应速度
18、身为以为web前端工程师,你肯定知道现在最流行的前端技术吧,有那些?
Vuejs2.0/Angular2.0/React Native /es6//Nodejs
http2
gulp/webpack
19、 你如何从浏览器的URL中获取参数信息
浏览器宿主环境中,有一个location对象,同时这个对象也是window对象和document对象的属性。
location对象中提供了与当前窗口加载的文档有关的的信息,即URL信息。
如 https://www.baidu.com/api/sousu?search=baidu&id=123#2
location.href: 完整URL
location.protocol: 返回协议(https:)
location.host: 返回服务器名称和端口号(www.baidu.com)
location.hostname: 返回服务器名称(www.baidu.com)
location.port:返回服务器端口号(http默认80,https默认443)
location.pathname:返回URL中的目录和文件名(api/sousu)
location.search:返回查询字符串(?search=baidu&id=123#2)
location.hash:返回hash值(#2)
20、 请戳出ie6/7下特有的cssbug
(1)、li边距“无故” 增加
设置ul的显示形式为*display:inline-block;即可,前面加*是只 针对IE6/IE7有效
(2)、IE6 不支持min-height属性,但它却认为height就是最小高度
使用ie6不支持但其余浏览器支持的属性!important。
(3)、Overflow:
在IE6/7中,overflow无法正确的隐藏有相对定位position:relative;的子元素。解决方法就是给外包容器.wrap加上position:relative;。
(4)、border:none 在IE6不起作用: 写成border:0 就可以了,
(5)、100%高度
在IE6下,如果要给元素定义100%高度,必须要明确定义它的父级元素的高度,如果你需要给元素定义满屏的高度,就得先给html和body定义 height:100%;。
(6)、双边距 Bug
当元素浮动时,IE6会错误的的把浮动方式的margin值双倍计算,给float的元素添加一个display:inline
(7)、躲猫猫bug
些定义了:hover的链接,当鼠标移到那些链接上时,在IE6下就会触发躲猫猫。
1.在(那个未浮动的)内容之后添加一个<span style=”clear: both;”></span>
2.触发包含了这些链接的容器的hasLayout,一个简单的方法就是给其定义height:1%;
(8)、IE6 绝对定位的元素1px 间距bug
当绝对定位的父元素或宽度为奇数时,bottom和right会多出现1px,
解决方案,针对IE6进行hack处理
***如果感觉有一点点收获得话,请帮忙点下推荐!!!