前端工程师面试题题及答案(全面综合)
- 格式:docx
- 大小:26.05 KB
- 文档页数:12
前端开发工程师面试题及答案在前端开发领域,面试是选拔优秀人才的重要环节。
以下是一些常见的前端开发工程师面试题以及对应的参考答案。
一、HTML 和 CSS 相关问题1、解释一下盒模型以及它在布局中的作用。
答案:盒模型是 CSS 中用于布局的基本概念,它由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。
在布局中,理解盒模型对于准确计算元素的尺寸和间距非常重要,能够帮助我们实现各种复杂的页面布局。
2、如何实现一个两栏布局,左边固定宽度,右边自适应?答案:可以使用多种方法实现。
一种常见的方式是使用浮动(float),将左边栏设置为固定宽度并向左浮动,右边栏不浮动,并设置其左边的外边距(marginleft)为左边栏的宽度。
也可以使用 flex 布局,将父容器设置为 display: flex; ,左边栏设置固定宽度,右边栏设置flex: 1; 以实现自适应。
3、说一说 CSS 选择器的种类和优先级。
答案:CSS 选择器包括元素选择器、类选择器、id 选择器、属性选择器、伪类选择器、伪元素选择器等。
选择器的优先级从高到低依次为:内联样式(通过 style 属性设置)> id 选择器>类选择器、属性选择器、伪类选择器>元素选择器、伪元素选择器。
二、JavaScript 相关问题1、谈谈你对 JavaScript 中作用域和闭包的理解。
答案:作用域决定了变量的可见性和可访问性。
在 JavaScript 中有全局作用域和函数作用域。
闭包是指有权访问另一个函数作用域中的变量的函数。
闭包可以让函数记住其创建时的环境,即使外部函数已经执行完毕,闭包仍能访问外部函数中的变量。
2、如何实现 JavaScript 的继承?答案:常见的实现方式有原型链继承、借用构造函数继承、组合继承、寄生组合继承等。
原型链继承通过将子类型的原型指向父类型的实例来实现继承;借用构造函数继承通过在子类型的构造函数中调用父类型的构造函数来继承属性;组合继承结合了原型链继承和借用构造函数继承的优点;寄生组合继承是一种优化的组合继承方式,避免了不必要的父类实例属性的重复创建。
面试题1 vuex 的五个状态VueX 是一个专门为Vue.js 应用设计的状态管理架构,统一管理和维护各个状态vue 组件的可变化(你可以理解成vue 组件里的某些data )。
Vue 有五个核心概念,state, getters, mutations, actions, modules 。
state => 基本数据==data getters => 从基本数据派生的数据==computed mutations => 提交更改数据的方法,同步!==methods actions => 像一个装饰器,包裹mutations ,使之可以异步。
modules => 模块化Vuex2 vue 周期(钩子函数) created 可获取数据Mounted 可操作DOMVue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom 、渲染T更新T渲染、销毁等一系列过程,我们称这是Vue的生命周期。
通俗说就是Vue实例从创建到销毁的过程,就是生命周期。
分为三个阶段:初始化、运行中、销毁。
beforeCreate :实例、组件通过new Vue()创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate 钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom ,一般不做操作Created:挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated 函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取beforeMount :接下来开始找实例或者组件对应的模板,编译模板为虚拟dom 放入到render 函数中准备渲染,然后执行beforeMount 钩子函数,在这个函数中虚拟dom 已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取Mounted :接下来开始render,渲染出真实dom,然后执行mounted钩子函数,此时,组件已经出现在页面中,数据、真实dom 都已经处理好了,事件都已经挂载好了,可以在这里操作真实dom 等事情...beforeUpdate :当组件或实例的数据更改之后,会立即执行beforeUpdate,然后vue的虚拟dom 机制会重新构建虚拟dom 与上一次的虚拟dom 树利用diff 算法进行对比之后重新渲染,一般不做什么事儿Update当更新完成后,执行updated,数据已经更改完成,dom也重新render完成,可以操作更新后的虚拟dombeforeDestroy :当经过某种途径调用$destroy方法后,立即执行beforeDestroy,一般在这里做一些善后工作,例如清除计时器、清除非指令绑定的事件等等Destroyed :组件的数据绑定、监听…去掉后只剩下dom空壳,这个时候,执行destroyed,在这里做善后工作也可以钩子函数的的实际应用beforecreate : 举个栗子:可以在这加个loading 事件created :在这结束loading ,还做一些初始化,实现函数自执行mounted :在这发起后端请求,拿回数据,配合路由钩子做一些事情beforeDestroy :你确认删除XX吗?destroyed :当前组件已被删除,清空相关内容3 cookie、localstroge 、localSeesion 的区别共同点:都是保存在浏览器端,且同源的。
前端工程化面试问题一、基础知识1. 请简述一下你对HTML5的理解?HTML5在前端开发中扮演了什么样的角色?2. 什么是CSS,它的主要作用是什么?3. JavaScript的主要特性和应用场景有哪些?4. 请谈谈你对前端框架(如React、Vue、Angular等)的理解。
你可以详细描述一下你熟悉的前端框架的主要特性和使用场景吗?5. 请解释一下什么是前端路由,以及它的实现原理。
6. 请简述一下你对前端工程化的理解,以及它的重要性。
7. 什么是模块化,如何实现前端模块化?8. 请解释一下什么是HTTP和HTTPS,以及他们的区别。
9. 请简述一下你对Webpack的理解,以及它的主要功能和使用场景。
10. 请解释一下什么是DOM,以及它的重要性。
二、进阶知识1. 请解释一下什么是虚拟DOM,以及它与真实DOM的区别和联系。
2. 请谈谈你对前端性能优化的理解,以及你通常采用的前端性能优化方法。
3. 请解释一下什么是CSS预处理器(如Sass、Less等),以及他们的特性和使用场景。
4. 请谈谈你对前端安全性的理解,以及你通常采用的前端安全措施。
5. 请解释一下什么是前端自动化,以及你熟悉的前端自动化工具和框架。
6. 请解释一下什么是前端响应式设计,以及它的实现原理。
7. 请谈谈你对前端组件化的理解,以及你通常采用的前端组件设计和开发方法。
8. 请解释一下什么是Service Worker,以及它的主要功能和使用场景。
9. 请谈谈你对前端模块热替换(Hot Module Replacement)的理解,以及它的主要优点和限制。
10. 请解释一下什么是前端路由懒加载,以及它的实现原理和优点。
三、实战经验1. 请描述一下你在过去的工作中遇到的最大的前端技术挑战,你是如何解决的?2. 请谈谈你在使用前端框架开发中的经验,以及你对其优缺点的理解。
3. 请描述一下你在前端工程化实践中遇到的问题和解决方法。
前端面试题含答案某某公司产品部-前端题-答案产品部Beijing前端开发知识点大纲:HTML&CSS:对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应JavaScript:数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodej、JSON、aja某等。
其他:HTTP、安全、正则、优化、重构、响应式、移动端、团队协作、可维护、SEO、UED、架构、职业生涯作为一名前端工程师,无论工作年头长短都应该必须掌握的知识点:1、DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
2、DOM操作——如何添加、移除、移动、复制、创建和查找节点等。
3、事件——如何使用事件,以及IE和标准DOM事件模型之间存在的差别。
4、某MLHttpRequet——这是什么、怎样完整地执行一次GET请求、怎样检测错误。
5、严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
6、盒模型——外边距、内边距和边框之间的关系,及IE8以下版本的浏览器中的盒模型7、块级元素与行内元素——怎么用CSS控制它们、以及如何合理的使用它们8、浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
9、HTML与某HTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
10、JSON——作用、用途、设计结构。
(2)、严格模式的排版和JS运作模式是以该浏览器支持的最高标准运行。
(3)、在混杂模式中,页面以宽松的向后兼容的方式显示。
模拟老式浏览器的行为以防止站点无法工作。
(4)、DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
二、行内元素有哪些?块级元素有哪些?空(void)元素有那些?(1)CSS规范规定,每个元素都有diplay属性,确定该元素的类型,每个元素都有默认的diplay值,比如div默认diplay属性值为“block”,成为“块级”元素;pan默认diplay属性值为“inline”,是“行内”元素。
web前端开发面试题及答案Web前端开发是互联网行业中一个非常热门的领域,涉及到网页设计、开发和用户体验等多个方面。
在面试过程中,面试官通常会提出一系列问题来评估应聘者的专业知识和技能。
以下是一些常见的Web前端开发面试题及答案:1. HTML相关问题- 问:HTML5有哪些新特性?- 答:HTML5引入了新的语义元素如`<header>`, `<footer>`,`<article>`, `<section>`等,增强了表单控件,如`<inputtype="date">`,`<input type="range">`等,支持多媒体内容,如`<video>`和`<audio>`,以及提供了绘图功能`<canvas>`。
2. CSS相关问题- 问:CSS选择器有哪些类型?- 答:CSS选择器主要有以下几种类型:元素选择器、类选择器(如`.class`)、ID选择器(如`#id`)、属性选择器(如`[type="text"]`)、伪类选择器(如`:hover`, `:first-child`)和伪元素选择器(如`::before`, `::after`)。
3. JavaScript相关问题- 问:JavaScript中的闭包是什么?- 答:闭包是指一个函数能够记住并访问其创建时的环境,即使该环境的外部上下文已经执行完毕。
闭包通常用于创建私有变量和方法,或者在回调函数中使用外部变量。
4. 响应式设计相关问题- 问:如何实现响应式网页设计?- 答:实现响应式网页设计主要依赖于CSS媒体查询(Media Queries),通过不同的屏幕尺寸和设备特性来应用不同的样式规则。
同时,使用流体布局(使用百分比而非固定像素)和可伸缩的图片和媒体元素也是关键。
前端⾯试题笔试考题和答案⼀、选择题 1.下⾯标签嵌套正确的是(D)A. <ul><p>赶集⽹</p></ul>B. <a href="#"><a href="#">赶集⽹</a></a>C. <dl><li>赶集⽹</li></dl>D. <ol><li>赶集⽹</li></ol>2. 在HTML中,(c)可以在⽹页上通过链接直接打开邮件客户端发送邮件。
A.<a href=”telnet:zhou@”>发送邮件</a>B. <a href=”mail:zhou@”>发送邮件</a>C. <a href=”mailto:zhou@”>发送邮件</a>D. <a href=”ftp:zhou@”>发送邮件3. 请选出所有的置换元素(abcd)(多选)A. imgB. inputC. textareaD. select4.下⾯哪条声明能固定背景图⽚(A)A. background-attachment:fixed;B. background-attachment:scroll;C. background-origin: initial;D. background-clip: initial;5.下列说法正确的是(AB)(多选)A.display: none;不为被隐藏的对象保留其物理空间;B.visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;C.visibility:hidden;产⽣reflow和repaint(回流与重绘);D.visibility:hidden;与display: none;两者没有本质上的区别;6.以下关于盒⼦模型描述正确的是(ab)A.标准盒⼦模型中:盒⼦的总宽度=左右margin + 左右border + 左右padding + widthB.IE盒⼦模型中:盒⼦总宽度=左右margin + 左右border + widthC.标准盒⼦模型中:盒⼦的总宽度=左右margin 详细的介绍:⽹页中的盒⼦模型;我们常常要控制盒⼦模型的宽度width:w3c中的盒⼦模型的宽:包括margin+border+padding+width;width:margin*2+border*2+padding*2+width;height:margin*2+border*2+padding*2+height;iE中的盒⼦模型的width:也包括margin+border+padding+width;上⾯的两个宽度相加的属性是⼀样的。
最新前端开发面试题及答案1. 什么是前端开发?答案:前端开发是指使用HTML、CSS和JavaScript等技术构建网站或Web应用程序的用户界面的过程。
2. 解释一下什么是响应式网页设计?答案:响应式网页设计是一种使网站能够适应不同屏幕尺寸和设备的技术,确保用户在任何设备上都能获得良好的浏览体验。
3. 请简述HTML5的新特性。
答案:HTML5引入了新的语义标签,如`<header>`、`<footer>`、`<article>`等,增强了Web应用的功能,如`<canvas>`用于绘图,`<video>`和`<audio>`用于媒体播放,以及对本地存储的支持等。
4. CSS3相比CSS2有哪些改进?答案:CSS3在CSS2的基础上增加了多种新特性,如圆角(border-radius)、阴影(box-shadow)、渐变(gradients)、转换(transforms)和动画(animations)等。
5. JavaScript中的闭包是什么?答案:闭包是指有权访问另一个函数作用域中的变量的函数,即使在创建该函数的作用域之外,这些变量也会被保留在内存中。
6. 请解释同步和异步编程的区别。
答案:同步编程是指代码按照顺序执行,一个任务完成后才执行下一个任务。
异步编程允许程序在等待某个任务完成时继续执行其他任务,通常通过回调函数、Promise或async/await来实现。
7. 什么是跨域请求(CORS)?答案:跨域请求(CORS)是指浏览器在发起一个HTTP请求时,请求的域名与当前网页的域名不同,浏览器出于安全考虑,会限制这种跨域请求。
8. 请描述一下事件冒泡和事件捕获。
答案:事件冒泡是指当一个元素触发事件时,该事件会从事件源元素开始,逐级向上传播到文档的根元素。
事件捕获则是事件从根元素开始,向下传播到目标元素。
9. 什么是单页应用(SPA)?答案:单页应用(SPA)是一种Web应用或网站,它通过动态重写当前页面来与用户交互,避免了从服务器重新加载整个新页面的过程。
高级前端面试题及答案前言:在现今竞争激烈的互联网行业中,作为一名高级前端工程师,拥有扎实的专业知识和技能,面试环节是成为顶尖人才的重要关卡。
本文将介绍一些常见的高级前端面试题目,并提供详细的解答,帮助读者更好地准备面试。
1. ES6有哪些新特性?ES6(ECMAScript 2015)作为JavaScript的最新版本,引入了许多令人激动的新特性。
以下是一些主要的ES6新特性:- let和const关键字:用于声明块级作用域中的变量和常量。
- 箭头函数:更简洁的函数定义语法,自动绑定上下文。
- 模板字符串:支持多行字符串和变量插值。
- 解构赋值:从数组和对象中提取值并赋给多个变量。
- 简化的对象字面量语法:定义对象时,无需重复书写键和值。
- 模块化:通过import和export关键字,实现模块化开发。
- Promise:更便捷地处理异步操作和回调函数。
- 类和继承:更接近面向对象编程的编写方式。
- 简化的迭代器和生成器:用于遍历数据集合的简洁语法。
2. 介绍一下跨域及其解决方案。
跨域是指在浏览器中,由于浏览器的安全策略限制,不同域下的页面之间无法进行直接的交互。
常见的跨域解决方案包括:- JSONP:通过动态创建<script>标签,实现跨域获取数据。
- CORS(跨域资源共享):在服务器返回的响应头中添加Access-Control-Allow-Origin等字段,允许其他域的请求访问。
- 代理服务器:在同一域下创建一个代理服务器,将跨域请求转发至目标服务器。
- WebSocket:跨域问题不适用于WebSocket,可以通过WebSocket进行跨域通信。
- Nginx反向代理:将跨域请求转发至同一域下的指定接口,再返回给前端。
3. 请解释一下防抖和节流,并给出它们的应用场景。
防抖(Debounce)和节流(Throttle)是常用的优化性能的实用技巧。
防抖指在短时间内多次触发同一事件,只执行最后一次触发的函数。
游戏前端开发工程师岗位面试题及答案1.介绍一下你的前端开发经验。
答:我在前端开发领域拥有X年的经验,曾参与开发多个游戏项目。
例如,在项目A中,我负责设计和实现了游戏的用户界面,运用了HTML、CSS和JavaScript,以及React框架来创建交互式界面。
2.请解释下什么是响应式设计,并举例说明其在游戏前端中的应用。
答:响应式设计是指设计和开发能够在不同设备上自适应显示的网页或应用。
在游戏前端中,响应式设计可以确保游戏在各种屏幕尺寸上都能保持良好的用户体验,如在平板、手机和桌面上都能流畅运行。
3.请谈谈前端性能优化的策略,以及你在项目中是如何应用的。
答:前端性能优化涉及减少加载时间、提高渲染速度等方面。
我会合并和压缩文件、使用懒加载技术以及优化图片等。
在项目B 中,我通过使用Webpack打包工具来合并文件、使用CDN加速资源加载,以及使用懒加载技术来优化页面性能。
4.解释一下浏览器的同源策略,以及如何解决跨域问题。
答:同源策略是浏览器的安全机制,防止不同源的网站之间访问彼此的数据。
跨域问题可以通过使用JSONP、CORS(跨源资源共享)设置服务器响应头、代理服务器等方式来解决。
5.你如何进行组件化开发,并说明其在游戏前端中的好处。
答:组件化开发是将界面拆分为多个独立、可复用的组件进行开发。
在游戏前端中,这可以提高代码的可维护性和复用性,例如,一个游戏按钮可以作为一个独立的组件,以后在多个地方重复使用。
6.请解释下虚拟DOM的工作原理及其在React中的应用。
答:虚拟DOM是一种内存中的表示,它反映了实际DOM的状态。
在React中,当数据发生变化时,虚拟DOM会与之前的虚拟DOM进行比较,找出差异,然后只更新需要变化的部分,这样可以减少对实际DOM的操作,提升性能。
7.如何处理移动端的触摸事件,以及你在处理触摸事件时的经验。
答:在移动端,可以使用TouchAPI来处理触摸事件,如touchstart、touchmove和touchend等。
前端工程师面试题和答案1、在 css 选择器当中,优先级排序正确的是() [单选题] *A、id选择器>标签选择器>类选择器B、标签选择器>类选择器>id选择器C、类选择器>标签选择器>id选择器D、id选择器>类选择器>标签选择器(正确答案)2、下列定义的 css 中,哪个权重是最低的?() [单选题] *A、#game .nameB、#game .name spanC、#game div(正确答案)D、#game 3、关于HTML语义化,以下哪个说法是正确的?() [单选题] *A、语义化的HTML有利于机器的阅读,如PDA手持设备、搜索引擎爬虫;但不利于人的阅读B、Table 属于过时的标签,遇到数据列表时,需尽量使用 div 来模拟表格C、语义化是HTML5带来的新概念,此前版本的HTML无法做到语义化D、header、article、address都属于语义化明确的标签(正确答案)4、放在HTML里的哪一部分JavaScripts会在页面加载的时候被执行?()[单选题] *A、文件头部位置C、<head>标签部分D、<body>标签部分(正确答案)5、新窗口打开网页,用到以下哪个值() [单选题] *A、_selfB、_blank(正确答案)C、_topD、_parent6、下列关于web页面级优化描述最正确的是() [单选题] *A、减少HTTP请求的次数B、进行资源合拼和压缩C、Inline imagesD、将外部脚本置于低端E、减少不必要的HTTP跳转F、以上描述都对(正确答案)7、下列哪个不属于id与class之间的区别() [单选题] *A、id在文档中只能使用一次,而class可以多次使用B、id比class具有更高的样式优先级C、一个元素只能有一个id属性值,却可以拥有多个class属性值D、在class中可以定义:hover伪类,在id中不能定义(正确答案)8、JavaScript中window对象的子对象不包含以下哪个对象?() [单选题] *B、selfC、historyD、message(正确答案)9、下边这代码输出的结果是()var two = 0.2var one = 0.1var eight = 0.8var six = 0.6console.log([two - one == one, eight - six == two]); [单选题] *A、[true, true]B、[false, false]C、[true, false](正确答案)D、other10、以下代码的执行结果是什么()var string = 'string';var number = 0;var bool = true;console.log(number || string);console.log(number && string);console.log(bool || number);console.log(bool && number); [单选题] *A、‘string’, 0, true,0(正确答案)B、‘string’, true,0, 0C、‘string’,‘string’,true, 0D、‘string’, 0, true,true11、要在10秒后调用checkState,下列哪个是正确的() [单选题] *A、window.setTimeout(checkState, 10);B、window.setTimeout(checkState(), 10);C、window.setTimeout(checkState, 10000);(正确答案)D、window.setTimeout(checkState(), 10000);12、下面有关浏览器中使用js跨域获取数据的描述,说法错误的是() [单选题] *A、使用来进行跨域B、域名、端口相同,协议不同,属于相同的域(正确答案)C、js可以使用jsonp进行跨域D、通过修改document.domain来跨子域13、’5’+3‘5’-3 输出值为() [单选题] *A、53,2(正确答案)B、8,2C、ErrorD、Other14、[] == [] 输出为() [单选题] *A、TrueB、False(正确答案)C、ErrorD、Other15、一份标准的HTML文档有哪几个必须的HTML标签?() *A、<html>(正确答案)B、<head>(正确答案)C、<title>(正确答案)D、<body>(正确答案)16、input元素的type属性的取值可以是() *A、image(正确答案)B、checkbox(正确答案)C、button(正确答案)D、select17、css 中可继承的属性有哪些() *A、heightB、font-size(正确答案)C、borderD、widthE、color(正确答案)18、下列关于闭包描述正确的是?() *A、(function(){})()理论上是一个闭包(正确答案)B、闭包不耗内存,可以随意使用C、闭包内变量执行后不会被清除(正确答案)D、闭包不满足链式作用域结构19、下列哪些会返回false() *A、Null(正确答案)B、Undefined(正确答案)C、0(正确答案)D、‘0′20、在ES6规范中,以下类型哪些属于基本数据类型() *A、String(正确答案)B、Null(正确答案)C、Undefined(正确答案)D、Symbol(正确答案)21、‘在react中,一切皆组件’如何理解 [填空题]_________________________________22、websocket 和 http的区别 [填空题]_________________________________。
1. 要动态改变层中内容可以使用的方法有(AB )a)innerHTMLb)innerTextc)通过设置层的隐藏和显示来实现d)通过设置层的样式属性的display属性2. 在javascript里,下列选项中不属于数组方法的是(B);a)sort()b)length()c)concat()d)reverse()3 、var emp = new Array(3);for(var i in emp)以下答案中能与for循环代码互换的是: (选择一项)。
(D )A for(var i =0; i<emp; i++)B for(var i =0; i<Array(3); i++)C for(var i =0; i<emp.length(); i++)D for(var i =0; i<emp.length; i++)4 下列声明数组的语句中,错误的选项是(C )。
a)Var arry= new Array()b)Var arry=new Array(3)c)Var arry[]=new Array(3)(4)d)Var arry=new Array(‘3’,’4’)5. 下列哪一个选项不属于document对象的方法?(D )a)focus()b)getElementById()c)getElementsByName()d)bgColor()6. 、display属性值的常用取值不包括(C )a)inlineb)blockc)hiddend)none7. 以下有关pixelTop属性与top属性的说法正确的是。
(D )a)都是Location对象的属性b)使用时返回值都是字符串c)都是返回以像素为单位的数值d)以上都不对8. 使用open方法打开具有浏览器工具条,地址栏,菜单栏的窗口,下列选项正确的是__D__a)open("x.html","HI","toolbas=1,scrollbars=1,status=1");b)open("HI","scrollbars=1,location=1,status=1");c)open("x.html","status=yes,menubar=1,location=1");d)open("x.html","HI","toolbas=yes,menubar=1,location=1");9. 、javascript中表达式parseInt(“X8X8”)+paseFloat(‘8’)的结果是什么?( C)a)8+8b)88c)16d)“8”+’810. 关于setTimeout(“check”,10)中说法正确的是( D)a)程序循环执行10次b)Check函数每10秒执行一次c)10做为参数传给函数checkd)Check函数每10毫秒执行一次二:11 link 和@import 的区别是?(1)link属于XHTML标签,而@import是CSS提供的;(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;(3)import只在IE5以上才能识别,而link是XHTML标签,无兼容问题;(4)link方式的样式的权重高于@import的权重.12 html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML 和HTML5?* HTML5 现在已经不是SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
* 绘画canvas用于媒介回放的video 和audio 元素本地离线存储localStorage 长期存储数据,浏览器关闭后数据不丢失;sessionStorage 的数据在浏览器关闭后自动删除语意化更好的内容元素,比如article、footer、header、nav、section表单控件,calendar、date、time、email、url、search新的技术webworker, websockt, Geolocation* 移除的元素纯表现的元素:basefont,big,center,font, s,strike,tt,u;对可用性产生负面影响的元素:frame,frameset,noframes;支持HTML5新标签:* IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式:* 当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架<!--[if lt IE 9]><script> src=""</script><![endif]-->如何区分:DOCTYPE声明\新增的结构元素\功能元素13 HTML5的离线储存?localStorage 长期存储数据,浏览器关闭后数据不丢失;sessionStorage 数据在浏览器关闭后自动删除。
14:介绍一下CSS的盒子模型?(1)有两种,IE 盒子模型、标准W3C 盒子模型;IE的content部分包含了border 和pading;(2)盒模型:内容(content)、填充(padding)、边界(margin)、边框(border).15 CSS 选择器有哪些?哪些属性可以继承?优先级算法如何计算?CSS3新增伪类有那些?* 1.id选择器(# myid)2.类选择器(.myclassname)3.标签选择器(div, h1, p)4.相邻选择器(h1 + p)5.子选择器(ul < li)6.后代选择器(li a)7.通配符选择器(* )8.属性选择器(a[rel = "external"])9.伪类选择器(a: hover, li: nth - child)* 可继承的样式:font-size font-family color, UL LI DL DD DT;* 不可继承的样式:border padding margin width height ;* 优先级就近原则,同权重情况下样式定义最近者为准;* 载入样式以最后载入的定位为准;优先级为:!important > id > class > tagimportant 比内联优先级高16 列出display的值,说明他们的作用。
position的值,relative和absolute定位原点是?1.block 象块类型元素一样显示。
none 缺省值。
象行内元素类型一样显示。
inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。
list-item 象块类型元素一样显示,并添加样式列表标记。
2.*absolute生成绝对定位的元素,相对于static 定位以外的第一个父元素进行定位。
*fixed (老IE不支持)生成绝对定位的元素,相对于浏览器窗口进行定位。
*relative生成相对定位的元素,相对于其正常位置进行定位。
* static 默认值。
没有定位,元素出现在正常的流中*(忽略top, bottom, left, right z-index 声明)。
* inherit 规定从父元素继承position 属性的值。
17 介绍js的基本数据类型。
number,string,boolean,object,undefined18 Javascript如何实现继承?通过原型和构造器19 什么是闭包(closure),为什么要用它?一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。
变量的作用域无非就是两种:全局变量和局部变量。
Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。
二、如何从外部读取局部变量?出于种种原因,我们有时候需要得到函数内的局部变量。
但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。
那就是在函数的内部,再定义一个函数。
三、闭包的概念上一节代码中的f2函数,就是闭包。
各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。
我的理解是,闭包就是能够读取其他函数内部变量的函数。
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
--------------------------------------------------------------------------------------------------------b四、闭包的用途闭包可以用在许多地方。
它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
闭包的用途闭包可以用在许多地方。
它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
20 针对jQuery 的优化方法?1,总是从ID选择器开始继承2,在class前使用tag(标签名)在jQuery中第二快的选择器是tag(标签)选择器( 比如:$(“head”) )。
跟ID选择器累时,因为它来自原生的getElementsByTagName() 方法。
继续看刚才那段HTML代码:比如需要选择红绿单选框,那么可以使用一个tag name来限制(修饰)class ,如下所示:var active_light = $(“input.on”);当然也可以结合就近的ID,如下所示:var active_light = $(“#traffic_light input.on”);在使用tag来修饰class的时候,我们需要注意以下几点:(1)不要使用tag来修饰ID,如下所示:var content = $(“div#content”);这样一来,选择器会先遍历所有的div元素,然后匹配#content。
(好像jQuery从1.3.1开始改变了选择器核心后,不存在这个问题了。
暂时无法考证。
)(2)不要画蛇添足的使用ID来修饰ID,如下所示:var traffic_light = $(“#content #traffic_light”);3,将jQuery对象缓存起来把jQuery对象缓存起来就是要告诉我们要养成将jQuery对象缓存进变量的习惯。