考试安排

时间: 每年12月底全国研究生统考

考试内容

逻辑 + 数学 + 写作 + 英语
逻辑 => 论证逻辑 + 推理逻辑
数学 => 算术 + 应用 + 代数 + 几何 + 数据分析 
英语 => 完形填空 + 阅读 + 翻译 + 小作文 + 大作文
写作 => 逻辑论证文 + 大论文

写作题

论说文评分标准(出自大纲):
1. 论文证据有效分析(满分30分)
    评分依据15+15的方式给分。简单的说,15分是结构内容分,15分是表达文采分。考生能够正确指出文章中的三个缺陷并加以适当的分析即可得到15分结构内容分。剩下的15分则是按照考生对文章中缺陷点的论证程度、文章结构与语言表达来给分的,具体来说又分以下几个得分档:一类卷(12~15分):论证或反驳有力,结构严谨,条理清楚,语言精练流畅。   二类卷(8~11分):论证或反驳较为有力,结构尚完整,条理较清楚,语句较通顺,有少量语病。   三类卷(4~7分):有论证或反驳,结构不够完整,语言欠连贯,较多语病,分析评论缺乏说服力。   四类卷(0~3分):明显偏离题意,内容空洞,条理不清,语句严重不通。
2. 论说文(满分35分)
    论说文是综合评分法,按照文章的内容、结构、语言三项综合评分。一类卷(30~35分):立意深刻,中心突出,结构完整,行文流畅。二类卷(24~29分):中心明确,结构较完整,层次较清楚,语句通顺。 三类卷(18~23分):中心基本明确,结构尚完整,语句较通顺,有少量语病。四类卷(10~17分):中心不太明确,结构不够完整,语句不通顺,有较多语病。 五类卷(10分以下):偏离题意,结构残缺,层次混乱,语句严重不通。另外,漏拟题目扣2分,每3个错别字扣1分,重复的不计,扣满2分为止。



    提到写作,我们的印象中好像都是写作文。但199的写作其实也是在考逻辑,与我们往常的作文不同,不讲究文笔而非常讲求逻辑。写作有大小作文之分,大作文是写一篇论说文,700字左右;小作文是论证有效性分析,也就是题目会给你一段有缺陷的材料,要求我们论证某些漏洞的有效性,600字左右。在这一块,逻辑+论据才是正确的。而论据也就是我们常说的要积累的素材。但不是直接把素材事例摆上去就行,不仅要概括素材,更重要的是要把它用成论据,要用事例证明你的观点。素材积累的话,《人民日报评论》、《红辣椒评论》这些可以常看看,喜马拉雅上《鬼才会背长素材》这个节目也可以听听,还可以关注管理类联考相关的公众号,他们经常会推送写作相关的素材以及写作方法,像友课管理类联考。坚持几个月行文一定有质的改变;但写作中逻辑性才是最重要的,一味堆积素材堆不出高分。素材也不必一味求多,一篇素材要能从多个角度进行分析,这样消化好的素材一篇顶十篇。小作文可以说是非常规矩的,总结出来就混淆概念、因果不当、以偏概全等几种错误,找到了漏洞,然后逐个分析,拿个基本分问题不大,小作文也是有模板可以套的,多练习就能掌握它的套路了,这是当时老师给我们总结的模板,大家前期可以尝试套模板练练。

论说大作文,根据近些年的趋势来看,现在主要是自命题作文,题干会给我们一段材料,让我们根据材料自拟题目,写一篇与材料相关的论说文。有点类似于高中的议论文,但二者并不等同。高中议论文考査的主要还是你的文字功底,它属于“语文’’的范畴;而论说文更强调说理,它属于“论证”的范畴。拿到材料,我们首先要做的就是审题,判断要写的文章观点型还是关系型论说文;第二步就是立意,选择我们写作的方向,确定中心大意,这两个步骤决定我们的文章写的准不准、是否跑题。其次我们要在心中列一个大概的提纲,用来确定写作结构、用什么样的论说素材。

基础学习时间

夯实基础

查漏补缺

真题冲刺

各大专业证书考试相关(2023年)

法律资格证书

报名时间 题目类型 费用 考试时间
6月 客观题 + 主观题 客观题¥192元/人
主观题¥105/人
客观题9.16-9.17
主观题10.15

软考高项

| 报名时间 | 题目类型 | 费用 | 考试时间
| :——– | ——–| :——: |
| 每年5/11月 | 选择+案例分析+论文 | ¥210 | 2023.11.4

考试安排
9:00 - 11:30 综合知识
13:30 - 15:00 案例分析
15:30 - 17:00 论文

注册会计师

| 报名时间 | 题目类型 | 费用 | 考试时间
| :——– | ——–| :——: |
|报名-2023.4.6 8:00-4.28 20:00
交费-2023.6.15日-6.30(早8:00-晚8:00) | 《会计》《审计》《税法》《经济法》《财务成本管理》《公司战略与风险管理》 | 专业 92/科
综合166/科 | 23年.8.25 - 8.27

2023 考试安排:

  
  8月25日08:30-11:30 会计(第一场)

  8月25日13:00-15:00 税法(第一场)

  8月25日17:00-19:00 经济法(第一场)

  8月26日08:30-11:00 审计

  8月26日08:30-11:00 财务成本管理(第一场)

  8月26日13:00-15:30 财务成本管理(第二场)

  8月26日17:00-19:00 公司战略与风险管理

  8月27日08:30-11:30 会计(第二场)

  8月27日13:00-15:00 税法(第二场)

  8月27日17:00-19:00 经济法(第二场)

综合阶段考试时间

  8月26日8:30-12:00 职业能力综合测试(试卷一)

  8月26日14:00-17:30 职业能力综合测试(试卷二)

PMP

| 报名时间 | 题目类型 | 费用 | 考试时间
| :——– | ——–:| :——: |
| 每年3.5.8.11 | 单多选 | 3900
当年补考2500 | 暂未定

证书三年有效,到期后续费150美元+学习证明

浙大MEM

| 报名时间 | 题目类型 | 费用 | 考试时间
| :——– | ——–| :——: |
| 9月研招网
10月二次确认
11月现场确认 | 综合(数学+语文+逻辑)
英语 | 15w/2.5年 | 全国统考
提前批次录取

教师资格证

| 报名时间 | 题目类型 | 费用 | 考试时间
| :——– | ——–| —— |
|上半年笔试:3月11日
下半年笔试:9月16日 | 综合素质 + 教育知识与能力 | 100-300/科不等 | 上半年面试日期:2023年5月13日-14日
下半年面试日期:2023年12月9日-10日

企业人力资源管理

从四级到一级,有先后顺序依赖

人力资源管理员 (四级)
助理人力资源管理师 (三级)
人力资源管理师 (二级)
高级人力资源管理 (一级)

| 报名时间 | 题目类型 | 费用 | 考试时间
| :——– | ——–:| :——: |
| 每年5月,11月 | 选择+简答+计算+案例分+方案设计 | 100-800 | 11月考试

  1. 关于highcharts: 由纯JavaScript编写的Html5图表库,全部源码开放,个人以及非商业用途可以任意使用及源代码编辑。
  2. highcharts系列软件包含highchairs JS/ highstock JS/ highmaps JS 共三款软件。
    1. highcharts是纯JavaScript编写的图表库;
    2. highstock是纯JavaScript编写的股票图标控件,可以开发股票走势或大数据量的时间轴突变,包含多个高级导航组件: 预设置数据时间范围,日期选择器,滚动条,平移,缩放功能。
    3. highmaps是基于HTML5的优秀地图组件。继承了highcharts简单易用的特性,利用它可以方便快捷的创建用于展现销售/选举结果等其他与地理位置关系密切的交互性地图图表。
  3. 可以在js文件中引入官方提供的cdn服务,也可以从官方下载资源包引入使用,也可以与vue等结合使用,npm安装,在main.js文件中import或者require后,直接使用。具体vue使用操作步骤:
    1. npm install highcharts -(参数自己看情况选择,-g全局,—save上线后依赖,–save-dev仅在开发时依赖);
    2. 在需要的文件中import Highcharts from ‘highcharts’引入, 就可以在mounted时 使用 Highcharts.chart(图表唯一的id名, 图表的option);
    3. option可以在上述文件中写入,也可以创建option组件,专门export 需要编辑的option之类。然后在父组件中引用调用。
  4. 注意: highstock是完全包含了highcharts的,所以没必要完全将两个文件都引入;highmaps 可以单独使用也可以通过地图模块来引用,如果只需要 highmaps 功能,那么只需要引入 highmaps.js 即可。
  5. 图表组成:标题 title, 坐标轴axis, 数据列series, 数据提示框tooltip,图例legend, 版权标签credits等。另外还可以包含导出功能按钮exporting, 标识线 plotLines, 标示区域 plotBands,数据标签 dataLabels。
    1. highcharts实例化中绑定容器的方式有很多种方式:
      1. 通过构造函数: Highcharts.chart(‘id名字’, { 配置 });
      2. 通过chart.renderTo来指定: Highcharts.chart( { chart : { renderTo: ‘id名 ’} } );
      3. 如果页面已经引入了jquery,还可以用jquery插件的形式调用 $(‘id 名’).highcharts( { 配置} );
    2. 设置容器的min- width可以让highcharts自适应宽度

