一:页面性能优化:
1,减少http请求,资源的合并与压缩,恰当的缓存,不滥用float,雪碧图代替图片,异步加载。减少dom节点,
二: 数组的深浅拷贝
1,假设B复制了A,当修改A时,看B是否会发生变化,
如果B也跟着变了,说明这是浅拷贝,。如果B没变,那就是深拷贝。
2,基本数据类型有哪些,number,string,boolean,null,undefined五类。
引用数据类型:对象,数组,函数。
3,如何深拷贝?
借用JSON对象的parse和stringify。
借用JQ的extend方法。
$.extend( [deep ], target, object1 [, objectN ] );
let a=[0,1,[2,3],4],

b=$.extend(true,[],a);

a[0]=1;
a2=1;
console.log(a,b);
4,使用场景?
但多人开发情况下,你是没办法明确这堆数据是否有其它功能也需要使用, 直接修改可能会造成隐性问题,深拷贝能帮你更安全安心的去操作数据,
根据实际情况来使用深拷贝,

三: 前后端分离的原理
1,原始人时代:
发布,需要用eclipse把代码打成一个war包,然后把这个war包发布到生产环境下的web容器里。这时候前后端代码都在这个war包里,html,js,css,各种第三方库等。这样服务器压力会很大,页面中的所有请求都要通过这个服务器,如果同时很多人访问这个网站速度就会很慢。一旦服务器出现状况,前后端一起玩完,用户体验级差。。
2, 前后端分离的优势
1,可以实现正真的前后端解耦,前端服务器放 css,js,图片等一系列资源,前端服务器负责控制页面引用,跳转,路由。前端页面异步调用后端的接口。加快整体响应速度。
3,减少后端服务器的开发/负载压力。除了接口外的http请求全部转到 前端nginx上。
前端大量的组件化代码 可以抽出来复用,组件化开发提升效率。
前端与后端是两个项目。放在两个不同的服务器,需要独立部署。

四:同步和异步的区别
1,javascript语言是一门“单线程”的语言,
其实同步和异步,
无论如何,做事情的时候都是只有一条流水线(单线程),
同步和异步的差别就在于这条流水线上各个流程的执行顺序不同。
最基础的异步是setTimeout和setInterval函数,

五:异步promise
1,自己身上有all、reject、resolve这几个眼熟的方法,原型上有then、catch等同样很眼熟的方法。
2,一: 优点和缺点
可以将异步操作以同步操作流程的方式表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易。
3,使用
新建new一个promise,传入resove和reject两个参数分别代表成功失败的方法。

六:常用的ES6
1,let和const 只在声明指令的块级作用域内有效。
let所声明的变量可以改变,const声明常量,不能改变
2,Object.assign()方法用于对象的合并
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
3,promise对象
4,import 导入模块
5,字符串拼接
Es6的这种新的“字符串拼接”方法比较简单,没有繁琐的加号和引号,只需要在所需要的字符串“边界”加上``即可。

var name = 'Datura';var age = 18;var sex = 'nü';var hobby = '敲代码';var str1 = `我是${name},今年${age}岁,性别${sex}的了,爱好${hobby}`; //注意此处有两个“ `` ”var str2 = '我是'+name+',今年'+age+'岁,性别'+sex+',爱好'+hobby+''; //这个是原来的写法alert(st1r);

6,map对象
let map = new Map();
map.set('a','apple');
map.set('b','banana');
console.log(map); // Map {"a" => "apple", "b" => "banana"}
7,for in循环, for of循环(不能循环json数据)
8,箭头函数

var show = function(){    alert(12);  };show();   // 12const show = () =>{    alert(12);  };show();  // 12 //个人理解:这里将function关键字去掉然后在“()”后面加一个“=>”

七:app里面的支付功能,分享功能
(可以查看微信开发文档)
1,商户APP调用微信提供的SDK调用微信支付模块,
商户APP会跳转到微信中完成支付,支付完后跳回到商户APP内,最后展示支付结果。
步骤:
1,用户在商户APP中选择商品,提交订单,选择微信支付。
2,商户后台收到用户支付单,调用微信支付统一下单接口。
(需要传的参数都有:appid, 随机字符串,不长于32位,签名sign,订单号,交易时间,订单金额,)
3,统一下单接口返回正常的prepay_id,生成签名
4,掉起微信支付,
5,返回支付结果。
分享功能: