1、array操作关键字

pop() 删除最后一个;push最后添加一个或者多个;reverse颠倒数组;shift删除第一个元素;unshift首部添加元素;concat衔接两个数组;join把数组按照指定字符变为字符;slice(1,1)截选数组元素;

2、js闭包的优缺点:

闭包是有权访问另一个函数私有变量的函数叫闭包;

优点:避免变量污染、加强了封装性,逻辑性比较强代码的可读性高;加载到内存中执行效率高;

缺点:在内存中,造成了内存浪费,如果滥用闭包是灾难性的;

3、模块化的意义:

Es6使用import、export导入和导出,可以封装代码,可读性高,逻辑分明,可以按需导入模块,避免资源的消耗和浪费;

4、前台优化方案:

初级:去掉代码中的打印信息和注释信息;压缩js和css;使用缓存页面静态文件缓存或者CDN;图片压缩;

中级:使用负载均衡nginx、docker;静动态文件分离;查询结果缓存使用redis;

5、WebPack和Grunt和Gulp对比

Webpack可以看做是模块打包器,把你的代码转换成合适的格式供浏览器使用;

常用webpack构建本地服务器,可以让浏览器监听你代码的修改,自动刷新现实后的结果;

Gulp/Grunt是一种能够优化前端开发的流程工具,而WebPack是一种模块化的解决方案;

WebPack有4个配置选项,打包速度越快,负面作用就越大,会不利于调试,文件的执行效率也有一定的影响;开发阶段使用:eval-source-map:使用eval打包源文件模块,在同一个文件中生成干净的完整的source map。这个选项可以在不影响构建速度的前提下生成完整的sourcemap,但是对打包后输出的JS文件的执行具有性能和安全的隐患。在开发阶段这是一个非常好的选项,在生产阶段则一定不要启用这个选项;

babel是一个编译js的平台,把es6/es7转换成浏览器支持的es5提供浏览器使用;

6、js数据类型

String,Number,Boolean,Null,Undefined;Object,Array,Function(引用类型)

7、es6新特性

箭头操作符;对class的支持(constructor构造函数);不定参数...x;let和const关键字;for of遍历;模块的支持import;promise异步函数的处理模式(pending等待中;resolve返回成功,reject返回失败);

8、es7(es2016)新特性

可以使用async/await

9、Zepto.js介绍

Zepto是一个针对移动端浏览器的轻量级的js库,和jquery比较类似;

10、redux介绍

Redux最重要的用途是应用状态管理,订阅、监听消息用的,数据改变时通知相应的ui修改的;

11、html5的canvas

canvas.getContext(“2d”)设置描绘类型2d,webgl表示3维;lineWidth线宽、strokeStyle线颜色,moveTo(x,y)移动画笔、lineTo划线到坐标;stroke执行划线;strokeRect绘制矩形,fillRect填充矩形,clearRect清除指定区域;圆弧使用Math.PI;drawImage绘制图像;绘制文字:fillText,strokeText描边文字;

画板代码:

canvas1.onmousemove=function(e){

//划线到当前客户端的x与y座标

ctx.lineTo(e.clientX, e.clientY);

//执行画线

ctx.stroke();

}

12、WebGL介绍

WebGL是一种3D绘图标准,运行js和opengl结合在一起,省去了网页渲染的使用使用插件的麻烦。

因为原生的webgo很复杂所以我们会常用一些三方的库,比如three.js和Egret(白鹭引擎),使用三库做H5游戏的比较多,实质都大同小异:场景、相机、渲染器,创建场景,组件相机,创建物体渲染到页面;

13、深拷贝和浅拷贝

深度拷贝指的是Array和Object这样的类型,浅拷贝是只拷贝一层值,而深拷贝是遍历所有的拷贝。

14、两个等号和三个等号的区别

两个等是转换类型对比值的,而三个等是不会进行转换的,也就是类型不同,一定不会相等的;