awesome-github-vue 是由OpenDigg整理并维护的Vue相关开源项目库集合。我们会定期同步OpenDigg上的项目到这里,也欢迎各位提交项目给我们。
如果收录的项目有错误,可以通过issue反馈给我们。这里的项目Star数不是实时更新的,一般是一周更新一次。
部分来自转载
内容
UI组件
开发框架
实用库
服务端
辅助工具
应用实例
Demo示例
UI组件
element ★10420 - 饿了么出品的Vue2的web UI工具套件
Vux ★7139 - 基于Vue和WeUI的组件库
iview ★5164 - 基于 Vuejs 的开源 UI 组件库
mint-ui ★5082 - Vue 2的移动UI元素
Keen-UI ★2483 - 轻量级的基本UI组件合集
vue-material ★2476 - 通过Vue Material和Vue 2建立精美的app应用
muse-ui ★2154 - 三端样式一致的响应式 UI 库
vuetify ★1941 - 为移动而生的Vue JS 2组件框架
vonic ★1601 - 快速构建移动端单页应用
eme ★1431 - 优雅的Markdown编辑器
vue-multiselect ★1265 - Vue.js选择框解决方案
vue-table ★870 - 简化数据表格
VueCircleMenu ★793 - 漂亮的vue圆环菜单
vue-chat ★769 - vuejs和vuex及webpack的聊天示例
eagle.js ★758 - hacker的幻灯片演示框架
vueAdmin ★749 - 基于vuejs2和element的简单的管理员模板
radon-ui ★658 - 快速开发产品的Vue组件库
bootstrap-vue ★650 - 应用于Vuejs2的Twitter的Bootstrap 4组件
vue-waterfall ★639 - Vue.js的瀑布布局组件
vue-blu ★623 - 帮助你轻松创建web应用
Vue.Draggable ★623 - 实现拖放和视图模型数组同步
vue-carbon ★621 - 基于 vue 开发MD风格的移动端
vue-beauty ★616 - 由vue和ant design创建的优美UI组件
vue-infinite-scroll ★578 - VueJS的无限滚动指令
vue-awesome-swiper ★577 - vue.js触摸滑动组件
vue-syntax-highlight ★574 - Sublime Text语法高亮
vue-calendar ★474 - 日期选择插件
vue-amap ★404 - 基于Vue 2和高德地图的地图组件
vue-chartjs ★388 - vue中的Chartjs的封装
vue-swipe ★388 - VueJS触摸滑块
vue-echarts ★367 - VueJS的ECharts组件
vue-datepicker ★354 - 日历和日期选择组件
Gokotta ★332 - 简单的音乐播放器
markcook ★322 - 好看的markdown编辑器
vue-sortable ★308 - 轻松添加拖拽排序
vue-google-maps ★293 - 带有双向数据绑定Google地图组件
vue-quill-editor ★268 - 基于Quill适用于Vue2的富文本编辑器
vue-progressbar ★266 - vue轻量级进度条
vue-picture-input ★254 - 移动友好的图片文件输入组件
vue-infinite-loading ★251 - VueJS的无限滚动插件
vue-upload-component ★239 - Vuejs文件上传组件
vue-trend ★235 - 简单优雅的星光线条
vue-scroller ★233 - Vonic UI的功能性组件
vue-paginate ★222 - 分页数据的简约VueJS插件
vue-video-player ★215 - VueJS视频及直播播放器
VueStar ★214 - 带星星动画的vue点赞按钮
vue-datetime-picker ★207 - 日期时间选择控件
vue-core-image-upload ★200 - 轻量级的vue上传插件
vue-tables-2 ★195 - 显示数据的bootstrap样式网格
vue-fullcalendar ★190 - 基于vue.js的全日历组件
vue2-calendar ★187 - 支持lunar和日期事件的日期选择器
rubik ★183 - 基于Vuejs2的开源 UI 组件库
vuejs-datepicker ★179 - vue日期选择器组件
vue-mugen-scroll ★179 - 无限滚动组件
DataVisualization ★178 - 数据可视化
mint-loadmore ★176 - VueJS的双向下拉刷新组件
vue-virtual-scroller ★175 - 带任意数目数据的顺畅的滚动
vue-html5-editor ★163 - html5所见即所得编辑器
Vueditor ★157 - 所见即所得的编辑器
vue-slider ★138 - vue 滑动组件
vue-msgbox ★134 - vuejs的消息框
vue-slide ★133 - vue轻量级滑动组件
vue-drag-and-drop-list ★127 - 创建排序列表的Vue指令
vue-dragula ★126 - 使拖放变得简单
vue-lazyload-img ★126 - 移动优化的vue图片懒加载插件
vue-dropzone ★124 - 用于文件上传的Vue组件
vue-datasource ★121 - 创建VueJS动态表格
vue-data-tables ★116 - VueJS2数据表格
vue-carousel-3d ★114 - VueJS的3D轮播组件
vuwe ★113 - 基于微信WeUI所开发的专用于Vue2的组件库
vue-swiper ★113 - 易于使用的滑块组件
vue-progressive-image ★111 - Vue的渐进图像加载插件
vue-slider-component ★109 - 在vue1和vue2中使用滑块
vue-charts ★109 - 轻松渲染一个图表
vue-impression ★104 - 移动Vuejs2 UI元素
vue-region-picker ★96 - 选择中国的省份市和地区
vue-instant ★95 - 轻松创建自动提示的自定义搜索控件
vue-images ★94 - 显示一组图片的lightbox组件
vue-typer ★92 - 模拟用户输入选择和删除文本的Vue组件
vue-loading ★92 - 元素中加载block的Vue指令
vue-dragging ★91 - 使元素可以拖拽
vue-simplemde ★90 - VueJS的Markdown编辑器组件
vue-datatable ★89 - 使用Vuejs创建的DataTableView
vue-ydui ★86 - 基于Vue2的移动端和微信UI
vue-image-crop-upload ★82 - vue图片剪裁上传组件
vue2-loading-bar ★82 - 最简单的仿Youtube加载条视图
vue-tooltip ★80 - 带绑定信息提示的提示工具
vue-data-grid ★78 - VueJS复杂桌面交互示例
vue-highcharts ★78 - HighCharts组件
vue-music-player ★77 - Vuejs写一个音乐播放器
vue-datepicker ★76 - 漂亮的Vue日期选择器组件
vue-video ★75 - Vue.js的HTML5视频播放器
vue-svgicon ★72 - 创建svg图标组件的工具
vue-baidu-map ★70 - 基于 Vue 2的百度地图组件库
vue-touch-ripple ★69 - vuejs的触摸ripple组件
vue-toast-mobile ★68 - VueJS的toast插件
vue-scrollbar ★64 - 最简单的滚动区域组件
vue2-timepicker ★63 - 下拉时间选择器
vue-quill ★61 - vue组件构建quill编辑器
vue-date-picker ★61 - VueJS日期选择器组件
coffeebreak ★61 - 实时编辑CSS组件工具
vue-float-label ★58 - VueJS浮动标签模式
vue-google-signin-button ★58 - 导入谷歌登录按钮
vodal ★57 - 动画的vue模态
vue-placeholders ★57 - 处理占位符图片和乱码
vue-social-sharing ★53 - 社交分享组件
vue2-editor ★53 - HTML编辑器
awesome-mask ★49 - 拥有独一无二mask的表单
vue-easy-slider ★49 - Vue 2.x的滑块组件
vue-tagsinput ★44 - 基于VueJS的标签组件
vue-img-inputer ★40 - 基于Vue2的图片输入框
vuejs-paginate ★39 - 分页VueJS组件
vue-slick ★39 - 实现流畅轮播框的vue组件
datepicker ★38 - 基于flatpickr的时间选择组件
vue-music-master ★38 - vue手机端网页音乐播放器
vue-fullcalendar ★37 - vue FullCalendar封装
vue-chart ★37 - 强大的高速的vue图表解析
we-vue ★36 - Vue2及weui1开发的组件
handsontable ★36 - 网页表格组件
vue-radial-progress ★35 - Vue.js放射性进度条组件
cubeex ★35 - 包含一套完整的移动UI
vue-popup-mixin ★35 - 用于管理弹出框的遮盖层
vue-material-design ★34 - Vue MD风格组件
vue-morris ★33 - Vuejs组件封装Morrisjs库
vue-bootstrap-table ★33 - 可排序可检索的表格
vue-event-calendar ★32 - 简单小巧的事件日历组件
vue-form-2 ★30 - 全面的HTML表单管理的解决方案
vue-image-clip ★29 - 基于vue的图像剪辑组件
vue-touch-keyboard ★28 - VueJS虚拟键盘组件
vue-pull-to-refresh ★28 - Vue2的上拉下拉
vue-side-nav ★28 - 响应式的侧边导航
vue-ripple ★28 - 制作谷歌MD风格涟漪效果的Vue组件
mint-indicator ★27 - VueJS移动加载指示器插件
vue-lazy-background-images ★25 - 懒加载背景组件的Vue组件
chartjs ★24 - Vue Bulma的chartjs组件
vue-chartkick ★24 - VueJS一行代码实现优美图表
vue-scroll ★24 - vue滚动
vue-area ★23 - 省市区三级联动插件
vue-ztree ★23 - 用 vue 写的树层级组件
vue-tabs ★22 - 多tab页轻型框架
vue-datepicker-simple ★21 - 基于vue的日期选择器
vue-m-carousel ★21 - vue 移动端轮播组件
vue-verify-pop ★20 - 带气泡提示的vue校验插件
vue-waves ★20 - waves的VueJS版本
vue-city ★15 - 城市选择器
vue-parallax ★15 - 整洁的视觉效果
vue-img-loader ★14 - 图片加载UI组件
vue-smoothscroll ★13 - smoothscroll的VueJS版本
vue-typewriter ★13 - vue组件类型
vue-laypage ★12 - 简单的VueJS分页组件
vue-tree ★12 - vue树视图组件
vue-ios-alertview ★8 - iOS7+ 风格的alertview服务
vue-cascading-address ★8 - vue地区选择器
dd-vue-component ★7 - 订单来了的公共组件库
paco-ui-vue ★7 - PACOUI的vue组件
vue-cmap ★6 - Vue China map可视化组件
vue-button ★4 - Vue按钮组件
开发框架
vue.js ★47739 - 流行的轻量高效的前端组件化方案
vue-admin ★3528 - Vue管理面板框架
quasar ★1599 - 响应式网站和混合移动应用程序
electron-vue ★1454 - Electron及VueJS快速启动样板
vuepack ★1395 - 现代VueJS启动器
N3-components ★642 - 快速构建页面和应用
vue-2.0-boilerplate ★263 - Vue2单页应用样板
vue-spa-template ★256 - 前后端分离后的单页应用开发
Framework7-Vue ★233 - VueJS与Framework7结合
vue-stack-2.0 ★152 - Vue2项目样板
vue-bulma ★147 - 轻量级高性能MVVM Admin UI框架
vue-webgulp ★103 - 仿VueJS Vue loader示例
vue-fullstack ★96 - 实时的用户友好的后台系统
jspangAdmin ★74 - 基于Vue2的后台管理系统
vue-element-starter ★41 - vue启动页
实用库
vuex ★6414 - 专为 Vue.js 应用程序开发的状态管理模式
vue-validator ★1655 - vue的验证器插件
vue-loader ★1540 - Vue.js 针对Webpack的组件装载插件
vue-lazyload ★873 - 用于懒加载的Vue模块
vuelidate ★851 - 简单轻量级的基于模块的Vue.js验证
vue-i18n ★754 - VueJS的多语言切换插件
qingcheng ★684 - qingcheng主题
vue-desktop ★470 - 创建管理面板网站的UI库
Vue-Socketio ★368 - VueJS的socketio实现
vue-awesome ★321 - VueJS字体Awesome组件
vue-head ★306 - head标签的meta信息操作
vue-meta ★292 - 管理app的meta信息
meteor-vue-component ★283 - vue和meteor整合
vue-axios ★268 - 将axios整合到VueJS的封装
vue-flatpickr ★204 - 封装Flatpickr的Vue组件
avoriaz ★152 - VueJS测试实用工具库
vue-timeago ★140 - VueJS的时间前组件
meteor-vue ★130 - VueJS和Meteor的桥接
vue-svg-icon ★116 - vue2的可变彩色svg图标方案
vue-focus ★111 - 可重用VueJS组件的焦点指令
vue-animate ★92 - 跨浏览器CSS3动画库
vue-bootstrap-modal ★88 - vue的Bootstrap样式组件
vue-framework7 ★84 - 结合VueJS使用的Framework7组件
vue-scrollTo ★81 - 滚动到元素的VueJS指令
vuep ★81 - 用实时编辑和预览来渲染Vue组件
element-admin ★76 - 支持 vuecli 的 Element UI 的后台模板
vue-password-strength-meter ★71 - 交互式密码强度计
vue-online ★71 - reactive的在线和离线组件
vue-lazy-render ★70 - 用于Vue组件的延迟渲染
vue-clipboard ★68 - VueJS的剪贴板
vue-recyclist ★65 - vuejs无限滚动列表
vue-cordova ★62 - Cordova的VueJS插件
vue-events ★62 - 简化事件的VueJS插件
portal-vue ★60 - 在组件外部渲染DOM
vue-electron ★57 - 将选择的API封装到Vue对象中的插件
cleave ★56 - 基于cleave.js的Cleave组件
vue-gesture ★56 - VueJS的手势事件插件
vue-shortkey ★55 - 应用于Vue.js的Vue-ShortKey 插件
vue-qart ★53 - 用于qartjs的Vue2指令
vuemit ★53 - 处理VueJS事件
vue-router-transition ★53 - 页面过渡插件
vue-local-storage ★52 - 具有类型支持的Vuejs本地储存插件
vue-property-decorator ★52 - VueJS和属性Decorator
vue-websocket ★50 - VueJS的Websocket插件
http-vue-loader ★48 - 从html及js环境加载vue文件
vuedeux ★44 - 轻量级开源实用用层
vue-aplayer ★44 - 便于配置的音乐播放器vue2组件
lazy-vue ★42 - 懒加载图片
vue-bus ★40 - VueJS的事件总线
vue-notifications ★36 - 非阻塞通知库
vue-reactive-storage ★36 - vue插件的Reactive层
vue-kindergarten ★35 - 将kindergarten集成到VueJS应用
vuex-i18n ★35 - 定位插件
vue-ts-loader ★35 - 在Vue装载机检查脚本
vue-lazy-component ★34 - 懒加载组件或者元素的Vue指令
v-media-query ★34 - vue中添加用于配合媒体查询的方法
vue-helmet ★34 - HTML标题管理器
voir ★33 - 保持mutation与视图组件的分离
vue-pagination-2 ★32 - 简单通用的分页组件
vue-observe-visibility ★32 - 当元素在页面上可见或隐藏时检测
Vue.resize ★30 - 检测HTML调整大小事件的vue指令
vue-acl ★26 - VueJS访问控制列表插件
vuex-shared-mutations ★26 - 分享某种Vuex mutations
vue-drag-zone ★19 - 适用于Vue2的dom拖动组件
modal ★18 - Vue Bulma的modal组件
vue-file-base64 ★18 - 将文件转换为Base64的vue组件
Famous-Vue ★16 - Famous库的vue组件
leo-vue-validator ★13 - 异步的表单验证组件
Vue.ImagesLoaded ★13 - 检测图片加载的VueJS指令
vue-methods-promise ★12 - 使vue方法支持promise
vue-titlecase ★12 - 用于字符串titlecased的VueJS过滤器
Vue-Easy-Validator ★11 - 简单的表单验证
vue-zoombox ★10 - 一个高级zoombox
vue-truncate-filter ★9 - 截断字符串的VueJS过滤器
vue-input-autosize ★7 - 基于内容自动调整文本输入的大小
vue-data-validator ★4 - Vuejs2的数据验证插件
vue-lazyloadImg ★4 - 图片懒加载插件
服务端
nuxt.js ★2960 - 用于服务器渲染Vue app的最小化框架
express-vue ★174 - 简单的使用服务器端渲染vue.js
unvue ★105 - 使用简单的通用VueJS应用
vue-ssr ★73 - 非常简单的VueJS服务器端渲染模板
vue-ssr ★62 - 结合Express使用Vue2服务端渲染
vue-easy-renderer ★29 - Nodejs服务端渲染
辅助工具
DejaVue ★580 - Vuejs可视化及压力测试
vue-play ★477 - 展示Vue组件的最小化框架
vscode-VueHelper ★198 - 目前vscode最好的vue代码提示插件
vue-generate-component ★41 - 轻松生成Vue js组件的CLI工具
vue-multipage-cli ★34 - 简单的多页CLI
VuejsStarterKit ★27 - vuejs starter套件
应用实例
koel ★7292 - 基于网络的个人音频流媒体服务
pagekit ★4065 - 轻量级的CMS建站系统
vue-manage-system ★1223 - 后台管理系统解决方案
vuedo ★1088 - 博客平台
jackblog-vue ★996 - 个人博客系统
PJ Blog ★768 - 开源博客
vue-cnode ★661 - 重写vue版cnode社区
CMS-of-Blog ★442 - 博客内容管理器
rss-reader ★332 - 简单的rss阅读器
vue-ghpages-blog ★220 - 依赖GitHub Pages无需本地生成的静态博客
tomato5 ★116 - 实时的协作工具
swoole-vue-webim ★106 - Web版的聊天应用
vue-dashing-js ★70 - nuvo-dashing-js的fork
fewords ★55 - 功能极其简单的笔记本
vue-blog ★53 - 使用Vue2.0 和Vuex的vue-blog
Demo示例
vue2-elm ★4389 - 重写饿了么webapp
Vue-cnodejs ★2226 - 基于vue重写Cnodejs.org的webapp
NeteaseCloudWebApp ★1294 - 高仿网易云音乐的webapp
vue-zhihu-daily ★905 - 知乎日报 with Vuejs
vue-wechat ★816 - vue.js开发微信app界面
vue2-demo ★773 - 从零构建vue2 + vue-router + vuex 开发环境
eleme ★671 - 高仿饿了么app商家详情
vue-demo ★634 - vue简易留言板
spa-starter-kit ★536 - 单页应用启动套件
vue-music ★527 - Vue 音乐搜索播放
maizuo ★525 - vue/vuex/redux仿卖座网
vue-Meizi ★449 - vue最新实战项目
douban ★409 - 模仿豆瓣前端
zhihudaily-vue ★395 - 知乎日报web版
VueDemo_Sell_Eleme ★377 - Vue2高仿饿了么外卖平台
vue-WeChat ★361 - 基于Vue2高仿微信App的单页应用
vue-demo-kugou ★359 - vuejs仿写酷狗音乐webapp
vue-shopping ★350 - 蘑菇街移动端
vue2.0-taopiaopiao ★287 - vue2.0与express构建淘票票页面
vue-leancloud-blog ★253 - 一个前后端完全分离的单页应用
node-vue-server-webpack ★244 - Node.js+Vue.js+webpack快速开发框架
mi-by-vue ★240 - VueJS仿小米官网
easy-vue ★239 - 使用Vue实现简易web
vue2.x-douban ★234 - Vue2实现简易豆瓣电影webApp
xyy-vue ★210 - 大学生交流平台
vue-fis3 ★205 - 流行开源工具集成demo
vue-demo-maizuo ★195 - 使用Vue2全家桶仿制卖座电影
vue-axios-github ★195 - 登录拦截登出功能
vue-163-music ★179 - vue仿网易云音乐客户端版
vue-adminLte-vue-router ★177 - vue和adminLte整合应用
vue-zhihudaily ★175 - 知乎日报 Web 版本
tmdb-app ★159 - TMDbVueJS应用
Zhihu-Daily-Vue.js ★145 - Vuejs单页网页应用
notepad ★138 - 本地存储的记事本
daily-zhihu ★127 - 基于Vue2的知乎日报单页应用
gouyan-movie-vue ★122 - 基于vue的在线电影影讯网站
hello-vue-django ★121 - 使用带有Django的vuejs的样板项目
vue-express-mongodb ★116 - 简单的前后端分离案例
x-blog ★109 - 开源的个人blog项目
vue-cnode ★108 - vue单页应用demo
vue-mini-shop ★107 - VueJS在线商店
websocket_chat ★101 - 基于vue和websocket的多人在线聊天室
Vdo ★96 - VueJS与MD重构豆瓣
photoShare ★94 - 基于图片分享的社交平台
vueBlog ★87 - 前后端分离博客
vue-zhihudaily-2.0 ★85 - 使用Vue2.0+vue-router+vuex创建的zhihudaily
beauty ★81 - 豆瓣美女clone
generator-loopback-vue ★80 - 典型前后端分离项目模板
vue-ruby-china ★74 - VueJS框架搭建的rubychina平台
vue-koa-demo ★72 - 使用Vue2和Koa1的全栈demo
Zhihu_Daily ★70 - 基于Vue和Nodejs的Web单页应用
vue2.x-Cnode ★63 - 基于vue全家桶的Cnode社区
webApp ★57 - Vue2的移动端webApp音乐播放器
houtai ★52 - 基于vue和Element的后台管理系统
vue-trip ★52 - vue2做的出行webapp
github-explorer ★50 - 寻找最有趣的GitHub库
life-app-vue ★49 - 使用vue2完成多功能集合到小webapp
vue-bushishiren ★47 - 不是诗人应用
vue-ssr-boilerplate ★47 - 精简版的ofvue-hackernews-2
doubanMovie ★41 - 豆瓣电影展示
vue-cli-multipage-bootstrap ★41 - 将vue官方在线示例整合到组件中
ios7-vue ★40 - 使用vue2.0 vue-router vuex模拟ios7
vue-quasar-admin-example ★39 - 将Quasar和VueJS应用于SPA项目
cnode-vue ★39 - 基于vue和vue-router构建的cnodejs web网站SPA
iview2-management-system ★38 - 后台管理系统解决方案简单示例
Framework7-VueJS ★38 - 使用移动框架的示例
seeMusic ★36 - 跨平台云音乐播放器
vue-XiaoMi-Shop ★34 - 高仿小米商城的项目
vue-cnode ★34 - 用 Vue 做的 CNode 官网
HyaReader ★34 - 移动友好的阅读器
vue-music163 ★30 - 音乐VueJS项目
zhihu-daily ★29 - 轻松查看知乎日报内容
sls-vuex2-demo ★26 - vuex2商城购物车demo
vue-cnode ★22 - 使用cNode社区提供的接口
gank ★21 - gankio资源的阅读应用
zhihu-daily-vue ★21 - 知乎日报
vue-cnode-mobile ★21 - 搭建cnode社区
vue-dropload ★19 - 用以测试下拉加载与简单路由
Todos_Vuejs ★19 - vuejs2搭建的极简的todolist
Vuejs-SalePlatform ★18 - vuejs搭建的售卖平台demo
vue-starter ★18 - VueJs项目的简单启动页
v-notes ★17 - 简单美观的记事本
vue-h5plus ★15 - 前卫的vue及html5plus跨平台demo
simply-calculator-vuejs ★12 - 用VueJS实现简易计算器
vue-memo ★11 - 用 vue写的记事本应用

vue开源项目收集


awesome-github-vue 是由OpenDigg整理并维护的Vue相关开源项目库集合。我们会定期同步OpenDigg上的项目到这里,也欢迎各位提交项目给我们。
如果收录的项目有错误,可以通过issue反馈给我们。这里的项目Star数不是实时更新的,一般是一周更新一次。
内容来自转载

内容

UI组件

开发框架

实用库

服务端

  • nuxt.js ★2960 - 用于服务器渲染Vue app的最小化框架
  • express-vue ★174 - 简单的使用服务器端渲染vue.js
  • unvue ★105 - 使用简单的通用VueJS应用
  • vue-ssr ★73 - 非常简单的VueJS服务器端渲染模板
  • vue-ssr ★62 - 结合Express使用Vue2服务端渲染
  • vue-easy-renderer ★29 - Nodejs服务端渲染

辅助工具

应用实例

Demo示例

link: markyun / My-blog
Front-end-Developer-Questions/Questions-and-Answers/README.md

只看问题点这里
看全部问题和答案点这里
本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习、透彻学习,形成自己的知识链。万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的!不可能的!不可能的!
前端还是一个年轻的行业,新的行业标准, 框架, 库都不断在更新和新增,正如赫门在2015深JS大会上的《前端服务化之路》主题演讲中说的一句话:“每18至24个月,前端都会难一倍”,这些变化使前端的能力更加丰富、创造的应用也会更加完美。所以关注各种前端技术,跟上快速变化的节奏,也是身为一个前端程序员必备的技能之一。
最近也收到许多微博私信的鼓励和更正题目信息,后面会经常更新题目和答案到github博客。希望前端er达到既能使用也会表达,对理论知识有自己的理解。可根据下面的知识点一个一个去进阶学习,形成自己的职业技能链。
面试有几点需注意:(来源寒冬winter 老师,github:@wintercn)

  1. 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。
  2. 题目类型: 理论知识、算法、项目细节、技术视野、开放性题、工作案例。
  3. 细节追问: 可以确保问到你开始不懂或面试官开始不懂为止,这样可以大大延展题目的区分度和深度,知道你的实际能力。因为这种知识关联是长时期的学习,临时抱佛脚绝对是记不住的。
  4. 回答问题再棒,面试官(可能是你面试职位的直接领导),会考虑我要不要这个人做我的同事?所以态度很重要、除了能做事,还要会做人。(感觉更像是相亲( •̣̣̣̣̣̥́௰•̣̣̣̣̣̥̀ ))
  5. 资深的前端开发能把absolute和relative弄混,这样的人不要也罢,因为团队需要的是:你这个人具有可以依靠的才能(靠谱)。
    前端开发知识点:
    HTML&CSS:
    对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级、
    HTML5、CSS3、Flexbox