js常用面试题整理的更多相关文章

  1. JS常用面试题

    一.闭包:   1.函数嵌套函数.内部函数可以引用外部函数的参数和变量. 参数和变量不会被垃圾回收机制所收回   function aaa(a){ var b = 5; function bbb(){ ...

  2. JS进阶面试题整理(仅仅整理我做错的题)

    前几天看到掘金博客一篇文章,找到了这个JavaScript进阶问题列表:现在把地址贴出来,想找工作或者想要巩固自己JS的同学可以参考 该文档会不定时更新    一.箭头函数 箭头函数相当于匿名函数,并 ...

  3. vue.js面试题整理

    Vue.js面试题整理 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务 ...

  4. 【前端芝士树】Vue.js面试题整理 / 知识点梳理

    [前端芝士树] Vue.js 面试题整理 MVVM是什么? MVVM 是 Model-View-ViewModel 的缩写. Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑. ...

  5. 【web前端面试题整理06】成都第一弹,邂逅聚美优品

    前言 上周四回了成都,休息了一下下,工作问题还是需要解决的,于是今天去面试了一下,现在面试回来了,我感觉还是可以整理一下心得. 这个面试题整理系列是为了以后前端方面的兄弟面试时候可以得到一点点帮助,因 ...

  6. Web前端开发工程师常用技术网站整理

    1.常用工具相关 有道云笔记 http://note.youdao.com/signIn/index.html 36镇-最好用的共享收藏夹 http://www.36zhen.com/ 浏览器同步测试 ...

  7. 北京Java笔试题整理

    北京Java笔试题整理 1.什么是java虚拟机?为什么ava被称作是"平台无关的编程语言? 答:Java虚拟机可以理解为一个特殊的"操作系统",只是它连接的不是硬件,而 ...

  8. Java笔试面试题整理第三波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51247785 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  9. Java笔试面试题整理第一波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

随机推荐

  1. 图片利用 new Image()预加载原理 和懒加载的实现原理

    二:预加载和懒加载的区别 预加载与懒加载,我们经常经常用到,这些技术不仅仅限于图片加载,我们今天讨论的是图片加载: 图片预加载:顾名思义,图片预加载就是在网页全部加载之前,提前加载图片.当用户需要查看 ...

  2. Fabric的权限管理:Attribute-Based Access Control

    之前稍微了解过Client Identity Chaincode Library,这几天正好开始实际应用. 虽然了解过,还是发现了不少之前理解的不足,也踩了不少坑. 先列出官方介绍: https:// ...

  3. 20. pt-show-grants

    pt-show-grants -h 192.168.100.101 -P 3306 -u admin -p admin 也可以delete,revoke,flush privileges , 用的不多 ...

  4. Linux 使用 mail 发送邮件

    ubuntu 需要安装 mailutils sudo apt-get install mailutils

  5. @RemoteProxy()注释 与@File注释的使用

    @RemoteProxy()注释 dwr3.0可以通过全注解的方式,极大的简化了配置,所有xml配置加在一起不超过20行,而且使用更加简单,bean注入的问题也都解决.配置步骤如下: web.xml的 ...

  6. jdbc随笔

    通过jdbc连接数据库的基本步骤:  导入jar包驱动类  jdbc语法:jdbc:子协议:厂商内容  对于mysql而言:jdbc:mysql://主机地址:端口号/库名               ...

  7. .Net 常用插件及第三方库

    .Net 常用插件及第三方库 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址: ...

  8. 数据库-mysql语句-查

    复习: 列类型: 数值类型:   20   '20' tinyint / smallint / int / bigint float / double / decimal(m,d) bool (TRU ...

  9. Forward团队-爬虫豆瓣top250项目-模块测试

    项目托管平台地址:https://github.com/xyhcq/top250 模块测试:爬虫对信息的处理部分 测试方法: 实际运行一下代码: 可以看见,信息都已经爬取出来了 其他补充说明: 原本系 ...

  10. 设计一个BCD码计数器。

    BCD码计数器的定义: 对于机器语言,机器与人不同,为了让人更好的了解机器语言的数据输出,选用4位二进制数据表示十进制里的每位数据,这便是BCD码. 以下便是BCD码与十进制对应的码表 0------ ...