JavaScript:
数据类型、运算、对象、Function、继承、闭包、作用域、原型链、事件、RegExp、JSON、Ajax、
DOM、BOM、内存泄漏、跨域、异步装载、模板引擎、前端MVC、路由、模块化、Canvas、ECMAScript 6、Nodejs

其他:
移动端、响应式、自动化构建、HTTP、离线存储、WEB安全、优化、重构、团队协作、可维护、易用性、SEO、UED、架构、职业生涯、快速学习能力
作为一名前端工程师,无论工作年头长短都应该掌握的知识点:
此条由 王子墨 发表在 攻城师的实验室
1、DOM结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动。

2、DOM操作 —— 如何添加、移除、移动、复制、创建和查找节点等。

3、事件 —— 如何使用事件,以及IE和标准DOM事件模型之间存在的差别。

4、XMLHttpRequest —— 这是什么、怎样完整地执行一次GET请求、怎样检测错误。

5、严格模式与混杂模式 —— 如何触发这两种模式,区分它们有何意义。

6、盒模型 —— 外边距、内边距和边框之间的关系,及IE8以下版本的浏览器中的盒模型

7、块级元素与行内元素 —— 怎么用CSS控制它们、以及如何合理的使用它们

8、浮动元素 —— 怎么使用它们、它们有什么问题以及怎么解决这些问题。

9、HTML与XHTML —— 二者有什么区别,你觉得应该使用哪一个并说出理由。

10、JSON —— 作用、用途、设计结构。

备注:
根据自己需要选择性阅读,面试题是对理论知识的总结,让自己学会应该如何表达。

资料答案不够正确和全面,欢迎欢迎Star和提交issues。

格式不断修改更新中。

更新记录:
2016年3月25日:新增ECMAScript6 相关问题

  • Doctype作用?标准模式与兼容模式各有什么区别?
    (1)、<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。

(2)、标准模式的排版 和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

  • HTML5 为什么只需要写 ?
    HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);

而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

  • 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
    首先:CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,如div的display默认值为“block”,则为“块级”元素;span默认display属性值为“inline”,是“行内”元素。

(1)行内元素有:a b span img input select strong(强调的语气)
(2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

(3)常见的空元素:


鲜为人知的是: * 页面导入样式时,使用link和@import有什么区别? (1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;

(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

  • 介绍一下你对浏览器内核的理解?
    主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。
    渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。

JS引擎则:解析和执行javascript来实现网页的动态效果。

最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

  • 常见的浏览器内核有哪些?
    Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。[又称MSHTML]
    Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
    Presto内核:Opera7及以上。 [Opera内核原为:Presto,现为:Blink;]
    Webkit内核:Safari,Chrome等。 [ Chrome的:Blink(WebKit的分支)]
    详细文章:浏览器内核的解析和对比

  • html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

  • HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
    绘画 canvas;
    用于媒介回放的 video 和 audio 元素;
    本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
    sessionStorage 的数据在浏览器关闭后自动删除;
    语意化更好的内容元素,比如 article、footer、header、nav、section;
    表单控件,calendar、date、time、email、url、search;
    新的技术webworker, websocket, Geolocation;
    移除的元素:
    纯表现的元素:basefont,big,center,font, s,strike,tt,u;
    对可用性产生负面影响的元素:frame,frameset,noframes;

  • 支持HTML5新标签:
    IE8/IE7/IE6支持通过document.createElement方法产生的标签,
    可以利用这一特性让这些浏览器支持HTML5新标签,
    浏览器支持新标签后,还需要添加标签默认的样式。

    当然也可以直接使用成熟的框架、比如html5shim;

  • 如何区分HTML5: DOCTYPE声明\新增的结构元素\功能元素

  • 简述一下你对HTML语义化的理解?
    用正确的标签做正确的事情。
    html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
    即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
    搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;
    使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

  • HTML5的离线储存怎么使用,工作原理能不能解释一下?
    在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。
    原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。

如何使用:
1、页面头部像下面一样加入一个manifest的属性;
2、在cache.manifest文件的编写离线存储的资源;
CACHE MANIFEST
#v0.11
CACHE:
js/app.js
css/style.css
NETWORK:
resourse/logo.png
FALLBACK:
/ /offline.html
3、在离线状态时,操作window.applicationCache进行需求实现。
详细的使用请参考:有趣的HTML5:离线存储

  • 浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?
    在线的情况下,浏览器发现html头部有manifest属性,它会请求manifest文件,如果是第一次访问app,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。
    离线的情况下,浏览器就直接使用离线存储的资源。
    详细的使用请参考:有趣的HTML5:离线存储
  • 请描述一下 cookies,sessionStorage 和 localStorage 的区别?
    cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
    cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。
    sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

存储大小:
cookie数据大小不能超过4k。
sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

有期时间:
localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
sessionStorage 数据在当前浏览器窗口关闭后自动删除。
cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭

  • iframe有那些缺点?
    *iframe会阻塞主页面的Onload事件;
    *搜索引擎的检索程序无法解读这种页面,不利于SEO;

*iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。

使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript
动态给iframe添加src属性值,这样可以绕开以上两个问题。

  • Label的作用是什么?是怎么用的?
    label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。


<input type=“text“name=”Name” id=”Name”/>

  • HTML5的form如何关闭自动完成功能?
    给不想要提示的 form 或某个 input 设置为 autocomplete=off。
  • 如何实现浏览器内多个标签页之间的通信? (阿里)
    WebSocket、SharedWorker;
    也可以调用localstorge、cookies等本地存储方式;

localstorge另一个浏览上下文里被添加、修改或删除时,它都会触发一个事件,
我们通过监听事件,控制它的值来进行页面信息通信;
注意quirks:Safari 在无痕模式下设置localstorge值时会抛出 QuotaExceededError 的异常;

  • webSocket如何兼容低浏览器?(阿里)
    Adobe Flash Socket 、
    ActiveX HTMLFile (IE) 、
    基于 multipart 编码发送 XHR 、
    基于长轮询的 XHR
  • 页面可见性(Page Visibility API) 可以有哪些用途?
    通过 visibilityState 的值检测页面当前是否可见,以及打开网页的时间等;
    在页面被切换到其他后台进程的时候,自动暂停音乐或视频的播放;
  • 如何在页面上实现一个圆形的可点击区域?
    1、map+area或者svg
    2、border-radius
    3、纯js实现 需要求一个点在不在圆上简单算法、获取鼠标坐标等等
  • 实现不使用 border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果。
  • 网页验证码是干嘛的,是为了解决什么安全问题。
    区分用户是计算机还是人的公共全自动程序。可以防止恶意破解密码、刷票、论坛灌水;
    有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。
  • title与h1的区别、b与strong的区别、i与em的区别?
    title属性没有明确意义只表示是个标题,H1则表示层次明确的标题,对页面信息的抓取也有很大的影响;

strong是标明重点内容,有语气加强的含义,使用阅读设备阅读网络时:会重读,而是展示强调内容。

i内容展示为斜体,em表示强调的文本;

Physical Style Elements – 自然样式标签
b, i, u, s, pre
Semantic Style Elements – 语义样式标签
strong, em, ins, del, code
应该准确使用语义样式标签, 但不能滥用, 如果不能确定时首选使用自然样式标签。

  • 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?
    (1)有两种, IE 盒子模型、W3C 盒子模型;
    (2)盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border);
    (3)区 别: IE的content部分把 border 和 padding计算了进去;

  • CSS选择符有哪些?哪些属性可以继承?

  • 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 ;

  • CSS优先级算法如何计算?

  • 优先级就近原则,同权重情况下样式定义最近者为准;

  • 载入样式以最后载入的定位为准;

优先级为:
!important > id > class > tag
important 比 内联优先级高

  • CSS3新增伪类有那些?
    举例:
    p:first-of-type 选择属于其父元素的首个

    元素的每个

    元素。
    p:last-of-type 选择属于其父元素的最后

    元素的每个

    元素。
    p:only-of-type 选择属于其父元素唯一的

    元素的每个

    元素。
    p:only-child 选择属于其父元素的唯一子元素的每个

    元素。
    p:nth-child(2) 选择属于其父元素的第二个子元素的每个

    元素。

    :after 在元素之前添加内容,也可以用来做清除浮动。
    :before 在元素之后添加内容
    :enabled
    :disabled 控制表单控件的禁用状态。
    :checked 单选框或复选框被选中。

  • 如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中?

    • 给div设置一个宽度,然后添加margin:0 auto属性
      div{
      width:200px;
      margin:0 auto;
      }
    • 居中一个浮动元素
      确定容器的宽高 宽500 高 300 的层
      设置层的外边距

.div {
width:500px ; height:300px;//高度可以不设
margin: -150px 0 0 -250px;
position:relative; //相对定位
background-color:pink; //方便看效果
left:50%;
top:50%;
}
* 让绝对定位的div居中
position: absolute;
width: 1200px;
background: none;
margin: 0 auto;
top: 0;
left: 0;
bottom: 0;
right: 0;

  • display有哪些值?说明他们的作用。
    block 象块类型元素一样显示。
    none 缺省值。象行内元素类型一样显示。
    inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。
    list-item 象块类型元素一样显示,并添加样式列表标记。
    table 此元素会作为块级表格来显示
    inherit 规定应该从父元素继承 display 属性的值
  • pposition的值relative和absolute定位原点是?
    absolute
    生成绝对定位的元素,相对于值不为 static的第一个父元素进行定位。
    fixed (老IE不支持)
    生成绝对定位的元素,相对于浏览器窗口进行定位。
    relative
    生成相对定位的元素,相对于其正常位置进行定位。
    static
    默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right z-index 声明)。
    inherit
    规定从父元素继承 position 属性的值。
  • CSS3有哪些新特性?
    新增各种CSS选择器 (: not(.input):所有 class 不是“input”的节点)
    圆角 (border-radius:8px)
    多列布局 (multi-column layout)
    阴影和反射 (Shadow\Reflect)
    文字特效 (text-shadow、)
    文字渲染 (Text-decoration)
    线性渐变 (gradient)
    旋转 (transform)
    增加了旋转,缩放,定位,倾斜,动画,多背景
    transform:\scale(0.85,0.90)\ translate(0px,-30px)\ skew(-9deg,0deg)\Animation:
  • 请解释一下CSS3的Flexbox(弹性盒布局模型),以及适用场景?
    .
  • 用纯CSS创建一个三角形的原理是什么?
    把上、左、右三条边隐藏掉(颜色设为 transparent)

#demo {
width: 0;
height: 0;
border-width: 20px;
border-style: solid;
border-color: transparent transparent red transparent;
}

  • 一个满屏 品 字布局 如何设计?
    简单的方式:
    上面的div宽100%,
    下面的两个div分别宽50%,
    然后用float或者inline使其不换行即可

  • 经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?

  • png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.

  • 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。

  • IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。

    浮动ie产生的双倍距离 #box{ float:left; width:10px; margin:0 0 0 100px;}

    这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入 ——_display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)

    渐进识别的方式,从总体中逐渐排除局部。

    首先,巧妙的使用“\9”这一标记,将IE游览器从所有情况中分离出来。
    接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

    css
    .bb{
    background-color:#f1ee18;/所有识别/
    .background-color:#00deff\9; /IE6、7、8识别/
    +background-color:#a200ff;/IE6、7识别/
    _background-color:#1e0bd1;/IE6识别/
    }

  • IE下,可以使用获取常规属性的方法来获取自定义属性,
    也可以使用getAttribute()获取自定义属性;
    Firefox下,只能使用getAttribute()获取自定义属性。
    解决方法:统一通过getAttribute()获取自定义属性。

  • IE下,even对象有x,y属性,但是没有pageX,pageY属性;
    Firefox下,event对象有pageX,pageY属性,但是没有x,y属性。

  • 解决方法:(条件注释)缺点是在IE浏览器下可能会增加额外的HTTP请求数。

  • Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,
    可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决。

超链接访问过后hover样式就不出现了 被点击访问过的超链接样式不在具有hover和active了解决方法是改变CSS属性的排列顺序:
L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}

  • li与li之间有看不见的空白间隔是什么原因引起的?有什么解决办法?
    行框的排列会受到中间空白(回车\空格)等的影响,因为空格也属于字符,这些空白也会被应用样式,占据空间,所以会有间隔,把字符大小设为0,就没有空格了。
  • 为什么要初始化CSS样式。
  • 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

  • 当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。

最简单的初始化方法: * {padding: 0; margin: 0;} (强烈不建议)

淘宝的样式初始化代码:
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }
h1, h2, h3, h4, h5, h6{ font-size:100%; }
address, cite, dfn, em, var { font-style:normal; }
code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
small{ font-size:12px; }
ul, ol { list-style:none; }
a { text-decoration:none; }
a:hover { text-decoration:underline; }
sup { vertical-align:text-top; }
sub{ vertical-align:text-bottom; }
legend { color:#000; }
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; }
table { border-collapse:collapse; border-spacing:0; }

  • absolute的containing block(容器块)计算方式跟正常流有什么不同?
    无论属于哪种,都要先找到其祖先元素中最近的 position 值不为 static 的元素,然后再判断:
    1、若此元素为 inline 元素,则 containing block 为能够包含这个元素生成的第一个和最后一个 inline box 的 padding box (除 margin, border 外的区域) 的最小矩形;
    2、否则,则由这个祖先元素的 padding box 构成。
    如果都找不到,则为 initial containing block。

补充:

  1. static(默认的)/relative:简单说就是它的父元素的内容框(即去掉padding的部分)
  2. absolute: 向上找最近的定位为absolute/relative的元素
  3. fixed: 它的containing block一律为根元素(html/body),根元素也是initial containing block
  • CSS里的visibility属性有个collapse属性值是干嘛用的?在不同浏览器下以后什么区别?
  • position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
  • 对BFC规范(块级格式化上下文:block formatting context)的理解?
    (W3C CSS 2.1 规范中的一个概念,它是一个独立容器,决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。)
    一个页面是由很多个 Box 组成的,元素的类型和 display 属性,决定了这个 Box 的类型。
    不同类型的 Box,会参与不同的 Formatting Context(决定如何渲染文档的容器),因此Box内的元素会以不同的方式渲染,也就是说BFC内部的元素和外部的元素不会互相影响。
  • css定义的权重
    以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值:

/权重为1/
div{
}
/权重为10/
.class1{
}
/权重为100/
#id1{
}
/权重为100+1=101/
#id1 div{
}
/权重为10+1=11/
.class1 div{
}
/权重为10+10+1=21/
.class1 .class2 div{
}

如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现

  • 请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式
  • 移动端的布局用过媒体查询吗?
  • 使用 CSS 预处理器吗?喜欢那个?
    SASS (SASS、LESS没有本质区别,只因为团队前端都是用的SASS)
  • CSS优化、提高性能的方法有哪些?
  • 浏览器是怎样解析CSS选择器的?
  • 在网页中的应该使用奇数还是偶数的字体?为什么呢?
  • margin和padding分别适合什么场景使用?
  • 抽离样式模块怎么写,说出思路,有无实践经验?[阿里航旅的面试题]
  • 元素竖向的百分比设定是相对于容器的高度吗?
  • 全屏滚动的原理是什么?用到了CSS的那些属性?
  • 什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的IE?
  • 视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再次出现,和只出现一次分别怎么做?)
  • ::before 和 :after中双冒号和单冒号 有什么区别?解释一下这2个伪元素的作用。
  • 如何修改chrome记住密码后自动填充表单的黄色背景 ?
  • 你对line-height是如何理解的?
  • 设置元素浮动后,该元素的display值是多少?(自动变成display:block)
  • 怎么让Chrome支持小于12px 的文字?
  • 让页面里的字体变清晰,变细用CSS怎么做?(-webkit-font-smoothing: antialiased;)
  • font-style属性可以让它赋值为“oblique” oblique是什么意思?
  • position:fixed;在android下无效怎么处理?
  • 如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)
    多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms
  • display:inline-block 什么时候会显示间隙?(携程)
    移除空格、使用margin负值、使用font-size:0、letter-spacing、word-spacing
  • overflow: scroll时不能平滑滚动的问题怎么处理?
  • 有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度。
  • png、jpg、gif 这些图片格式解释一下,分别什么时候用。有没有了解过webp?
  • 什么是Cookie 隔离?(或者说:请求资源的时候不要让它带cookie怎么做)
    如果静态文件都放在主域名下,那静态文件请求的时候都带有的cookie的数据提交给server的,非常浪费流量,
    所以不如隔离开。

因为cookie有域的限制,因此不能跨域提交请求,故使用非主要域名的时候,请求头中就不会带有cookie数据,
这样可以降低请求头的大小,降低请求时间,从而达到降低整体请求延时的目的。

同时这种方式不会将cookie传入Web Server,也减少了Web Server对cookie的处理分析环节,
提高了webserver的http请求的解析速度。

  • style标签写在body后与body前有什么区别?
  • 什么是CSS 预处理器 / 后处理器?
  • 预处理器例如:LESS、Sass、Stylus,用来预编译Sass或less,增强了css代码的复用性,
    还有层级、mixin、变量、循环、函数等,具有很方便的UI组件模块化开发能力,极大的提高工作效率。

  • 后处理器例如:PostCSS,通常被视为在完成的样式表中根据CSS规范处理CSS,让其更有效;目前最常做的
    是给CSS属性添加浏览器私有前缀,实现跨浏览器兼容性的问题。

  • 介绍js的基本数据类型。
    Undefined、Null、Boolean、Number、String、Symbol(new in ECMAScript 2015)
  • 介绍js有哪些内置对象?
    Object 是 JavaScript 中所有对象的父对象

数据封装类对象:Object、Array、Boolean、Number 和 String
其他对象:Function、Arguments、Math、Date、RegExp、Error

  • 说几条写JavaScript的基本规范?
    1.不要在同一行声明多个变量。
    2.请使用 ===/!==来比较true/false或者数值
    3.使用对象字面量替代new Array这种形式
    4.不要使用全局函数。
    5.Switch语句必须带有default分支
    6.函数不应该有时候有返回值,有时候没有返回值。
    7.For循环必须使用大括号
    8.If语句必须使用大括号
    9.for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染。
  • JavaScript原型,原型链 ? 有什么特点?
    每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时,
    如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,
    于是就这样一直找下去,也就是我们平时所说的原型链的概念。
    关系:instance.constructor.prototype = instance.proto

特点:
JavaScript对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本。当我们修改原型时,与之相关的对象也会继承这一改变。

当我们需要一个属性的时,Javascript引擎会先看当前对象中是否有这个属性, 如果没有的话,
就会查找他的Prototype对象是否有这个属性,如此递推下去,一直检索到 Object 内建对象。
function Func(){}
Func.prototype.name = “Sean”;
Func.prototype.getInfo = function() {
return this.name;
}
var person = new Func();//现在可以参考var person = Object.create(oldObject);
console.log(person.getInfo());//它拥有了Func的属性和方法
//“Sean”
console.log(Func.prototype);
// Func { name=”Sean”, getInfo=function()}

  • JavaScript有几种类型的值?,你能画一下他们的内存图吗?
    栈:原始数据类型(Undefined,Null,Boolean,Number、String)
    堆:引用数据类型(对象、数组和函数)

两种类型的区别是:存储位置不同;
原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;
引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其
在栈中的地址,取得地址后从堆中获得实体

  • Javascript如何实现继承?
    1、构造继承
    2、原型继承
    3、实例继承
    4、拷贝继承

原型prototype机制或apply和call方法去实现较简单,建议使用构造函数与原型混合方式。

    function Parent(){
        this.name = 'wang';
    }

    function Child(){
        this.age = 28;
    }
    Child.prototype = new Parent();//继承了Parent,通过原型

    var demo = new Child();
    alert(demo.age);
    alert(demo.name);//得到被继承的属性
  • JavaScript继承的几种实现方式?
    • 参考:构造函数的继承,非构造函数的继承;
  • javascript创建对象的几种方式?
    javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON;但写法有很多种,也能混合使用。

1、对象字面量的方式

person={firstname:"Mark",lastname:"Yun",age:25,eyecolor:"black"};

2、用function来模拟无参的构造函数

function Person(){}
var person=new Person();//定义一个function,如果使用new"实例化",该function可以看作是一个Class
person.name="Mark";
person.age="25";
person.work=function(){
alert(person.name+" hello...");
}
person.work();

3、用function来模拟参构造函数来实现(用this关键字定义构造的上下文属性)

function Pet(name,age,hobby){
   this.name=name;//this作用域:当前对象
   this.age=age;
   this.hobby=hobby;
   this.eat=function(){
      alert("我叫"+this.name+",我喜欢"+this.hobby+",是个程序员");
   }
}
var maidou =new Pet("麦兜",25,"coding");//实例化、创建对象
maidou.eat();//调用eat方法

4、用工厂方式来创建(内置对象)

 var wcDog =new Object();
 wcDog.name="旺财";
 wcDog.age=3;
 wcDog.work=function(){
   alert("我是"+wcDog.name+",汪汪汪......");
 }
 wcDog.work();

5、用原型方式来创建

function Dog(){

 }
 Dog.prototype.name="旺财";
 Dog.prototype.eat=function(){
 alert(this.name+"是个吃货");
 }
 var wangcai =new Dog();
 wangcai.eat();

5、用混合方式来创建

function Car(name,price){
  this.name=name;
  this.price=price; 
}
 Car.prototype.sell=function(){
   alert("我是"+this.name+",我现在卖"+this.price+"万元");
  }
var camry =new Car("凯美瑞",27);
camry.sell(); 
  • Javascript作用链域?
    全局函数无法查看局部函数的内部细节,但局部函数可以查看其上层的函数细节,直至全局细节。
    当需要从局部函数查找某一属性或方法时,如果当前作用域没有找到,就会上溯到上层作用域查找,
    直至全局函数,这种组织形式就是作用域链。
  • 谈谈This对象的理解。
    • this总是指向函数的直接调用者(而非间接调用者);
    • 如果有new关键字,this指向new出来的那个对象;
    • 在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window;
  • eval是做什么的?
    它的功能是把对应的字符串解析成JS代码并运行;
    应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。
    由JSON字符串转换为JSON对象的时候可以用eval,var obj =eval(‘(‘+ str +’)’);
  • 什么是window对象? 什么是document对象?
  • null,undefined 的区别?
    null 表示一个对象被定义了,值为“空值”;
    undefined 表示不存在这个值。

typeof undefined
//“undefined”
undefined :是一个表示”无”的原始值或者说表示”缺少值”,就是此处应该有一个值,但是还没有定义。当尝试读取时会返回 undefined;
例如变量被声明了,但没有赋值时,就等于undefined

typeof null
//“object”
null : 是一个对象(空对象, 没有任何属性和方法);
例如作为函数的参数,表示该函数的参数不是对象;

注意:
在验证null时,一定要使用 === ,因为 == 无法分别 null 和 undefined

再来一个例子:

null
Q:有张三这个人么?
A:有!
Q:张三有房子么?
A:没有!

undefined
Q:有张三这个人么?
A:没有!

参考阅读:undefined与null的区别

  • 写一个通用的事件侦听器函数。
    // event(事件)工具集,来源:github.com/markyun
    markyun.Event = {
    // 页面加载完成后
    readyEvent : function(fn) {
    if (fn==null) {
    fn=document;
    }
    var oldonload = window.onload;
    if (typeof window.onload != ‘function’) {
    window.onload = fn;
    } else {
    window.onload = function() {
    oldonload();
    fn();
    };
    }
    },
    // 视能力分别使用dom0||dom2||IE方式 来绑定事件
    // 参数: 操作的元素,事件名称 ,事件处理程序
    addEvent : function(element, type, handler) {
    if (element.addEventListener) {
    //事件类型、需要执行的函数、是否捕捉
    element.addEventListener(type, handler, false);
    } else if (element.attachEvent) {
    element.attachEvent(‘on’ + type, function() {
    handler.call(element);
    });
    } else {
    element[‘on’ + type] = handler;
    }
    },
    // 移除事件
    removeEvent : function(element, type, handler) {
    if (element.removeEventListener) {
    element.removeEventListener(type, handler, false);
    } else if (element.datachEvent) {
    element.detachEvent(‘on’ + type, handler);
    } else {
    element[‘on’ + type] = null;
    }
    },
    // 阻止事件 (主要是事件冒泡,因为IE不支持事件捕获)
    stopPropagation : function(ev) {
    if (ev.stopPropagation) {
    ev.stopPropagation();
    } else {
    ev.cancelBubble = true;
    }
    },
    // 取消事件的默认行为
    preventDefault : function(event) {
    if (event.preventDefault) {
    event.preventDefault();
    } else {
    event.returnValue = false;
    }
    },
    // 获取事件目标
    getTarget : function(event) {
    return event.target || event.srcElement;
    },
    // 获取event对象的引用,取到事件的所有信息,确保随时能使用event;
    getEvent : function(e) {
    var ev = e || window.event;
    if (!ev) {
    var c = this.getEvent.caller;
    while (c) {
    ev = c.arguments[0];
    if (ev && Event == ev.constructor) {
    break;
    }
    c = c.caller;
    }
    }
    return ev;
    }
    };
  • [“1”, “2”, “3”].map(parseInt) 答案是多少?
    [1, NaN, NaN] 因为 parseInt 需要两个参数 (val, radix),
    其中 radix 表示解析时用的基数。
    map 传了 3 个 (element, index, array),对应的 radix 不合法导致解析失败。
  • 事件是?IE与火狐的事件机制有什么区别? 如何阻止冒泡?
  1. 我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。
  2. 事件处理机制:IE是事件冒泡、Firefox同时支持两种事件模型,也就是:捕获型事件和冒泡型事件;
  3. ev.stopPropagation();(旧ie的方法 ev.cancelBubble = true;)
  • 什么是闭包(closure),为什么要用它?
    闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。

闭包的特性:

1.函数内再嵌套函数
2.内部函数可以引用外层的参数和变量
3.参数和变量不会被垃圾回收机制回收

//li节点的onclick事件都能正确的弹出当前被点击的li索引


  • index = 0

  • index = 1

  • index = 2

  • index = 3

执行say667()后,say667()闭包内部变量会存在,而闭包内部函数的内部变量不会存在
使得Javascript的垃圾回收机制GC不会收回say667()所占用的资源
因为say667()的内部函数的执行需要依赖say667()中的变量
这是对闭包作用的非常直白的描述

function say667() {
// Local variable that ends up within closure
var num = 666;
var sayAlert = function() {
alert(num);
}
num++;
return sayAlert;
}

var sayAlert = say667();
sayAlert()//执行结果应该弹出的667

  • javascript 代码中的”use strict”;是什么意思 ? 使用它区别是什么?
    use strict是一种ECMAscript 5 添加的(严格)运行模式,这种模式使得 Javascript 在更严格的条件下运行,

使JS编码更加规范化的模式,消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为。
默认支持的糟糕特性都会被禁用,比如不能用with,也不能在意外的情况下给全局变量赋值;
全局变量的显示声明,函数必须声明在顶层,不允许在非函数代码块内声明函数,arguments.callee也不允许使用;
消除代码运行的一些不安全之处,保证代码运行的安全,限制函数中的arguments修改,严格模式下的eval函数的行为和非严格模式的也不相同;

提高编译器效率,增加运行速度;
为未来新版本的Javascript标准化做铺垫。

  • 如何判断一个对象是否属于某个类?
    使用instanceof (待完善)
    if(a instanceof Person){
    alert(‘yes’);
    }
  • new操作符具体干了什么呢?
    1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。
    2、属性和方法被加入到 this 引用的对象中。
    3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。

var obj = {};
obj.proto = Base.prototype;
Base.call(obj);

  • 用原生JavaScript的实现过什么功能吗?
  • Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
    hasOwnProperty

javaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。
使用方法:
object.hasOwnProperty(proName)
其中参数object是必选项。一个对象的实例。
proName是必选项。一个属性名称的字符串值。

如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true,反之则返回 false。

  • JSON 的了解?
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
    它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小
    如:{“age”:”12”, “name”:”back”}

JSON字符串转换为JSON对象:
var obj =eval(‘(‘+ str +’)’);
var obj = str.parseJSON();
var obj = JSON.parse(str);

JSON对象转换为JSON字符串:
var last=obj.toJSONString();
var last=JSON.stringify(obj);

  • [].forEach.call($$(““),function(a){a.style.outline=”1px solid #”+(~~(Math.random()(1<<24))).toString(16)}) 能解释一下这段代码的意思吗?
  • js延迟加载的方式有哪些?
    defer和async、动态创建DOM方式(用得最多)、按需异步载入js
  • Ajax 是什么? 如何创建一个Ajax?
    ajax的全称:Asynchronous Javascript And XML。
    异步传输+js+xml。
    所谓异步,在这里简单地解释就是:向服务器发送请求的时候,我们不必等待结果,而是可以同时做其他的事情,等到有了结果它自己会根据设定进行后续操作,与此同时,页面是不会发生整页刷新的,提高了用户体验。

(1)创建XMLHttpRequest对象,也就是创建一个异步调用对象
(2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息
(3)设置响应HTTP请求状态变化的函数
(4)发送HTTP请求
(5)获取异步调用返回的数据
(6)使用JavaScript和DOM实现局部刷新

  • 同步和异步的区别?
    同步的概念应该是来自于OS中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性.
    同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。
    异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。
    (待完善)
  • 如何解决跨域问题?
    jsonp、 iframe、window.name、window.postMessage、服务器上设置代理页面
  • 页面编码和被请求的资源编码如果不一致如何处理?
  • 模块化开发怎么做?
    立即执行函数,不暴露私有成员
    var module1 = (function(){
        var _count = 0;
        var m1 = function(){
          //…
        };
        var m2 = function(){
          //…
        };
        return {
          m1 : m1,
          m2 : m2
        };
      })();
    (待完善)
  • AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)规范区别?
    AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD
    CMD 规范在这里:https://github.com/seajs/seajs/issues/242
    Asynchronous Module Definition,异步模块定义,所有的模块将被异步加载,模块加载不影响后面语句运行。所有依赖某些模块的语句均放置在回调函数中。

区别:

1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible.
2. CMD 推崇依赖就近,AMD 推崇依赖前置。看代码:

// CMD
define(function(require, exports, module) {
var a = require(‘./a’)
a.doSomething()
// 此处略去 100 行
var b = require(‘./b’) // 依赖可以就近书写
b.doSomething()
// …
})

// AMD 默认推荐
define([‘./a’, ‘./b’], function(a, b) { // 依赖必须一开始就写好
a.doSomething()
// 此处略去 100 行
b.doSomething()
// …
})

  • requireJS的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何 缓存的?)

  • 谈一谈你对ECMAScript6的了解?

  • ECMAScript6 怎么写class么,为什么会出现class这种东西?

  • 异步加载JS的方式有哪些?
    (1) defer,只支持IE

    (2) async:

    (3) 创建script,插入到DOM中,加载完毕后callBack

  • documen.write和 innerHTML的区别
    document.write只能重绘整个页面

innerHTML可以重绘页面的一部分

  • DOM操作——怎样添加、移除、移动、复制、创建和查找节点?
    (1)创建新节点
    createDocumentFragment() //创建一个DOM片段
    createElement() //创建一个具体的元素
    createTextNode() //创建一个文本节点
    (2)添加、移除、替换、插入
    appendChild()
    removeChild()
    replaceChild()
    insertBefore() //在已有的子节点前插入一个新的子节点
    (3)查找
    getElementsByTagName() //通过标签名称
    getElementsByName() //通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的)
    getElementById() //通过元素Id,唯一性

  • .call() 和 .apply() 的区别?
    例子中用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4);

    注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。

    function add(a,b)
    {
    alert(a+b);
    }

    function sub(a,b)
    {
    alert(a-b);
    }

    add.call(sub,3,1);

  • 数组和对象有哪些原生方法,列举一下?

  • JS 怎么实现一个类。怎么实例化这个类

  • JavaScript中的作用域与变量声明提升?

  • 如何编写高性能的Javascript?

  • 那些操作会造成内存泄漏?

  • JQuery的源码看过吗?能不能简单概况一下它的实现原理?

  • jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this?

  • jquery中如何将数组转化为json字符串,然后再转化回来?

  • jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?

  • jquery.extend 与 jquery.fn.extend的区别?

  • jQuery 的队列是如何实现的?队列可以用在哪些地方?

  • 谈一下Jquery中的bind(),live(),delegate(),on()的区别?

  • JQuery一个对象可以同时绑定多个事件,这是如何实现的?

  • 是否知道自定义事件。jQuery里的fire函数是什么意思,什么时候用?

  • jQuery 是通过哪个方法和 Sizzle 选择器结合的?(jQuery.fn.find()进入Sizzle)

  • 针对 jQuery性能的优化方法?

  • Jquery与jQuery UI 有啥区别?
    *jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。

*jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。
提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等

  • JQuery的源码看过吗?能不能简单说一下它的实现原理?

  • jquery 中如何将数组转化为json字符串,然后再转化回来?
    jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩展:
    $.fn.stringifyArray = function(array) {
    return JSON.stringify(array)
    }

    $.fn.parseArray = function(array) {
    return JSON.parse(array)
    }

    然后调用:
    $(“”).stringifyArray(array)

  • jQuery和Zepto的区别?各自的使用场景?

  • 针对 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++) {}

  • Zepto的点透问题如何解决?
  • jQueryUI如何自定义组件?
  • 需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术实现方案?
  • 如何判断当前脚本运行在浏览器还是node环境中?(阿里)
    通过判断Global对象是否为window,如果不为window,当前脚本没有运行在浏览器中
  • 移动端最小触控区域是多大?
  • jQuery 的 slideUp动画 ,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?
  • 把 Script 标签 放在页面的最底部的body封闭之前 和封闭之后有什么区别?浏览器会如何解析它们?
  • 移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?(click 有 300ms 延迟,为了实现safari的双击事件的设计,浏览器要知道你是不是要双击操作。)
  • 知道各种JS框架(Angular, Backbone, Ember, React, Meteor, Knockout…)么? 能讲出他们各自的优点和缺点么?
  • Underscore 对哪些 JS 原生对象进行了扩展以及提供了哪些好用的函数方法?
  • 解释JavaScript中的作用域与变量声明提升?
  • 那些操作会造成内存泄漏?
    内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
    垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。

setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)

  • JQuery一个对象可以同时绑定多个事件,这是如何实现的?

  • Node.js的适用场景?

  • (如果会用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?

  • 解释一下 Backbone 的 MVC 实现方式?

  • 什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?

  • 知道什么是webkit么? 知道怎么用浏览器的各种工具来调试和debug代码么?

  • 如何测试前端代码么? 知道BDD, TDD, Unit Test么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?

  • 前端templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?

  • 简述一下 Handlebars 的基本用法?

  • 简述一下 Handlerbars 的对模板的基本处理流程, 如何编译的?如何缓存的?

  • 用js实现千位分隔符?(来源:前端农民工,提示:正则+replace)
    function commafy(num) {
    num = num + ‘’;
    var reg = /(-?d+)(d{3})/;

    if(reg.test(num)){
    num = num.replace(reg, ‘$1,$2’);
    }
    return num;

}

  • 检测浏览器版本版本有哪些方式?
    功能检测、userAgent特征检测

比如:navigator.userAgent
//“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36”

  • What is a Polyfill?
    polyfill 是“在旧版浏览器上复制标准 API 的 JavaScript 补充”,可以动态地加载 JavaScript 代码或库,在不支持这些标准 API 的浏览器中模拟它们。
    例如,geolocation(地理位置)polyfill 可以在 navigator 对象上添加全局的 geolocation 对象,还能添加 getCurrentPosition 函数以及“坐标”回调对象,
    所有这些都是 W3C 地理位置 API 定义的对象和函数。因为 polyfill 模拟标准 API,所以能够以一种面向所有浏览器未来的方式针对这些 API 进行开发,
    一旦对这些 API 的支持变成绝对大多数,则可以方便地去掉 polyfill,无需做任何额外工作。

  • 做的项目中,有没有用过或自己实现一些 polyfill 方案(兼容性处理方案)?
    比如: html5shiv、Geolocation、Placeholder

  • 我们给一个dom同时绑定两个点击事件,一个用捕获,一个用冒泡。会执行几次事件,会先执行冒泡还是捕获?

  • Object.is() 与原来的比较操作符“ ===”、“ ==”的区别?
    两等号判等,会在比较时进行类型转换;
    三等号判等(判断严格),比较时不进行隐式类型转换,(类型不同则会返回false);

Object.is 在三等号判等的基础上特别处理了 NaN 、-0 和 +0 ,保证 -0 和 +0 不再相同,
但 Object.is(NaN, NaN) 会返回 true.

Object.is 应被认为有其特殊的用途,而不能用它认为它比其它的相等对比更宽松或严格。

  • react-router 路由系统的实现原理?

  • React中如何解决第三方类库的问题?

  • 原来公司工作流程是怎么样的,如何与其他人协作的?如何夸部门合作的?

  • 你遇到过比较难的技术问题是?你是如何解决的?

  • 设计模式 知道什么是singleton, factory, strategy, decrator么?

  • 常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?

  • 页面重构怎么操作?
    网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。
    也就是说是在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。

对于传统的网站来说重构通常是:

表格(table)布局改为DIV+CSS
使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)
对于移动平台的优化
针对于SEO进行优化
深层次的网站重构应该考虑的方面

减少代码间的耦合
让代码保持弹性
严格按规范编写代码
设计可扩展的API
代替旧有的框架、语言(如VB)
增强用户体验
通常来说对于速度的优化也包含在重构中

压缩JS、CSS、image等前端资源(通常是由服务器来解决)
程序的性能优化(如数据读写)
采用CDN来加速资源加载
对于JS DOM的优化
HTTP服务器的文件缓存

  • 列举IE与其他浏览器不一样的特性?
    1、事件不同之处:

    触发事件的元素被认为是目标(target)。而在 IE 中,目标包含在 event 对象的 srcElement 属性;

    获取字符代码、如果按键代表一个字符(shift、ctrl、alt除外),IE 的 keyCode 会返回字符代码(Unicode),DOM 中按键的代码和字符是分离的,要获取字符代码,需要使用 charCode 属性;

    阻止某个事件的默认行为,IE 中阻止某个事件的默认行为,必须将 returnValue 属性设置为 false,Mozilla 中,需要调用 preventDefault() 方法;

    停止事件冒泡,IE 中阻止事件进一步冒泡,需要设置 cancelBubble 为 true,Mozzilla 中,需要调用 stopPropagation();

  • 99%的网站都需要被重构是那本书上写的?
    网站重构:应用web标准进行设计(第2版)

  • 什么叫优雅降级和渐进增强?
    优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会针对旧版本的IE进行降级处理了,使之在旧式浏览器上以某种形式降级体验却不至于完全不能用。
    如:border-shadow

渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新版本浏览器才支持的功能,向页面增加不影响基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。
如:默认使用flash上传,但如果浏览器支持 HTML5 的文件上传功能,则使用HTML5实现更好的体验;

  • 是否了解公钥加密和私钥加密。
    一般情况下是指私钥用于对数据进行签名,公钥用于对签名进行验证;
    HTTP网站在浏览器端用公钥加密敏感数据,然后在服务器端再用私钥解密。
  • WEB应用从服务器主动推送Data到客户端有那些方式?
    html5提供的Websocket
    不可见的iframe
    WebSocket通过Flash
    XHR长时间连接
    XHR Multipart Streaming

  1. node-glob的常用用法说明: 匹配方式与正则类似:
    * * : 匹配0或多个除了‘/’以外的字符
    * ?: 匹配单个除了‘/’以外的字符
    * ** : 匹配多个字符包括‘/’
    * {} : 可以让多个规则用,逗号分隔,起到或者的作用
    * ! :出现在规则的开头,表示取反,即匹配不命中后面规则的文件。

  2. 注意的是: fis中的文件都是以/开头的,所以编写规则时,请尽量严格以/开头,
    当设置规则时,没有严格的以 / 开头,比如 a.js, 它匹配的是所有目录下面的 a.js, 包括:/a.js、/a/a.js、/a/b/a.js。 如果要严格只命中根目录下面的 /a.js, 请使用 fis.match(‘/a.js’)。
    另外 /foo/.js, 只会命中 /foo 目录下面的所有 js 文件,不包含子目录。 而 /foo/**/.js 是命中所有子目录以及其子目录下面的所有 js 文件,不包含当前目录下面的 js 文件。 如果需要命中 foo 目录下面以及所有其子目录下面的 js 文件,请使用 /foo/**.js

  3. 扩展规则:
    * 匹配某目录下的所有js文件,fis扩展了node-glob的规则: a/.js–表示匹配到a目录以及其子目录下的所有js文件。
    * 括号用法扩展: fis.match(‘a/
    .js’,{release: ‘’/b/$1}):让a目录下的所有js发布到b目录下,保留原始文件名。

  4. 捕获分组:
    使用 node-glob 捕获的分组,可以用于其他属性的设定,如 release, url, id 等。使用的方式与正则替换类似,我们可以用 $1, $2, $3 来代表相应的捕获分组。其中 $0 代表的是 match 到的整个字符串。
    fis.match(‘/a/(.js)’, {
    release: ‘/b/$1’ // $1 代表 (
    .js) 匹配的内容
    });
    fis.match(‘/a/(.js)’, {
    release: ‘/b/$0’ // $0 代表 /a/(
    .js) 匹配的内容
    });

  5. 特殊用法:

    1. ::package用来匹配fis的打包过程中;
    2. ::text匹配文本文件;
      默认识别这类后缀的文件。
      [
      ‘css’, ‘tpl’, ‘js’, ‘php’,
      ‘txt’, ‘json’, ‘xml’, ‘htm’,
      ‘text’, ‘xhtml’, ‘html’, ‘md’,
      ‘conf’, ‘po’, ‘config’, ‘tmpl’,
      ‘coffee’, ‘less’, ‘sass’, ‘jsp’,
      ‘scss’, ‘manifest’, ‘bak’, ‘asp’,
      ‘tmp’, ‘haml’, ‘jade’, ‘aspx’,
      ‘ashx’, ‘java’, ‘py’, ‘c’, ‘cpp’,
      ‘h’, ‘cshtml’, ‘asax’, ‘master’,
      ‘ascx’, ‘cs’, ‘ftl’, ‘vm’, ‘ejs’,
      ‘styl’, ‘jsx’, ‘handlebars’
      ]
      如果你希望命中的文件类型不在列表中,请通过 fis.set(‘project.fileType.text’) 扩展,多个后缀用 , 分割。
      fis.set(‘project.fileType.text’, ‘cpp,hhp’);
    3. :: image用来匹配文件类型为图片的文件。 默认识别的后缀为:
      默认识别这类后缀的文件。
      [
      ‘svg’, ‘tif’, ‘tiff’, ‘wbmp’,
      ‘png’, ‘bmp’, ‘fax’, ‘gif’,
      ‘ico’, ‘jfif’, ‘jpe’, ‘jpeg’,
      ‘jpg’, ‘woff’, ‘cur’, ‘webp’,
      ‘swf’, ‘ttf’, ‘eot’, ‘woff2’
      ]
      如果你希望命中的文件类型不在列表中,请通过 fis.set(‘project.fileType.image’) 扩展,多个后缀用 , 分割。
      fis.set(‘project.fileType.image’, ‘raw,bpg’);
    4. *.html:css 用来匹配命中的html文件中内嵌的css部分。fis3 htmllike的文件内嵌的js内容也会走单文件编译流程,默认制作标准化处理,如果想压缩,可以进行如下配置: fis.match(‘*html:js’,{optimizer:fis.plugin(‘uglify-js’)});
    5. *.html:inline-style用来匹配命中的html文件中的内联样式,可以配置些auto prefix之类的插件。
    6. *.html:scss用来命中html文件中的scss部分。
  6. 注意事项:node-glob扩展可能还存在问题,分组() 与{}搭配使用时存在缺陷:如:
    /a/({b,c}/.js) 会拆分成并列的两个规则 /a/(b/.js) 和 /a/(c/.js),当这两个合成一个正则的时候,这个时候问题来了, 一个分组变成了两个分组,分组 1 为 (b/.js) 分组 2 为 (c/.js)。那么当希望获取捕获信息时,不能按原来的分组序号去获取了。
    // 错误
    fis.match(‘/a/({b,c}/
    .js)’, {
    release: ‘/static/$1’
    });

// 正确
fis.match(‘/a/({b,c}/**.js)’, {
release: ‘/static/$1$2’
});

1. 简介:

含义一:node的开放式模块登记和管理系统
含义二:node默认的模块管理器,是一个命令行下的软件,用来安装和管理node模块。
不需要单独安装,安装node的时候会连带一起安装,但可能不是最新版本,可以使用npm install npm@latest -g更新到最新版本。

2. npm init

--初始化生成一个新的package.json文件。可以加参数 -y 或者 -f 表示跳过向用户提问阶段,直接生成一个新的package.json文件。

3. npm set xx – 设置环境变量

4. npm config xx — 设置安装目录以及安装的版本信息等

5. npm info xx – 查看每个模块具体信息

6. npm search 搜索词 – 搜索npm 仓库,后面的搜索词可以是字符串也可以是正则表达式

7. npm list – 以树形结构列出当前项目安装的所有模块,以及它们依赖的模块。参数为单个模块名称或者global(全局安装的)

8. npm install –

* install后可以是package name,也可以是github代码库地址;
* 全局安装 sudo npm install -g (或-global)<package name>;
* 全局--安装到系统目录中,各个项目都可以调用;本地安装--将一个模块下载到当前项目的node_modules子目录,只有在项目目录中才能调用;
* 安装总是会先去检查node_modules中是否已存在指定模块,如果存在,即使目前仓库里有最新版本,也不会再安装,可以加上参数 -- force强制重新安装
* 安装不同版本 在模块名后加上 @版本号(默认安装最新版本)
* 参数 --save-exact,会在package.json文件中指定安装模块的确切版本
* -save:模块名将被添加到dependencies,简化为-S
* -save-dev:模块名将被添加到devDependencies,可以简化为参数-D

9. 避免系统权限:默认安装在系统目录下(/usr/local/lib),普通用户没有权限,需要sudo命令,因此为了方便,可以在主目录下新建配置文件.npmrc,然后在文件中将prefix变量定义到主目录下: prefix = /home/yourusername/npm,然后在主目录下新建npm子目录:mkdir ~/npm。此后,全局安装的模块都会安装在这个子目录中,最后将这个路径在.bash_profile文件(或者.bashrc文件)中加入PATH变量: export PATH = ~/npm/bin:$PATH.

10. npm update,npm uninstall –更新和卸载

11. npm run– 执行脚本,在package.json的script字段,可以用于指定脚本对应命令,供npm直接调用。如下图中,可以直接使用npm run lint表示执行eslint,npm run test命令行则表示执行mocha test/ 。

*   npm如果不加参数直接运行,会列出package.json中所有可执行的脚本命令。
*   npm run 会创建一个shell,执行指定的命令,并临时将node_modules/.bin加入PATH变量,这意味着本地模块可以直接运行。
* 例如npm i eslint --save-dev会产生两个结果:首先eslint会被安装到当前目录的node_modules子目录,其次,node_modules/.bin目录会生成一个符号链接node_modules/.bin/eslint,指向eslint的可执行脚本,然后就可以在package.json的script属性里边,不带路径的引用eslint这个脚本。然后在执行npm run lint时就会自动执行./node_modules/.bin/eslint . 
* 还可以自己添加参数

12.

1
2
3
4
"scripts": {
"lint": "eslint .",
"test": "mocha test/"
}
  1. pre-和post脚本: npm run 为每一条命令都提供了两个pre-和post-两个钩子,也就是说例如npm run lint执行时,npm会先查看有没有定义pre-和post-,如果有则会先执行 npm run prelint 然后执行npm run lint ,最后是npm run postlint。
  2. 1
    2
    3
    4
    5
    6
    7
    {
    "dist:modules": "babel ./src --out-dir ./dist-modules",
    "gh-pages": "webpack",
    "gh-pages:deploy": "gh-pages -d gh-pages",
    "prepublish": "npm run dist:modules",
    "postpublish": "npm run gh-pages && npm run gh-pages:deploy"
    }

在上图中,当执行npm run publish时,会找prepublish,运行npm run dist : modules,也就是会去执行babel编译。

javascript

例子1

1
2
3
4
5
6
7
8
var scope=”global”,c=5;
function t(){
console.log(scope);
console.log(c);
var scope=”local”
console.log(scope);
}
t();

结果:
undefined
5
local

例子2

1
2
3
4
5
6
7
8
var kkk=”global”,c=5;
function t(){
console.log(kkk);
console.log(c);
var scope=”local”
console.log(scope);
}
t();

结果:
global
5
local

问题1:将例子1的scope改为例子2的kkk后,结果就不一样。作用域是一样的,scope不是关键字也不是保留字,为何会这样?

例子3:

1
2
3
4
5
6
7
var b = 44;
alert(delete b); //false
alert(b); //44

var name = “ddd”;
alert(delete name); //true
alert(name); //出错

问题2:例子3中将name,改成其他变量名,就会正常了。
上面3个例子均是在firefox46.0.1得到的结果

解答一
JS在解析一段代码的时候,会先使用var给声明某个变量,然后才执行代码。在例子一当中,你在函数t声明了scope变量,这时scope变量的作用域在函数范围内。所以你在第一次打印scope时值为undefined,直到赋值为”local”后,scope才有值。
MDN var描述
变量声明无论出现在代码的任何位置,都会在任何代码执行之前处理。使用var语句声明的变量的作用域是当前执行位置的上下文:一个函数的内部(声明在函数内)或者全局(声明在函数外)。
解答二
使用var声明的变量,默认的configurable属性是false,所以你是无法删除的,而name是window的一个属性,configurable是true。
MDN delete描述
delete 操作符用来删除一个对象的属性。
在严格模式中,如果属性是一个不可配置(non-configurable)属性,删除时会抛出异常,非严格模式下返回 false。其他情况都返回 true。

1
2
3
4
5
6
7
8
var scope=”global”,c=5;
function t(){
console.log(scope);
console.log(c);
var scope=”local”
console.log(scope);
}
t();

相当于

1
2
3
4
5
6
7
8
9
var scope=”global”,c=5;
function t(){
var scope;//前置,值默认undefined
console.log(scope);
console.log(c);
scope=”local”
console.log(scope);
}
t();

问题2类似,只是kkk访问的是父作用域的kkk,值当然是global

1
2
3
4
5
6
7
var b = 44;
alert(delete b); //false
alert(b); //44

var name = “ddd”;
alert(delete name); //true
alert(name); //出错

相当于

1
2
3
4
5
6
7
8
var b,name;//name将被忽略,因为window本身有name属性,而且configurable为true
b = 44;
alert(delete b); //false
alert(b); //44

name = “ddd”;
alert(delete name); //true
alert(name); //出错

在全局作用域下使用var声明变量,相当于给window对象加属性,并且加的属性的configurable为false,意思就是不能被删除。

关于周边游玩:

1.

北京周边都有哪些好玩的地方?不是只有十三陵和长城!即便是长城也不是只有八达岭长岭!你知道的是哪些呢?呵呵,让贴心的小北带你玩转北京吧,一起来看看北京周边都有哪些秀色可餐的美景。
延庆县

延庆县早在战国时期就设立了县,名“居庸”。元仁宗年间更名为龙庆州,明永乐年间设隆庆州,明穆宗朱载垕登基后改年号隆庆,由于避讳而改名为延庆州,民国年间改为延庆县。1948年5月19日,解放军解放了延庆县城。延庆县属察哈尔省,1952年改属河北省,1958年10月划归北京市。该县的主要旅游资源有龙庆峡、八达岭长城、康西草原等。
海淀区

‘海淀区因历史上此地有大片水域而得名。海淀区在春秋战国时期,隶属于燕。随着我国朝代的更迭和建制的变更,海淀地方的隶属也多次发生变化。作为一个地区的兴起,则是与北京城的发展息息相关。清代在这里修建了大规模的园林建筑,圆明园、颐和园一带成为皇家禁地。1860年英法联军火烧圆明园和1900年八国联军入侵北京,致使海淀区两次遭受劫掠。 1949年1月10日,十八区人民政府在海淀镇成立,1954年6月“海淀区”作为行政区划名称,正式在版图上出现。该县的主要旅游资源有凤凰岭、大觉寺、上庄水库等。
房山区

在金定都后,于大房(防)山建陵寝,后置“万宁县”,再后以奉祀先陵,改“奉先县”。元世祖年间以境内的大房山(也称房山)改奉先县为房山县。1986年,撤销房山县、燕山区,设立房山区,以燕山区和房山县的行政区域为房山区的行政区域。1997年11月17日,国务院批准将房山区人民政府驻地迁至良乡。该县的主要旅游资源有十渡、东湖港、孤山寨等。
昌平区

昌平区于西汉时在此设昌平县,名称来自汉代的昌平侯。周初属蓟国,后归燕国,西汉始置县,明景泰三年(1425年)迁县治于永安城(现昌平镇)。正德八年(1513年)升为昌平州(辖怀柔、密云、顺义三县)。1913年改州为县,先后属京兆区、河北省。1956年划入北京市,为北京市昌平区。1960年初,改为昌平县。1999年9月16日,经国务院批准,昌平撤县设区。该县的主要旅游资源有望宝川、莽山、十三陵等。
怀柔区

怀柔区有着悠久的历史,早在1300多年前的唐朝就已经有了”怀柔”这个名称,唐太宗贞观年间开始设立怀柔县。而怀柔名字出自《诗经•周颂•时迈》中的” 怀柔百神”,意思是招来安抚。公元1368年明朝设置的怀柔县与今天的怀柔区管辖范围基本相同。在古代汉语中,”怀”是来的意思,”柔”是安抚的意思。” 怀柔”这两个字放在一起,就是以德施政,民族团结,交融发展。2001年12月30日,国务院批准怀柔县撤县设区。该县的主要旅游资源有百泉山、青龙峡、红螺寺等。
密云县

2.

3.

4.

5.

6.

7.

8.
古时密云县城南15公里处有一高山,终年云雾缭绕,故名密云山(就是现在的河北丰宁县云雾山)。县名来自山名。明洪武元年省檀州入密云县。永乐元年改北平府为顺天府,密云县隶之。雍正六年改密云县直属顺天府北路厅。民国初废顺天府,改称京兆,密云县属京兆;1928年废京兆,改隶河北省;1958年9月28日归北京市所辖。该县的主要旅游资源有黑龙潭、清凉谷、桃源仙谷等。
平谷区

平谷区因其地形三面环山,中间是平原而得名。自汉高祖十二年便已建立平谷县,是北京区县中最古老的名称之一。平谷县自汉高祖十二年设县以来,历经2000余载,期间,县有撤并,境域多变,然县名一直延续至今。1958年3月,通县专区撤销,平谷县改属河北省唐山专署。同年10月,划入北京市。该县的主要旅游资源有石林峡、玻璃台、金海湖等。
标门头沟区

9.
门头沟区原名京西矿区,1958年设区时,因圈门至风口鞍这条沟叫门头沟,故因沟得名。门头沟区历史悠久,从1万年前的“东胡林人”起,门头沟区地处古冀州。周武王十一年设燕、蓟政区,区境属蓟,燕并蓟后,区境属燕。明洪武元年,元大都改称为北平府,后又改为顺天府,宛平县属之。嘉靖三十三年,沿河城地区归属宛平县,至此,区全境属宛平县。 1914年10月,顺天府改为京兆地方,宛平县随属。1948年12月14日门头沟全境解放。到1952年9月前,区境分为两部分:一部分届河北省宛平县辖界,一部分属北京市第16区(曾称门头沟区、第28区、第20区)辖界,包括今龙泉、永定、潭柘寺3镇范围。1952年9月河北省宛平县、北京市第16区并入京西矿区,今门头沟区全境属京西矿区辖界。1958年5月京西矿区调整区划后改称门头沟区。该县的主要旅游资源有灵山、妙峰山、潭柘寺等。