常用机器性能评估工具澳门美高梅手机网站

 

校招的那段时日攻读到了广大

杨海春,曾在从兴技术有限集团担任重(英文名:)要设计开发岗,熟习移动计费系统整种类统架构。如今上任于腾讯处理器种类有限公司,担任工程师职位,熟习日志计费系统,离线总计等现象。

末段大致是签约日本首都美团点评

软件系统跑在机械上,处理能力受硬件制约,所以,单机处理能力会有上限。评估机器处理能力的上限,检查程序的瓶颈在哪,有助于程序性能分析。

用Word统计了很多题材。发表在此地

重在的几大硬件:CPU、内存网络磁盘。本文首要构成自身经验介绍这几大硬件的习性评估工具。


1.CPU性能评估

 

1.1 vmstat 工具

 

运用举例:

vmstat 1 10

第二个参数:采样频率

其次个参数:采样次数

澳门美高梅手机网站 1

结果参数:

–procs–

r:运行和等候CPU时间片的进度数

b:等待资源的历程数。如等待网络I/O

设若r值长时间过量CPU的个数, 则CPU蒙受瓶颈

–cpu–

us:用户进程消耗CPU时间百分比

sy :内核进程消耗的CPU时间百分比

如上图,跑了多少个耗cpu的顺序,发现us长期接近100,cpu已经跑满了。这几个时候,可能须要考虑优化应用服务算法了。

诚如:假如us长日子大于50,必要考虑优化程序算法等。

sy + us > 80 可能存在CPU瓶颈了

7-13:

1.2 Sar工具

举例:sar -u 1 5

澳门美高梅手机网站 2

%idle值高,表示CPU较空闲。

设若idle值持续低于10,表示系统中目前的瓶颈在CPU。

如上图,CPU已经高达瓶颈了。

1:flex项目嵌套flex项目怎么算?

2. 内存性能评估

你明白Flex项目也能够成为Flex容器吗?是的,是可能的!

2.1 free 工具

举例:free –g or free –m

-g:以GB为单位查看

-m:以MB为单位查看

澳门美高梅手机网站 3

关心第二行:

-buffers/cache=Mem行:used-buffers-cached

+buffers/cache=Mem行:free+buffers+cached

相似第二行 +buffers/cache 表示应用程序可采纳的内存。

cached里的情节,一般可以释放给应用程序使用。

放活cached里的内存,看是还是不是可用:

echo 3 > /proc/sys/vm/drop_caches

再查看内存:

澳门美高梅手机网站 4

发现末完全释放,只释放了一片段。(与地点的图相比较)

自我批评:发现有些共享内存占用,不可以自由,应用程序也就无法拔取这一部分了。

删去近年来从未有过应用的共享内存:

ipcs -m | awk '$6 == 0 {system("ipcrm -m "$2)}'

再执行

echo 3 > /proc/sys/vm/drop_caches

再执行

free –m

澳门美高梅手机网站 5

cached里的内存又释放了有的。

结余的,部分的共享内存,应用程序正常使用,不能自由。

从而,真正可用的内存,应该是 2400M左右。

还能利用cat /proc/meminfo查看

澳门美高梅手机网站 6

你想嵌套多深就嵌套多少深度(不过理智的做法是维系一个客观的档次)。

3. 磁盘性能评估

2:总结flexbox

3.1 iostat工具

举例:

 iostat -d -x -k 1 10

-d 表示,突显设备(磁盘)使用状态

-x将用于显示和io相关的恢弘数据

-k某些使用block为单位的列强制行使Kilobytes为单位

澳门美高梅手机网站 7

await I/O恳请的平均等待时间,单位飞秒;值越小,性能越好;

svctm I/O请求的平分服务时间,单位飞秒

%util 计算时间内有百分几的小运用来I/O操作。接近100,表示磁盘已经接近满负荷运转了。

如上图,即使await时间远高于svctm,表示等待I/O队列的时候太大,磁盘已经已毕瓶颈了。

3:规划布局

3.2 Sar工具

举例:

sar –d 1 10

澳门美高梅手机网站 8

avwait:队列占满时传送请求等待队列空闲的平分时间。

avserv:完毕传送请求所需平均时间(皮秒)。

%util: 100磁盘已经无暇了。

看写入速度,100多M每秒。要增进写入速度,可以换更快的盘。

4:CSS选择器

4. 网卡性能监控

5:现代各个布局

4.1 ss工具

举例:

ss -a -tp -s|grep agent

澳门美高梅手机网站 9

ss –s

查阅现有连接数等:

澳门美高梅手机网站 10

常用选项:

-a 显示所有的sockets

-l 呈现正在监听的

-n 呈现数字IP和端口,不经过域名服务器

-p 突显采取socket的相应的次第

-s 打印出计算音信。

6:Hexo

5. 全部性能评估工具

7:react+redux书

5.1 Top工具

举例:

 top

澳门美高梅手机网站 11

%us:指的是cpu用在用户态程序上的光阴;

%sy:指的是cpu用在内核态程序上的年华;

%ni:指的是用在nice优先级调整过的用户态程序上的岁月;

%id:指的是cpu空闲时间;

load average:

职分队列的平均长度

1分钟、5分钟、15分钟前到后天平均值

多少个值长日子超越CPU核数的话,表示机器很忙绿。上图开了8个耗CPU程序,可以窥见,1秒钟均值已经通过CPU个数(机器CPU个数为8核)

 


 

相关推荐

【腾讯TMQ】基于模型的自动化测试工具——Graph沃·克(Wal·ker)
【腾讯云的1001种玩法】利用腾讯云搭建实用小工具
【腾讯云的1001种玩法】激发云力量–打造自己的云端工具集

 


 

此文已由小编授权腾讯云技术社区发表,转发请申明小说出处,获取更卷层云总结技术干货,可请前往腾讯云技术社区
欢迎我们关怀腾讯云技术社区-今日头条官方主页,大家将不止在新浪为我们推荐技术精品著作哦~

 

 

7-17:

1:e.target.parentNode.remove();成功,查询一下JS原生的remove方法

2:复习JS DOM的原生操作方法,比如innerHTML(),insertBefore()等

3:技术之瞳

4:jquery的each,map等方法

5:数组和目标的深浅拷贝

http://blog.csdn.net/fungleo/article/details/54931379

 

7-18

1:MD5那种JS文件不能间接在index.js里面载入,须要用webpack参预的原由和怎么进入?

2:webpack2.2华语文档 http://www.css88.com/doc/webpack2/

4:screenX,pageX,client,offset…

http://www.cnblogs.com/yehuabin/archive/2013/03/07/2946004.html

7:js怎么编写鼠标的右击事件

https://zhidao.baidu.com/question/1111401816718591899.html

 

7.24

1.checked事变的变化<input type=”checkbox”
checked={this.state.checked} onChange={this.checkedChangeHandler}
/>记住账号1</span>

2:backbone路由的包装怎么办的

3:基于 CentOS 搭建微信小程序服务

 

7.25

1.JS原生的onclick事件写法

2:左右添加

3接口不重复问题

 

7.26

作者:DaphneMoMo
链接:https://www.nowcoder.com/discuss/18530?type=2&order=3&pos=55&page=1

一面

1、 
window.onload和$(document).ready()的分别,浏览器加载转圈为止时哪个时间点?

  $(document).ready()方法和window.onload方法有相似的功用,可是在推行时机方面是有分其他。window.onload方法是子哟网页中的所有因素(包罗元素的有着涉及的文书)完全加载到浏览器后才实施,即javascript此可以访问网页中的任何因素。而由此jquery中的$(document).ready()方法注册的光阴处理程序,在DOM完全就绪时就足以被调用。此时,网页的保有因素对jquery而言都是可以访问的,不过,那并不意味着那个因素关联的公文都早就下载完成。

  举一个例证,有一个大型的图库网站,为网页中的所有图片添加某些行为,例如单机图片后让他隐藏或出示。假若利用window.onload方法来处理,那么用户必须等到每一副图片都加载落成后,才可以举行操作。假使选拔jquery中的$(document).ready()方法来开展安装,只要DOM就绪就可以操作了,不需求等待所有图片加载已毕。显明,吧网页解析为DOM树的进度比呢网页中的所有涉及文件加载完成的素的快很多。

  其余,要求专注一点,由于在$(document).ready()方法内注册的事件,只要DOM就绪就会被执行,因此可能此时因素的关系文件未下载完。例如与图片有关的HTML下载落成,并且已经即诶下为DOM树了,但很有可能图片还未加载已毕,所有例如图片的惊人和幅度那样的特性此时比肯定有效。要解决那些题材,可以使用Jquery中另一个关于页面加载的法子—–load()方法。load()方法会在要素的onload事件中绑定一个处理函数。若是处理函数绑定给window对象,则会在富有情节(蕴涵窗口。框架,对象和图像等)加载达成后触发,如若处理函数绑定在要素上,则会在要素的被容加载完结后加载。jquery代码如下:

1

2

3

4

$(window).load(function(){

//代码

 

});

  等价于javascript中的以下代码:

1

2

3

4

window.onload=function(){

     

//代码

}

 

2、  form表单当前页面无刷新提交  <form target=””>  iframe

http://www.cnblogs.com/yevon/p/about\_target\_attribute\_of\_form.html

3、  set提姆eout和setInterval不一致,如何相互落成?

http://blog.csdn.net/baidu_24024601/article/details/51862488

参考资料:javascript高级程序设计第三版:重复定时器

4、 
如何防止多重返调—promise,promise简单描述一下,怎么着在外表进行resolve()

合法文档

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise

         通俗解释

http://www.cnblogs.com/lvdabao/p/es6-promise-1.html

         感性精晓

http://www.zhangxinxu.com/wordpress/2014/02/es6-javascript-promise-%E6%84%9F%E6%80%A7%E8%AE%A4%E7%9F%A5/

咱俩回到总计一下,异步回调的价值观做法有三个问题:

  1. 嵌套层次很深,难以保证

  2. 代码难以复用

  3. 库房被弄坏,无法正常检索,也无从正常使用 try/catch/throw

  4. 七个异步总计同时开展,不能预想已毕顺序,必须依靠外层效用域的变量,有

误操作风险

Promise保留异步在无阻塞上的优势,又能让大家写代码写的更舒服

5、  margin坍塌?水平方向会不会倒下

http://www.cnblogs.com/hugejinfan/p/5901320.html水平方向不会冒出margin坍塌 

6、  伪类和伪元素不一致

http://www.cnblogs.com/ihardcoder/p/5294927.html

简不难单的话,伪元素创造了一个虚构容器,那一个容器不带有其余DOM元素,不过可以分包内容。其余,开发者还能为伪元素定制样式。

8、数组去重

http://blog.csdn.net/chengxuyuan20100425/article/details/8497277

 我总共想出了三种算法来促成那一个目标:

1.  Array.prototype.unique1 = function()

2.  {

3.    var n = []; //一个新的临时数组

4.    for(var i = 0; i < this.length; i++) //遍历当前数组

5.    {

6.           //如果当前数组的第i已经保存进了临时数组,那么跳过,

7.           //否则把当前项push到临时数组里面

8.           if (n.indexOf(this[i]) == -1) n.push(this[i]);

9.    }

10.  return n;

11.}

12.Array.prototype.unique2 = function()

13.{

14.  var n = {},r=[]; //n为hash表,r为临时数组

15.  for(var i = 0; i < this.length; i++) //遍历当前数组

16.  {

17.         if (!n[this[i]]) //如果hash表中没有当前项

18.         {

19.                 n[this[i]] = true; //存入hash表

20.                 r.push(this[i]); //把当前数组的当前项push到临时数组里面

21.         }

22.  }

23.  return r;

24.}

25.Array.prototype.unique3 = function()

26.{

27.  var n = [this[0]]; //结果数组

28.  for(var i = 1; i < this.length; i++) //从第二项开始遍历

29.  {

30.         //如果当前数组的第i项在当前数组中第一次出现的位置不是i,

31.         //那么表示第i项是重复的,忽略掉。否则存入结果数组

32.         if (this.indexOf(this[i]) == i) n.push(this[i]);

33.  }

34.  return n;

35.}

9、使用flex布局完毕三等分,左右多少个要素分别贴到左侧和右手,垂直居中

flex{1} flex{1} flex{1}

10、经常怎么着学前端的,看了什么样书,关怀了如何群众号

二面

1、  说下对this的理解

http://www.jb51.net/article/77519.htm

2、  实现bind函数

http://blog.csdn.net/u010552788/article/details/50850453手写bind()函数,了然MDN上的正统Polyfill,bind和new,柯里化)

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
(bind mdn)

http://www.cnblogs.com/libin-1/p/6069031.html(理解JS中的apply,call和bind方法)

http://www.cnblogs.com/admos/p/4453259.html  (bind函数使用apply的落到实处)

3、数组和链表不同,分别适合哪些数据结构

数组的特性是急速随机访问
链表的风味是快速插入删除

4、对mvc的理解

5、描述一个印象最深的连串,在其中充当的角色,解决哪些问题

6、http状态码。。。401和403区别?

400(错误请求)

服务器不理解请求的语法。

401(未授权)

请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。

403(禁止)

服务器拒绝请求。

1xx(临时响应)2xx(成功)3xx(重定向)4xx(请求错误)5xx(服务器错误)

7、  描述下二分查找

http://www.cnblogs.com/zuojiayi/p/6229902.html

8、  在函数中应用array.prototype.slice.call(arguments,1);的成效?

arguments是每个函数在运作的时候自动得到的一个像样数组的对象(传入函数的参数从0开首按数字排列,而且有length)。比如当你
func(‘a’, ‘b’, ‘c’) 的时候,func里面获得的arguments[0] 是
‘a’,arguments[1] 是
‘b’,依次类推。但问题在于那些arguments对象实际并不是Array,所以并未slice方法。Array.prototype.slice.call(
)可以直接对其完毕slice的效能,而且回去的结果是确实的Array。

http://www.cnblogs.com/dingxiaoyue/p/4948166.html

https://www.zhihu.com/question/21351604

三面

1、为啥选用前者,怎么样学习的,看了怎么书,《js高级程序设计》和《你不亮堂的js》有怎么着界别,看书,看博客,看群众号三者的日子是如何分配的

2、怎么着评价bat

3、描述下在实习中做过的一个档次,解决了什么问题,在里头担任了怎么着角色?那么些进度存在如何问题,有怎样值得创新的地方

4、怎么样对待加班,即便有个门类须要延续一个月加班,你怎么看

5、境遇的下压力最大的一件事是何等?怎么着化解的

6、平常有怎么着爱好

7、自身有待立异的地点

8、n长的数组放入n-1个数,不可以重新,找出非凡缺失的数

思路:数组之和减去自然数之和,结果就是相当重复的。

等差数列求和公式

 

 

9、手里有怎么着offer

10、你对于第一份工作最讲究的多少个地点是如何

11、怎样评价现在的前端

12、有何问题

一早上面了濒临三个时辰完毕了三面,当天晚上就接受了三面面试官的电话说面试通过了,炒鸡手舞足蹈,校招这么久以来接受的首先个offer~后来又精晓到是凤巢部门,于是就决定去那里了

 

 

7-28

1:JS异步开发教程

https://meathill.gitbooks.io/javascript-async-tutorial/content/

 

7-31

1:自己的出品

2:JavaScript创制对象的三种艺术

http://blog.csdn.net/u010552788/article/details/50849191

3:书总计一下 技术之瞳/react/JS高级/你不知晓的JS

4:

 

1、手写jsonp的实现

2、手写链表尾数第K个查找

 

搜索单链表尾数第m个结点,须求时间复杂度为O(n).(提醒,使用双指针)


解题思路: 
好端端思路为先得到链表的长度N,然后回到N-k+1地方处的结点即可。可是中必要遍历四次链表。 
俺们利用另一种算法,设定四个指针p1,p2.将那四个指针都向第二个结点,让p1先走k步,然后三个指针一起向后运动,当p1到达最后一个结点时,p2指针刚好指向链表的倒数第k个结点。

 

3、  http请求行,请求头,请求体,cookie在哪个里面?url在哪个地方面?

http://blog.csdn.net/u010256388/article/details/68491509

cookie在伸手头,url如同在请求行?

4、  原型链的演说

原型链是作为贯彻持续的第一措施,基本思想是选择原型让一个引用类型继承另一个引用类型的习性和措施。

5、 
对闭包的明白,完结一个爆出内部变量,而且外部可以访问修改的函数(get和set,闭包达成)

http://blog.csdn.net/baple/article/details/42495361

温馨写得set的例子

var f1 = function (x) {

         var a = 1;

         function f2 (b){

                   a =  a+b ;

                   return a

         }

         return f2

 }

 

var x = f1();

var xx = x(2);

闭包就是可以读取其余函数内部变量的函数

7、{}=={}?   []==[]? null==undefined?

{} == {} false

[] == [] false

null == undefined true

null == null true

undefined == undefined true

解答

[] == [] 那些好了然. 当多少个值都是目的 (引用值) 时,
相比较的是八个引用值在内存中是还是不是是同一个对象. 因为此 [] 非彼 [],
纵然同为空数组, 确是八个互不相干的空数组, 自然 == 为 false.

 

null 代表一个值被定义了,定义为“空值”;
undefined 代表平素不设有定义。

因此设置一个值为 null 是言之成理的,如
objA.valueA = null;
但设置一个值为 undefined 是不客观的

 

6、  基本的数据类型

ECMAScript中有5中不难数据类型(也叫做基本数据类型): UndefinedNullBooleanNumberString。还有1中复杂的数据类型————ObjectObject精神上是由一组无序的名值对构成的。Array,Date,Function+基本包装类Number,String,Boolean均归于Object

 

7、  基本的两列自适应布局

发现有了position的特性,不再与常规文档流中的元素相互影响

.sub, .extra {

    position: absolute;

    top: 0;

    width: 200px;

}

.sub {

    left: 0;

    background-color: yellow;

}

.extra {

    right: 0;

    background-color: black;

}

.main {

background-color: blue;

    margin: 0 200px;

}

<div class=”sub”>left</div>

<div class=”main”>main</div>

<div class=”extra”>right</div>

 

11、OSI模型,HTTP,TCP,UDP分别在什么样层

OSI 分层( 7 层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

物理层与数量链路层为地方的协议族提供劳动大家一般很少接触。IP在网络层,TCP/UDP在传输层,应用层一般是我们平日接触的事物HTTP在采取层ARP(地址解析协议)在链路层

12、网站性能优化

CDN是何许?使用CDN有啥样优势?

https://www.zhihu.com/question/36514327

13、快排的光阴复杂度和空间复杂度。

var quicksort = function(arr){

         if(arr.length<=1){

                   return arr

         }

         var num = Math.floor(arr.length/2);

         var item = arr.splice(num,1);  

         var arrleft=[];

         var arrright=[];

         for (var i = 0; i < arr.length; i++) {

                   if(arr[i]<item[0]){

                            arrleft.push(arr[i]);

                   }

                   else{

                            arrright.push(arr[i]);

                   }

         }

         return
quicksort(arrleft).concat(item[0],quicksort(arrright));

}

 

console.log(quicksort([1,2,3,5,4]));

小心一下i < arr.length不可能是<=,否则有一个undefined就会无限循环

一面问的基础知识很多,不过基本都答出来了,面完后有些蒙逼。

二面是一位女面试官,给的压力很大,人可比体面,不苟言笑,后来听说二面是压力面,二面问了50分钟。

2、在jquery方法和原型下边添加方法的区分和贯彻($.extend,$.fn.extend),以及jquery对象的兑现(return
new jQuery.fn.init)

http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html

为jQuery类添加类方法,可以知晓为增加静态方法

对jQuery.prototype进得增加,就是为jQuery类添加“成员函数”。jQuery类的实例可以采纳那一个“成员函数”。

 

jQuery 2.0.3 源码分析core –
全体架构

http://www.cnblogs.com/aaronjs/p/3278578.html

3、手写一个递归函数(考察arguments.callee,以及arguments的表明)

// arguments.callee 是一个针对性正在执行函数的指针

function factorial(num)

{ if (num <= 1) { return 1; }

else { return num * arguments.callee(num – 1); } }

caller

在一个函数调用另一个函数时,被调用函数会自动生成一个caller属性,指向调用它的函数对象。借使该函数当前未被调用,或不用被其他函数调用,则caller为null。

 callee

当函数被调用时,它的arguments.callee对象就会针对自身,也就是一个对友好的引用。
是因为arguments在函数被调用时才使得,因而arguments.callee在函数未调用时是不设有的(即null.callee),且解引用它会爆发相当。

 

4、对前者路由的敞亮?前后端路由的差别?

1,什么是前端路由?
路由是根据差其余 url 地址显示分歧的始末或页面
前端路由就是把不相同路由对应差其余始末或页面的职分交给前端来做,此前是由此服务端根据url 的例外再次来到分歧的页面达成的。
2,几时使用前端路由?
在单页面应用,大多数页面结构不变,只变动一些情节的利用

3,后端路由:

每跳转到不一样的URL,都是再次访问服务端,然后服务端重临页面,页面也得以是服务端获取数据,然后和模板组合,再次回到HTML,也足以是一向回到模板HTML,然后由前端js再去伏乞数据,使用前端模板和数目开展组合,生成想要的HTML。

4.5、什么样记住OSI七层协议模型

http://blog.csdn.net/hellochenlu/article/details/52895341

Physical Data Link Network Transport Session Presentation
Application

5、介绍一下webpack和gulp,以及项目中切实的利用

http://www.cnblogs.com/lovesong/p/6413546.html

6、你对es6的了解

http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten-properties/comment-page-1/#comments

  1. Default Parameters(默认参数) in ES6
  2. Template Literals (模板文本)in ES6
  3. Multi-line Strings (多行字符串)in ES6
  4. Destructuring Assignment (解构赋值)in ES6
  5. Enhanced Object Literals (增强的靶子文本)in ES6
  6. Arrow Functions (箭头函数)in ES6
  7. Promises in ES6
  8. Block-Scoped Constructs Let and Const(块成效域构造Let and Const)
  9. Classes(类) in ES6
  10. Modules(模块) in ES6

7、解释一下vue和react,以及异同点

https://www.zhihu.com/question/31585377

读书一下vue

8、  前后端分离的含义以及对前者工程化的通晓

https://www.zhihu.com/question/28207685 –前后端分离

https://www.zhihu.com/question/24558375 –前端工程化主要应该从

模块化:webpack解惑:require的五种用法

组件化:组件化实际上是一种根据模板(HTML)+样式(CSS)+逻辑(JS)三位一体的款型对面向对象的尤为抽象

规范化:规范化其实是工程化中很重大的一个局地,项目中期规范制定的好坏会直接影响到中期的付出质地。

自我能想到的有以下一些情节:

目录结构的制定

编码规范

上下端接口规范

文档规范

组件管理

Git分支管理

Commit描述规范

定期CodeReview

视觉图标规范

自动化:我以为,前端工程化的很多脏活累活都应该提交自动化工具来成功。

### 图标合并

毫不再用PS拼7-Up图了,统一走Webpack吧;

绝不再用Icomoon了,统一走Webpack吧。

### 持续集成

### 自动化构建

### 自动化布署

### 自动化测试

10、使用css已毕一个三角

#triangle-up {
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 100px solid red;
}

增幅一定要为0,left,right是三角形的着力往左往右长度;bottom是三角形的高;

10.5CSS3D效果?

13、解释一下call函数和apply函数的意义,以及用法

1、介绍一下友好

2、你说自己抗压能力强,具体表现在哪个地方?

3、对前者前景的展望,以后前端会怎么进步

4、手写首回面试没有写出来的链表问题,须求用es6写

5、平常是怎么学技术的?

6、平日高校内部时间是怎么统筹的?

7、接下去有怎么着安排?那么些学期和下个学期的陈设是?

8、项目中相见的难题,或者你学习路上的难题

9、你是通过怎么样办法和路径来读书前端的

12、你在集团中更倾向于怎么着角色?

13、对java的理解

14、介绍node.js,并且介绍你用它做的类型

 

百度外卖

 

1、介绍自己

2、手写一个js的深克隆

3、for函数里面set提姆(Tim)eout异步问题

有关for循环里面异步操作的问题

for 循环中的set提姆eout(function(){})异步问题,为何改var 为let就足以缓解?

 深深精通JavaScript编程中的同步与异步机制

4、归并排序

 

1、已毕八个数组的排序合并,我一早先先统一再排序,他不乐意,然后我用了近乎插入排序的点子。

2、手写一个原生ajax

https://segmentfault.com/a/1190000008097712

xmlhttp=newXMLHttpRequest();

xmlhttp.onreadystatechange=state_Change

xmlhttp.open(“GET”,“/example/xdom/note.xml”,true);

xmlhttp.send(null);

function state_Change()

{

if(xmlhttp.readyState==4)

{

`**if** (xmlhttp.status==200)`

{

// 那里应该是函数具体的逻辑“

}

else

{

alert(“Problem retrieving XML data”);

}

}

}

6、手写完结jquery里面的insertAfter

结合nextSibling和insertBefore来实现

9、  AMD和CMD,commonJS的区别

AMD尊敬前置;CMD就近信赖(就义性能来换取愈来愈多付出便民);

NodeJS是CommonJS规范的兑现;CommonJS的那一个Modules规范设计之初是为着server端设计的,它是一个合办的形式。可是那种情势并不吻合于浏览器端,我们着想一下如若浏览器联合情势一个一个加载模块,那么打开将会变得万分的慢,所以英特尔就是为着那些出生,它最大的特性就是足以异步的点子加载模块。(CMD也是异步的)
那么RequrieJS其实就是速龙现在用的最广大,最风靡的贯彻。

 

8-1

  1. 饥人谷
  2. 萌鹿简历

 

8-2

  1. 怎么写一个模态框

https://my.oschina.net/aiguozhe/blog/279992

  1. 面试什么的

http://www.cnblogs.com/iceb/p/7238785.html

小编:小芋头君
链接:https://www.zhihu.com/question/41986174/answer/94241086
来源:知乎
作品权归小编所有。商业转发请联系作者获得授权,非商业转发请申明出处。

不讲那一个问题有没有含义,在我看来的确没有意思,然而这么些的来自其实不是在乎那些题目是或不是有含义。
而在于

您可见决定面试官问出您擅长回答的问题?

作为一名面试官,我面试过众多个人了也算,首先,挑选简历的时候自己就会接纳自己能问出问题的简历,如果一个简历看了后来我都问不出什么针对性的题材,只好随口问一个“闭包怎么写”那样的题目来说,那一个简历也没怎么面试的须求性了。所以率先关就是,简历有可以让面试官针对性提问的情节,有亮眼的情节,有考虑有统计,那样大家就足以愉悦的进展一场互动沟通的面试了,而不是给您一张试卷,你挨个写代码写算法。

然后,到了实地面试,同样,你须求带领面试官来咨询。首先是简历上反映的情节,然后是让你自我介绍的时候,一定要引发那几个空子!!!!不要说些没用的,你喜欢打球什么的,我都不爱惜!!让您自我介绍,是给您一个火候,你来打开一下大家的话题!其实就就好像于述职,你讲讲你过去一段时间做过的有意义的事务,符合您平素的事情,不管是技巧上升级,依然学习了新东西,依然你带项目作分析,如故做了怎么样优化,做了如何进步协会效能的工具,或者是您是领导者,你怎样保管集团,如何进步社团功能,如何考虑升高团队完全技能能力影响力等等等等。那不失为太首要了。

那些发表都是从你想表现的要好所有的理想特质作为起点来总括的,

平日多怀想下什么样的工程师特质是豪门期待看到的,

那几个是你要做的,是您要计算的,就是您下次面试的时候要公布的

 

比方你的简历和您的自我介绍都没事儿说头,那不佳意思,为了应景一下,我有个面试题列表,我只得从中间随便挑一条出来问,都是很格局化的问题,其实你答应对了也没卵用,只是会聚一下外场而已啦,毕竟这几个题目不管google一下就明白操纵了。

说的都是大实话,不管是做面试官,照旧去面试,想驾驭自己要发布出什么样事物来,想领会自己想要获得什么样音讯,都平等,凡事就怕用心!

 

8-3

  1. HTTP协议下POST和GET的区别

http://blog.csdn.net/wangzhilife/article/details/12440089

2:浏览器缓存机制

http://www.cnblogs.com/slly/p/6732749.html

3:图片轮播

锋利的JQUERY

C:\Users\Administrator\Downloads\[jb51.net]fengli_jquery\实例下载\04第四章\第四章例子\10-实例

3.5Jquery的show()很不难就可以有从上往下的渐变效果,怎么已毕的?

http://www.zhangxinxu.com/wordpress/2012/10/more-display-show-hide-tranisition/

show()使用的css3动画成效从上往下须要中度,Jquery算中度的点子还不晓得

4:React拖拽

http://www.cnblogs.com/LuckyWinty/p/5347559.html

5.您驾驭怎样是CSS预处理么

CSS 预处理器定义了一种新的语言,其焦点考虑是,用一种专门的编程语言,为
CSS 伸张了部分编程的风味,将 CSS
作为目的转移文书,然后开发者就假设采用那种语言举办编码工作。

深切浅出的说,“CSS 预处理器用一种专门的编程语言,进行 Web
页面样式设计,然后再编译成正常的 CSS 文件,以供项目利用。CSS 预处理器为
CSS 扩张一些编程的风味,无需考虑浏览器的包容性问题”,例如你可以在 CSS
中运用变量简单的说的逻辑程序函数(如左侧代码编辑器中就选用了变量$color)等等在编程语言中的一些要旨特点,可以让您的
CSS 越发简洁适应性更强可读性更佳更便于代码的掩护等很多便宜。结构清晰,便于扩张,轻松完成多重继承

6.关于变更的法则和行事章程,你可以描述一下么

变更元素脱离文档流,不占用空间。浮动元素碰着包蕴它的边框或者变化元素的边框停留。

7.浮动会爆发什么震慑吗,要怎么处理?

父元素的中度无法被撑开,影响与父元素同级的要素
与变化元素同级的非浮动元素(内联元素)会跟随其后
要不是先是个要素浮动,则该因素此前的元素也急需转变,否则会潜移默化页面展现的构造

解决办法:
使用CSS中的clear:both;属性来扫除元素的变型可缓解2、3题材,对于问题1,添加如下样式,给父元素添加clearfix样式:

.clearfix:after{content: “.”;display: block;height: 0;clear:
both;visibility: hidden;}

.clearfix{display: inline-block;} /* for IE/Mac */

 

8.您询问哪些接纳器?以及这么些拔取器的使用情状?

9.你精通它们的权重怎么总括么

  1. 首先等:代表内联样式,如: style=””,权值为1000。
  2. 第二等:代表ID选择器,如:#content,权值为100。
  3. 其三等:代表类,伪类和特性选用器,如.content,权值为10。
  4. 第四等:代表类型选拔器和伪元素采用器,如div p,权值为1。

12.您从jQuery学到了何等?(跳坑了竟说自己看过源代码…然后不会说了..)

16.说说函数表明式和函数表明的分别(变量进步和函数升高)

http://blog.csdn.net/qq673318522/article/details/50810650

18.你了然attribute和property的不同么

http://www.cnblogs.com/cndotabestdota/p/5706562.html

要素上的特性(包涵自定义)都是attribute,但唯有id,title,class等还要也是property,attribute就是DOM元素自带的性质,property是以此元素作为靶子附加的内容,比如firstChild等

19.平时有打探web性能么,一般要关爱怎样点?

https://www.zhihu.com/question/21658448 (很重要!!!!!)

21.Tmall那边的商品项,如图片,滚动到了才加载,你明白怎么落实么

题材19的zhihu回答里面有个Lazy Load Images好像有些类似

 

8-4

  1. 前端路由和单页路由?

①  
Backbone单页路由就是用①href=”#xx”或②router.navigate触发路由后实施回调函数,更改模板重新渲染。

②Hash路由的落到实处https://segmentfault.com/a/1190000007422616

hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 #
号早先的局部)。

语法:location.hash=anchorname

前者的路由控制:hash和history(HTML5新特性)

js页面刷新跳转的两种方式及界别

http://blog.csdn.net/fb408487792/article/details/41248675

window.location.href=”http://shanghepinpai.com“; 

a标签的href=”javascript:void(0)”和href=”#”的区别

http://www.cnblogs.com/pp-cat/p/4308736.html

要是页面里面有id为nogo的因素,点击这一个链接后,锚点机制会作用,页面贴齐这些因素上缘

  1. 牛客网校招日历

https://www.nowcoder.com/activity/campus2018

  1. ES6解构赋值,箭头函数

http://es6.ruanyifeng.com/\#docs/destructuring

字符串也得以解构赋值。那是因为此时,字符串被转换成了一个看似数组的对象。

Object(‘abc’) // {0: “a”, 1: “b”, 2: “c”, length: 3, [[PrimitiveValue]]: “abc”}

 

let arr = [1, 2, 3];
let {0 : first, [arr.length – 1] : last} = arr;
first // 1
last // 3

4:廖雪峰JS

https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345008539155e93fc16046d4bb7854943814c4f9dc2000

  1. console.trace()会打印出函数调用栈的消息

 

8-7

1:js关于for循环中的闭包问题?

for(var i=0,arr=[];i<=3;i++) {
arr.push(function(){alert(i)});
}
arr[0](); // ?? 结果不是0
arr[1](); // ?? 全是4
改装后
for(var i=0,arr=[];i<=3;i++) {
arr.push(
(function(i){
return function(){
alert(i);
}
})(i)
);
}
拔取闭包可以缓解了,为何第三次代码中的i读取的直接是I变量的最后的结果吧?
那多少个大神能给分析一下首先段代码的实施的具体步骤呢?

https://www.zhihu.com/question/33468703

 

2:为什么须要闭包呢

一部分变量无法共享和长久的保留,而全局变量可能导致变量污染,所以大家盼望有一种机制既可以长时间的保存变量又不会促成全局污染。

特点

占用更多内存

不简单被保释

曾几何时使用

既想反复使用,又想防止全局污染

何以采纳

1.定义外层函数,封装被保安的部分变量。
2.概念内层函数,执行对表面函数变量的操作。
3.外层函数重返内层函数的目标,并且外层函数被调用,结果保存在一个大局的变量中。

https://zhuanlan.zhihu.com/p/27857268

 

3:

var k = (function fun(x) {

if(x>0) {

    x–;

    console.log(x);

} else{

         console.log(“lala”);

   return “lala”;

}

    fun(x); 

})(3)

console.trace(k);

怎么打印结果是undefined?

 

k就是你的fun(3)fun(3) 根据你代码,没有显式给出重回值,默许就是回到的 undefined 。

一旦您要做递归的话,应该 给 里面的 fun(x) 加上 return
变成 return fun(x); 如此就能让k为 lala了。

 

4:
a标签的href=”javascript:void(0)”和href=”#”的区别

http://www.cnblogs.com/pp-cat/p/4308736.html

若是页面里面有id为nogo的要素,点击那些链接后,锚点机制会功效,页面贴齐那些因素上缘

 

5:仍旧真弄一下原生JS和JQUERY 然后从创作入手写一个工程

廖雪峰+MDN+JS高级+你不晓得的JS+JQUERY

 

6:廖雪峰

1.字符串:多行字符串,模板字符串

2.对象:

中括号运算符总是能替代点运算符。但点运算符却不肯定能一体替代中括号运算符。
中括号运算符可以用字符串变量的内容作为属性名。点运算符无法。

var test={aa:12,bb:34};//或者var test={};

var cc= “acqId”

test[cc]=12;

test[“cc”]=13;

console.log(test[cc]);//13

console.log(test[“cc”]);//12

console.log(test[aa]);//报错
中括号运算符可以用纯数字为属性名。点运算符无法。
中括号运算符可以用js的机要字和保留字作为属性名。点运算符不可以。

 

假诺大家要检测xiaoming是否具备某一属性,可以用in操作符:

‘name’`**in** xiaoming; // `true

但是要小心,倘若in认清一个属性存在,那一个特性不自然是xiaoming的,它恐怕是xiaoming后续取得的:

‘toString’`**in** xiaoming; // `true

因为toString定义在object对象中,而持有目的最后都会在原型链上指向object,所以xiaoming也拥有toString属性。

要认清一个性能是不是是xiaoming我具有的,而不是后续取得的,可以用hasOwnProperty()方法:

xiaoming.hasOwnProperty(‘name’);//true

for…in 言语用于遍历数组或者指标的习性

 

8-8

3.ES6新类型Map和Set

初步化Map须要一个二维数组,或者直接起头化一个空Map。Map具有以下方法:

var m = new Map(); // 空Map

m.set(‘Adam’, 67); // 添加新的key-value

m.set(‘Bob’, 59);

m.has(‘Adam’); // 是还是不是留存key ‘Adam’: true

m.get(‘Adam’); // 67

m.delete(‘Adam’); // 删除key ‘Adam’

m.get(‘Adam’); // undefined

var m = new Map([[‘Michael’, 95], [‘Bob’, 75], [‘Tracy’,
85]]);

不同于object的是JavaScript的对象有个小意思,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是不行合情的。

Map是一组键值对的布局,具有极快的搜寻速度。

 

Set

SetMap类似,也是一组key的会聚,但不存储value。由于key不能重复,所以,在Set中,没有再次的key。

要创设一个Set,必要提供一个Array用作输入,或者直接开立一个空Set

vars1 =newSet();// 空Set

vars2 =newSet([1,2,3]);// 含1, 2, 3

通过add(key)办法可以添卢比素到Set中,可以另行添加,但不会有效益:

>>> s.add(4)

>>> s

{1,2,3,4}

>>> s.add(4)

>>> s

{1,2,3,4}

通过delete(key)格局可以去除元素:

 

ES6正经引入了新的iterable类型,ArrayMapSet都属于iterable类型。

具有iterable类型的集合可以经过新的for ... of循环来遍历。

for ... of循环是ES6引入的新的语法

 

您可能会有疑难,for ... of循环和for ... in巡回有啥不一样?

for ... in循环由于历史遗留问题,它遍历的其实是目标的属性名称。一个Array数组实际上也是一个目的,它的种种元素的目录被视为一个性能。

当我们手动给Array目的添加了附加的习性后,for ... in巡回将牵动意料之外的奇怪效果:

for ... of巡回则一心修复了这几个问题,它只循环集合本身的因素:

 

那就是怎么要引入新的for ... of循环。

不过,更好的章程是一贯选用iterable内置的forEach措施,它接受一个函数,每一趟迭代就自动回调该函数。以Array为例:

vara = [‘A’,‘B’,‘C’];

a.forEach(function (element, index, array) {“

// element: 针对当前元素的值

// index: 针对当前目录

// array: 指向Array对象自我

alert(element);

});

SetArray类似,但Set从未有过索引,由此回调函数的前五个参数都是因素本身

 

  1. 函数

 

①作用域

名字空间

大局变量会绑定到window上,分裂的JavaScript文件就算使用了扳平的全局变量,或者定义了扳平名字的顶层函数,都会导致命名争辩,并且很难被察觉。

调减争执的一个方法是把团结的保有变量和函数全体绑定到一个全局变量中。例如:

// 唯一的全局变量MYAPP:

varMYAPP = {};

// 任何变量:

MYAPP.name
=
‘myapp’;

MYAPP.version
=
1.0;

// 其余函数:

MYAPP.foo
=
function () {“

`**return** 'foo';`

};

把温馨的代码全部放入唯一的名字空间MYAPP中,会大大收缩全局变量争执的或是。

重重闻明的JavaScript库都是如此干的:jQuery,YUI,underscore等等。

 

②变量

由于varlet发明的是变量,若是要表圣元(Karicare)(Dumex)个常量,在ES6之前是卓殊的,大家平时用所有大写的变量来表示“那是一个常量,不要涂改它的值”:

varPI =3.14;

ES6正经引入了新的机要字const来定义常量,constlet都持有块级成效域:

‘use strict’;

constPI =3.14;

PI
=
3;// 某些浏览器不报错,不过无效果!

PI;// 3.14

⑤目的方法的this

一经以目的的措施方式调用,比如xiaoming.age(),该函数的this针对被调用的目的,也就是xiaoming,那是切合我们预料的。

假设单独调用函数,比如getAge(),此时,该函数的this针对全局对象,也就是window

坑爹啊!

更坑爹的是,如若如此写:

var fn = xiaoming.age; // 先拿到xiaoming的age函数

fn(); // NaN

也是特其他!要保险this针对正确,必须用obj.xxx()的情势调用!

 

有些时候,喜欢重构的你把办法重构了一下:

‘use strict’;

varxiaoming = {

name:‘小明’,

birth:1990,

age:function () {“

function getAgeFromBirth() {“

`**var** y = **new** Date().getFullYear();`

`**return** y – **this**.birth;`

}

`**return** getAgeFromBirth();`

}

};

xiaoming.age();// Uncaught TypeError: Cannot read property ‘birth’
of undefined

结果又报错了!原因是this指南针只在age方法的函数内指向xiaoming,在函数内部定义的函数,this又指向undefined了!(在非strict形式下,它再度指向全局对象window!)

修补的艺术也不是从未,大家用一个that变量首先捕获this

‘use strict’;

varxiaoming = {

name:‘小明’,

birth:1990,

age:function () {“

`**var** that = **this**; `//
在点子内部一开始就擒获this

function getAgeFromBirth() {“

`**var** y = **new** Date().getFullYear();`

`**return** y – that.birth; `// 用that而不是this

}

`**return** getAgeFromBirth();`

}

};

xiaoming.age();// 25

var that = this;,你就能够放心地在方式内部定义其他函数,而不是把持有语句都堆到一个艺术中。

 

装饰器

利用apply(),大家还足以动态改变函数的作为。

JavaScript的有着目的都是动态的,固然内置的函数,我们也足以另行指向新的函数。

现行纵然我们想计算一下代码一共调用了有些次parseInt(),可以把具备的调用都找出来,然后手动加上count += 1,不过如此做太傻了。最佳方案是用大家友好的函数替换掉默认的parseInt()

varcount =0;

varoldParseInt = parseInt;// 保留原函数

window.parseInt =function () {“

count +=1;

`**return** oldParseInt.apply(null, arguments); `//
调用原函数

};

// 测试:

parseInt(’10’);

parseInt(’20’);

parseInt(’30’);

count;// 3

 

⑥高阶函数(参数里有函数的函数比如array.map)

Array.reduce

一经大家继续立异那一个例子,想艺术把一个字符串13579先变成Array——[1, 3, 5, 7, 9],再利用reduce()就可以写出一个把字符串转换为Number的函数。

牵连到的题材是:将字符串变成数字的隐式转换(符号)

‘use strict’;

var arr = [‘1’, ‘2’, ‘3’];

var r;

r = arr.map(parseInt);

[1, NaN, NaN]

由于map()接收的回调函数可以有3个参数:callback(currentValue, index,
array),常常大家仅必要首先个参数,而忽略了传播的后面五个参数。不幸的是,parseInt(string,
radix)没有忽视首个参数,导致实际执行的函数分别是:

parseInt(‘0’, 0); // 0, 按十进制转换

parseInt(‘1’, 1); // NaN, 没有一进制

parseInt(‘2’, 2); // NaN, 按二进制转换不容许出现2

能够改为r = arr.map(Number);,因为Number(value)函数仅接受一个参数。

 

Filter()

Arrayfilter()也接到一个函数。和map()不等的是,filter()把传播的函数依次功用于各类元素,然后根据重返值是true还是false控制封存仍然放弃该因素。

可以用来数组去重

 

箭头函数对this的熏陶

this

箭头函数看上去是匿名函数的一种简写,但实质上,箭头函数和匿名函数有个明明的分别:箭头函数内部的this是词法成效域,由上下文确定。

回溯前边的事例,由于JavaScript函数对this绑定的错误处理,上边的事例不可能获取预期结果:

varobj = {

birth:1990,

getAge:function () {“

`**var** b = **this**.birth; `// 1990

`**var** fn = `function () {“

`**return** **new** Date().getFullYear() – **this**.birth; `//
this指向window或undefined

};

`**return** fn();`

}

};

今昔,箭头函数完全修复了this的指向,this一而再指向词法功能域,也就是外围调用者obj

varobj = {

birth:1990,

getAge:function () {“

`**var** b = **this**.birth; `// 1990

`**var** fn = () => **new** Date().getFullYear() – **this**.birth; `//
this指向obj对象

`**return** fn();`

}

};

obj.getAge();// 25

假诺运用箭头函数,此前的这种hack写法:

varthat =this;

就不再必要了。

由于this在箭头函数中已经按照词法功能域绑定了,所以,用call()或者apply()调用箭头函数时,不可能对this举办绑定,即传入的率先个参数被忽视:

varobj = {

birth:1990,

getAge:function (year) {“

`**var** b = **this**.birth; `// 1990

`**var** fn = (y) => y – **this**.birth; `//
this.birth仍是1990

`**return** fn.call({birth:2000}, year);`

}

};

obj.getAge(2015);// 25

 

Generator

generator(生成器)是ES6正式引入的新的数据类型。一个generator看上去像一个函数,但足以回去很多次。

 

正式对象

小结一下,有诸如此类几条规则须求坚守:

1.不要拔取new Number()new Boolean()new String()创办包装对象;

2.用parseInt()parseFloat()来更换任意档次到number

3.用String()来更换任意档次到string,或者直接调用某个对象的toString()方法;

4.见惯不惊不必把自由类型转换为boolean再判断,因为可以直接写if (myVar) {...}

5.typeof操作符可以判明出numberbooleanstringfunctionundefined

6.判断Array要使用Array.isArray(arr)

7.判断null请使用myVar === null

8.断定某个全局变量是还是不是存在用typeof window.myVar === 'undefined'

9.函数里面判断某个变量是或不是存在用typeof myVar === 'undefined'

10.尾声有细心的同学指出,任何对象都有toString()方法吗?nullundefined就从未!确实那样,那三个更加值要除外,尽管null还伪装成了object类型。

更细致的同室提出,number目标调用toString()报SyntaxError:

123.toString();//SyntaxError“

相见那种情景,要分外处理一下:

123..toString();//`'123', `注意是两个点!

(123).toString();//‘123’“

无须问怎么,那就是JavaScript代码的乐趣!

 

JSON

序列化

JSON.stringify(xiaoming, null, ‘  ‘);

设若咱们还想要精确控制什么连串化小明,可以给xiaoming概念一个toJSON()的法门,直接再次来到JSON应该序列化的多寡

反种类化

获得一个JSON格式的字符串,大家一贯用JSON.parse()把它变成一个JavaScript对象

 

 

插一句:CSS 动画实战:制造一个脍炙人口的加载动画

http://svgtrick.com/tricks/7ecdbe287454e03bcbe6d36c3ee584bc

 

8-9

  1. 知识点总计

https://github.com/BearD01001/front-end-QA-to-interview#new%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%85%B7%E4%BD%93%E5%B9%B2%E4%BA%86%E4%BB%80%E4%B9%88%E5%91%A2

  1. New关键字的长河

应用new关键字调用函数(new ClassA(…))的具体步骤:

  1. 创造空对象;
      var obj = {};

2.
安装新对象的constructor属性为构造函数的名目,安装新对象的__proto__属性指向构造函数的prototype对象;   obj.__proto__ = ClassA.prototype;

  1. 运用新目标调用函数,函数中的this被指向新实例对象:
      ClassA.call(obj);  //{}.构造函数();    

就是obj执行一回构造函数,把性能什么的通过this.xx =xx;给obj。      

  1. 将开头化已毕的新目标地址,保存到等号左侧的变量中

 

同时注意,调用构造函数千万毫无遗忘写new。为了分化普通函数和构造函数,按照预订,构造函数首字母应当大写,而日常函数首字母应当小写,那样,一些语法检查工具如jslint将得以帮您检测到漏写的new

 

只顾:若构造函数中回到this或重回值是基本类型(number、string、boolean、null、undefined)的值,则赶回新实例对象;若重回值是引用类型的值,则实在再次回到值为这么些引用类型。

 

关于prototype和__proto__的关系

摘自JS高级:

 

俺们创建的每个函数都有一个prototype属性,那一个特性是一个指针,指向一个目的,而以此目的的用处是含有可以由特定类型的具有实例共享的性质和措施。

Constructor(构造函数)属性包蕴的是一个对准prototype所在函数的指针,通过这一个构造函数能够继续为原型对象添加方法和特性。

        
而当调用构造函数创立一个实例之后,该实例将包含一个指南针叫做[prototype],也就是浏览器协理下的__proto__;

 
例如Array.prototype.slice.call();实际上Array就是一个构造函数啦!所以用的是prototype。

 

3.class继承

咱俩先想起用函数已毕Student的方法:

function Student(name) {“

`**this**.name = name;`

}

Student.prototype.hello
=
function () {“

alert(‘Hello, ‘+this.name +‘!’);

}

假使用新的class一言九鼎字来编排Student,可以这么写:

classStudent {

constructor(name) {

`**this**.name = name;`

}

hello() {

alert(‘Hello, ‘+this.name +‘!’);

}

}

说到底,成立一个Student对象代码和前边章节完全相同:

varxiaoming =newStudent(‘小明’);

xiaoming.hello();

class继承

class概念对象的另一个巨大的裨益是两次三番更方便了。想一想大家从Student派生一个PrimaryStudent亟待编制的代码量。现在,原型继承的中档对象,原型对象的构造函数等等都不需求考虑了,直接通过extends来实现:

classPrimaryStudentextendsStudent {

constructor(name, grade) {

`**super**(name); `// 纪念用super调用父类的构造方法!

`**this**.grade = grade;`

}

myGrade() {

alert(‘I am at grade ‘+this.grade);

}

}

注意PrimaryStudent的概念也是class关键字贯彻的,而extends则意味着原型链对象来自Student。子类的构造函数可能会与父类不太一样,例如,PrimaryStudent需要namegrade七个参数,并且须求通过super(name)来调用父类的构造函数,否则父类的name性能如故不能正常早先化。

PrimaryStudent曾经自行得到了父类Studenthello方式,我们又在子类中定义了新的myGrade方法。

ES6引入的class和原始的JavaScript原型继承有怎么样不一样吗?实际上它们没有其余分裂,class的效率就是让JavaScript引擎去贯彻原来供给大家自己编排的原型链代码。一句话来说,用class的益处就是宏大地简化了原型链代码。

 

练习

 

请利用class再次定义Cat,并让它从已有的Animal此起彼伏,然后新增一个艺术say(),重返字符串'Hello, xxx!'

class Animal {

    constructor(name) {

        this.name = name;

    }

}

class Cat extends Animal{

     constructor(name){

          super(name);

}

 

    say(){

       return `Hello, ${this.name}!`

}

}

var kitty = new Cat(‘Kitty’);

 

4.浏览器对象

window

navigator

screen

location

document

history

location.href是一个属性,要这么使用:
location.href=’http://www.example.com‘而location.assign(‘http://www.example.com‘)就location.href=’http://www.example.com‘至于location.replace(‘http://www.example.com‘)与前两者的分别是,在replace随后,浏览历史就被清空了(href与assign方法会时有爆发历史记录)。

 

5.操作DOM

出于HTML文档被浏览器解析后就是一棵DOM树,要转移HTML的结构,就须求通过JavaScript来操作DOM。

 

在操作一个DOM节点前,大家必要通过种种方法先获得这些DOM节点。最常用的艺术是document.getElementById()document.getElementsByTagName(),以及CSS选择器document.getElementsByClassName()

 

其次种方法是利用querySelector()querySelectorAll(),需求了然selector语法,然后使用规则来博取节点,越发方便.

 

严峻地讲,大家那边的DOM节点是指Element,可是DOM节点实际上是Node,在HTML中,Node包括ElementCommentCDATA_SECTION等重重种,以及根节点Document品种,可是,绝大多数时候我们只关心Element,也就是实际上控制页面结构的Node,其余项目标Node疏忽即可。根节点Document已经自行绑定为全局变量document

 

6.更新DOM

一种是修改innerHTML特性,
第三种是修改innerTexttextContent性能,那样可以自动对字符串进行HTML编码,有限扶助无法设置任何HTML标签

 

修改CSS也是不时索要的操作。DOM节点的style特性对应所有的CSS,可以直接得到或设置。因为CSS允许font-size如此这般的称号,但它并非JavaScript有效的属性名,所以必要在JavaScript中改写为驼峰式命名fontSize

//
``获取
<p id=”p-id”>...</p>“

var
p = document.getElementById('p-id');

//
``设置CSS:

p.style.color
= '#ff0000';

p.style.fontSize
= '20px';

p.style.paddingTop
= '2em';

  1. 插入DOM

有四个艺术可以插入新的节点。一个是使用appendChild,把一个子节点添加到父节点的终极一个子节点。

 

如若我们要把子节点插入到指定的地方如何是好?可以应用parentElement.insertBefore(newElement, referenceElement);,子节点会插入到referenceElement之前。

 

  1. 删除DOM

要删减一个节点,首先要取得该节点本身以及它的父节点,然后,调用父节点的removeChild把温馨删掉:

// 获得待删除节点:

var`**self** = document.getElementById('to-be-removed');`

// 获得父节点:

var`**parent** = **self**.parentElement;`

// 删除:

varremoved =parent.removeChild(self);

removed
===
self;// true

瞩目到删除后的节点固然不在文档树中了,但骨子里它还在内存中,可以随时再一次被添加到其余位置。

 

 

MDN- ChildNode.remove()

ChildNode.remove() 方法把从它所属的DOM树中删去对象。

<div id=”div-01″>Here
is div-01
</div>“

<div id=”div-02″>Here
is div-02
</div>“

<div id=”div-03″>Here
is div-03
</div>

varel=document.getElementById(‘div-01’);“

el.nextElementSibling.remove();“

// id 为 ‘div-02’ 的 div 被删掉了

 

8-10

  1. 操作表单

 

付给表单

 

注意到idmd5-password<input>标记了name="password",而用户输入的idinput-password<input>没有name属性。没有name属性的<input>的数目不会被交给。

 

  1. 操作文件

在HTML表单中,可以上传文件的绝无仅有控件就是<input type=”file”>。

注意:当一个表单包括<input
type=”file”>时,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才能正确编码并以multipart/form-data格式发送表单的数据。

出于安全着想,浏览器只同意用户点击<input
type=”file”>来挑选地面文件,用JavaScript对<input
type=”file”>的value赋值是尚未其他效果的。当用户挑选了上传某个文件后,JavaScript也无从赢得该公文的真正路径:

File API

是因为JavaScript对用户上传的公文操作更加有限,尤其是心有余而力不足读取文件内容,使得众多内需操作文件的网页不得不用Flash那样的第三方插件来兑现。

乘势HTML5的普及,新增的File
API允许JavaScript读取文件内容,得到更加多的公文新闻。

HTML5的File
API
提供了FileFileReader两个举足轻重目的,可以收获文件新闻并读取文件。

上边的例证演示了什么样读取用户采用的图片文件,并在一个<div>中预览图像

  1. 自身评价

推荐语:本人本科时期是数学专业的,由于对计算机编程的热衷,学士转向计算机系,两年岁月的项目开销经历,使得自己的编程能力有了很大的增加。技术下边熟知驾驭数据结构、操作系统、总括机网络;并对骨干算法及常用设计方式有较好的控制。熟习精通Java语言及其高级特性,包罗集合、I/O流、反射、二十四线程并发;并对JVM基本原理有必然的刺探。熟悉通晓JavaWeb技术,包含JSP、JavaScript、Servlet、Session、Filter、Listener、JDBC等技能。熟谙MVC开发形式以及SSH、MyBatis、SpringMVC等JavaEE主流开发框架;具有JavaWeb和.NET开发经历;并对Lucene、JBPM、Web瑟维斯(Service)、Nginx有必然的打听。了解应用SQL
Server、MySql数据库,熟练数据库事务特性及数据库连接池;领会MySQL数据库的优化;并对Redis有肯定的刺探。精通Linux常见操作命令,Maven项目构建及大旨的分布式开发原理。其它,在本科和大学生时期,战表能够,积极加入校内校外实践活动,并多次拿走奖学金,其少校级奖学金一次,博士学业奖学金五遍。语言方面通过CET-4和CET-6,具备阅读英文文献和中坚的关系能力。在结业来临之际,希望团结能有机遇和卓绝的整肃员工一起上学发展,共同创制下一个宏伟的时期!

 

  1. VUE的学习

 

评释式渲染

 

Vue.js 的主导是一个允许使用不难的模版语法来注解式的将数据渲染进 DOM:

<div id="app-2">

  <span v-bind:title="message">

    鼠标悬停几秒钟查看此处动态绑定的提示信息!

  </span>

</div>

 

var app2 = new Vue({

  el: ‘#app-2’,

  data: {

    message: ‘页面加载于 ‘ + new Date()

  }

})

鼠标悬停几秒钟查看此处动态绑定的提醒新闻!

此地大家相见点新东西。你看来的 v-bind 属性被叫做指令。指令带有前缀 v-,以象征它们是
Vue 提供的新鲜性能。可能你已经猜到了,它们会在渲染的 DOM
上应用特其余响应式行为。简言之,那里该指令的功用是:“将以此元素节点的 title 属性和
Vue 实例的 message 属性保持一致”。

 

8-11

1.react的extends语法(MDN)

使用 extends

第二个例子是根据名为 Polygon ``类创造一个名为Square``的类。 你可以从实战演示看到这些事例。

class`Square extends Polygon `{“

`constructor(length) `{“

// 这里把length传参给父类的构造方法“

// 作为父类Polygon的宽和高“

`super(length,
length`);“

// 备注:在衍生类中利用this前必须先调用super()方法“

// 忽视那一点将会招致一个引用错误“

`this.name
= `’Square’;“

}“

`get area() `{“

`return this.height
\* this.width`;“

}“

`set area(value) `{“

`this.area
= value`;“

`} `

}

 

Getter/Setter访问器属性

get 语法将一个对象属性绑定到查询该属性时将被调用的一个函数上。

语法E

{get prop() { … } }

{get [expression]() { … } }

 

super 关键字用于调用一个对象的父对象上的函数。

super.prop 和 super[expr] 表明式在 和 目的字面量 任何 格局定义 中都是有效的。

语法

super([arguments]);

// 调用 父对象/父类 的构造函数

super.functionOnParent([arguments]);

// 调用 父对象/父类 上的法子

 

  1. 滚动条样式

http://blog.csdn.net/hanshileiai/article/details/40398177

当设置了-webkit-scrollbar属性的时候,就算只设置了width,也会使滚动条变透明。

于是唯有必要如下两条就可以有很美丽的滚动条

#mobile-body-content::-webkit-scrollbar{width:8px}

#mobile-body-content::-webkit-scrollbar-thumb{background-color:#bdf4eb;-webkit-border-radius:4px;border-radius:4px}

 

4:通过并且安装元素的top和bottom,确定因素的可观。

 

5:如何让 height:100%; 起作用

http://www.webhek.com/post/css-100-percent-height.html

若果想让一个元素的比重中度height: 100%;起成效,你须要给那么些元素的具有父元素的可观设定一个有效值。

 

 

6:定宽元素居中方法2

{position:absolute;

left:50%;

width:300px;

margin-left:150px;}

 

7:利用伪元素::before或::after爆发阴影

#mobile-body-bg:before {

position: relative;

width: 100%;

  height: 25px;

  background: linear-gradient(rgba(34,195,170,0.1) 0, transparent);}

 

8.CSS动画

transform-origin设置旋转元素的主题地点

 

animation: msgBounceIn .4s;

animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)

 

@keyframes msgBounceIn{

from{transform:scale(0)}                    //from相当于0%,to相当于100%

40%{transform:scale(1.03)}

75%{transform:scale(0.98)}

to{transform:scale(1)}

}

 

补充一个:transition 属性 

width:100px;

transition: width 2s;

 

8-13

1.git文本上传

http://www.cnblogs.com/cxk1995/p/5800196.html

地面文件更新服务器

http://blog.csdn.net/u014724048/article/details/54408994

服务器覆盖本地

http://blog.csdn.net/zzclqy/article/details/52743810

  1. 运用原来是

transform: translateY(100%);

transition-duration: .3s;

transition-property: transform;

然后

background-color:rgba(0,0,0,0.5);

border-radius:20px;opacity:1;-webkit-transition:opacity
.3s;transition:opacity .3s

transform:translateY(0)

做到对话框的突显!

  1. 对话框关闭的X用::before和::after

.close-btn {

    position: absolute;

    top: 0;

    right: 0;

    height: 20px;

    padding: 12px 18px;

}

 

.close-btn:before {

    top: 10px;

    -webkit-transform: rotateZ(45deg);

    -ms-transform: rotate(45deg);

    transform: rotateZ(45deg);

}

 

 

.close-btn:after {

    -webkit-transform: rotateZ(-45deg);

    -ms-transform: rotate(-45deg);

    transform: rotateZ(-45deg);

}

 

.close-btn:before, .close-btn:after {

    content: ”;

    display: block;

    width: 16px;

    height: 2px;

    position: relative;

    top: 8px;

    background-color: #ddd;

}

  1. 对话框出来时,底层变暗的成效(类似模态框)

#mobile.has-prompt #prompt-bg{

    position:absolute;

    top:0;

    z-index:50;

    display:block;

    width:100%;

    height:100%;

    background-color:rgba(0,0,0,0.5);

    -webkit-border-radius:20px;

    border-radius:20px;opacity:1;-webkit-transition:opacity
.3s;transition:opacity .3s

}

 

5:右侧对话框浮动的破除方法

.msg-row::before, .msg-row::after {

    content: ” “;

    display: table;

}

 

.msg-row::after {

    clear: both;

}

 

6.怎么 .clear :after 和 :before 的 display 属性要定义为 table?

.cf:after,.cf:before {content: ” “; display: table;} .cf:after {clear:
both;} :before是因为table类型能生成独立的bfc,防止上面距塌陷,
:after负责清除浮动,幸免父级中度塌陷;协作使用,代码少,效能高。

然而是知情父级高度塌陷的代码经测试只需要

.main::after{

    clear: both;

}

.main::after {

    content: ” “;

    display: table;

}

就足以做到,原理就是接纳伪元素清除浮动

 

8-15

  1. 组件化
  2. 回调已毕各样效用
  3. 选择数组+1+1如此形成对话?
  4. 干什么react的零件要super(props)
    1. 调用super的案由:在ES6中,在子类的constructor中务必先调用super才能引用this ``(经测试,不调用``super``会报错);
    2. super(props)的目的:在constructor中可以运用this.props
    3. 最终,可以看下React文档,里面有一段

Class components should always call the base constructor with props.

上面我的例证,constructor的标配就是super(props);会自动传入组件的props;  

constructor(props) {

                   super(props);

                   this.state = {

                            replyarr:[“hehe”]

                   };

         }

唯有当不需求consructor的时候能够简写如下

class Welcome extends React.Component {

  render() {

    return <h1>Hello, {this.props.name}</h1>;

  }

}

5.官方实例

class Clock extends React.Component {

  constructor(props) {

    super(props);

    this.state = {date: new Date()};

  }

 

  componentDidMount() {

    this.timerID = setInterval(

      () => this.tick(),

      1000

    );

  }

 

  componentWillUnmount() {

    clearInterval(this.timerID);

  }

 

  tick() {

    this.setState({

      date: new Date()

    });

  }

 

  render() {

    return (

      <div>

        <h1>Hello, world!</h1>

        <h2>It is
{this.state.date.toLocaleTimeString()}.</h2>

      </div>

    );

  }

}

 

ReactDOM.render(

  <Clock />,

  document.getElementById(‘root’)

);

 

  1. 修改景况

①   this.setState({comment: ‘Hello’});

②   当state更新要求使用从前的值时,要使用函数举办翻新

Because this.props and this.state may be updated asynchronously, you
should not rely on their values for calculating the next state.

For example, this code may fail to update the counter:

// Wrong“

this.setState({“

`counter: this.state.counter + `this.props.increment,“

});“

To fix it, use a second form of setState() that accepts a function
rather than an object. That function will receive the previous state as
the first argument, and the props at the time the update is applied as
the second argument:

// Correct“

this.setState((prevState,`props) =&gt; `({“

`counter: prevState.counter + `props.increment“

}));

更新state数组写法一:

this.setState((prevState, props) => ({

                  counter: prevState.replyarr.push(“一只羊”)

           }));

写法二:

this.state.replyarr.push(“一只羊”);

           this.setState({

                    replyarr:this.state.replyarr

           });

  1. onClick={this.reply1.bind(this)}

react里面那种写法很多,假如不丰硕bind(this)那就是说在reply1
里面调用this结果是null?

 

①要是你的点击事件触发的不二法门里必要引用this。就要求绑定啊。不然你的this是null(记得若是没绑定this应该是全局window。但此间this
就是null,撸完手上的急需去看一下react源码 )所以

1.您依旧在创制的时候绑定:

<div className=”save”
onClick={this.handleClick.bind(this)}>Save</div>

2.要么在一初步构造器里声称绑定

constructor(props){

  super(props);

  this.handleClick=this.handleClick.bind(this)

3.还有一种是行使闭包把职能域包起来

<div className=”save”
onClick={()=>this.handleClick}>Save</div>

假如用第一种 会在每回点击时通过bind创造一个新的方法,所以一般用2 3
三种情景,显示调用bind()只是为着保证this值。

作者:空腹熊
链接:https://www.zhihu.com/question/50572127/answer/144757646

*创设绑定函数  bind() 最简易的用法是成立一个函数,使那个函数不论怎么调用都有同等的this值。[JavaScript](http://lib.csdn.net/base/javascript)新手平日犯的一个荒唐是将一个措施从目的中拿出去,然后再调用,希望方法中的this是原来的目标。(比如在回调中传出那一个艺术。)就算不做特殊处理的话,一般会丢掉原来的目的。从原本的函数和原先的靶子创造一个绑定函数,则能很美丽地解决那几个题材:*

this.x =9;

varmodule = {

x:81,

getX:function() {`return this.x; }`

};

module.getX();// 返回 81“

varretrieveX = module.getX;

retrieveX();// 再次来到 9, 在这种场地下,”this”指向全局功用域“

// 创设一个新函数,将”this”绑定到module对象“

// 新手可能会被全局的x变量和module里的属性x所迷惑“

varboundGetX = retrieveX.bind(module);

boundGetX();// 返回 81

结合这里的事例进行驾驭,React构造方法中的bind即将handleClick函数与这几个组件Component进行绑定以保证在那一个处理函数中利用this时得以随时指向这一零部件

 

  1. 7.       JQUERY对象转DOM对象

三种转移情势将一个jQuery对象转换成DOM对象:[index]和.get(index);

(1)jQuery对象是一个数额对象,可以通过[index]的不二法门,来博取相应的DOM对象。

如:

 

 

var $v =$("#v") ; //jQuery对象

var v=$v[0]; //DOM对象

alert(v.checked) //检测这个checkbox是否被选中

(2)jQuery本身提供,通过.get(index)方法,获得相应的DOM对象

 

  1. 8.       让滚动条保持在最尾部

$('#content').scrollTop( $('#content')[0].scrollHeight );

`一初阶出错的因由是REACT情节渲染前就设置了中度,渲染后没有再度安装,由此写在componentDidUpdate函数里面,在state更改后活动调用!“`

componentDidUpdate(prevProps,
prevState) {

var contentSH =
$("#mobile-body-content")[0].scrollHeight;

var contentCH =
$("#mobile-body-content")[0].clientHeight;

var scrollTopValue = contentSH - contentCH;

$("#mobile-body-content").scrollTop(scrollTopValue);

}

9. 与滚动栏适配的进度条

//与滚动栏适配的进程条
(function() {
var $w = $(window);
var $prog2 = $(‘.bottombar’);
var wh = $w.height();
var h = $(‘body’).height();
var sHeight = h – wh;
$w.on(‘scroll’, function() {
window.requestAnimationFrame(function(){
//scrollTop()是滚了稍稍,sHeight是足以滚多少
var perc = Math.max(0, Math.min(1, $w.scrollTop() / sHeight));
updateProgress(perc);
});
});

function updateProgress(perc) {
$prog2.css({width: perc * 100 + ‘%’});
}

}());

10.

$(window).height(); //浏览器当前窗口可视区域中度

 $(document).height(); //浏览器当前窗口文档的中度

 $(document.body).height();//浏览器当前窗口文档body的可观

 $(document.body).outerHeight(true);//浏览器当前窗口文档body的总中度包罗border padding margin 

$(window).width(); //浏览器当前窗口可视区域涨幅

 $(document).width();//浏览器当前窗口文档对象宽度 

$(document.body).width();//浏览器当前窗口文档body的中度 

$(document.body).outerWi      
dth(true);//浏览器当前窗口文档body的总幅度 包

 

11.①Jquery中间的{}?——$().css设置三个属性时就是如此写

②各个中度和鼠标地方

网页可知区域宽: document.body.clientWidth 
网页可知区域高: document.body.clientHeight 
网页可见区域宽: document.body.offsetWidth (包涵边线的宽) 
网页可知区域高: document.body.offsetHeight (包罗边线的高) 
网页正文全文宽: document.body.scrollWidth 
网页正文全文高: document.body.scrollHeight 
网页被卷去的高: document.body.scrollTop 
网页被卷去的左: document.body.scrollLeft 
网页正文部分上: window.screenTop 
网页正文部分左: window.screenLeft 
显示屏分辨率的高: window.screen.height 
显示器分辨率的宽: window.screen.width 
显示器可用工作区高度: window.screen.availHeight 
显示屏可用工作区宽度: window.screen.availWidth 

③    生命周期函数

④    缓慢滑动到对象位置

http://www.daixiaorui.com/read/92.html

Jquery的offset()可以取得元素的职位,从而稳定到元素所在处

⑤    同步和异步的定义

http://blog.csdn.net/u013063153/article/details/52457307

异步代码会被放入一个事件队列,等到所有其他代码执行后才开展,而不会堵塞线程。

javascript最基础的异步函数是set提姆(Tim)eout和setInterval。set提姆eout会在早晚时间后执行给定的函数。它承受一个回调函数作为第一参数和一个皮秒时间作为第二参数。

12.JS的单线程和异步机制

https://www.zhihu.com/question/19732473

怎么精通阻塞非阻塞与一同异步的分别?

http://www.cnblogs.com/sxz2008/p/6513619.html

JavaScript单线程和异步机制

即使如此JavaScript是单线程的,不过浏览器内部不是单线程的。你的一对I/O操作、定时器的计时和事件监听(click,
keydown…)等都是由浏览器提供的任何线程来形成的。

假定想利用十六线程处理部分耗时较长的天职,能够采纳HTML5提议的Web Worker。

 

8-16

翌日涂改样式往github上面架一下

 

8-17

  1. JS中的事件绑定,事件捕获,事件冒泡以及事件委托,包容IE

http://www.cnblogs.com/zhangmingze/p/4864367.html

  1. background-image
  2. https://sologgfun.github.io/
  3. 作者:Try
    链接:https://www.nowcoder.com/discuss/19662?type=2&order=3&pos=21&page=1
    来源:牛客网

开端都是在牛客看外人的面经,面试经验哪些的,本次该换我来写了,

实习:

校招:

7.20初叶投简历

蚂蚁金服UED

一面:55分钟

1.如何让各类场地下的div居中(相对定位的div,垂直居中,水平居中)

  1. display有哪些值?表达她们的效益

None,block,inline-block,table,cell

  1. requirejs达成原理

基本原理是动态生成script标签,比如requirejs,seajs。还有一部分是ajax请求js代码,然后eval执行的。其余能够关怀一下MT.手机新浪,基于localstorage来做到路字符级其他增量更新

  1. requirejs怎么预防再次加载

7.ES6里头的箭头函数的this对象与别的的有甚差异

8.tcp/udp区别

http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html

小结TCP与UDP的区别:
1.基于连接与无连接;
2.对系统资源的渴求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流形式与数码报情势 ;
5.TCP有限协理数据正确性,UDP可能丢包,TCP有限支撑数据顺序,UDP不有限协助。

  1. tcp三遍握手进度

TCP几遍握手进程
1 主机A通过向长机B 发送一个涵盖同步连串号的标志位的多少段给主机B
,向长机B 请求建立连接,通过这么些数据段,
主机A告诉主机B
两件事:我想要和您通讯;你可以用哪些系列号作为开端数据段来回应我.
2 主机B
收到主机A的哀告后,用一个带有确认应答(ACK)和同步连串号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:
本人早已收到你的伏乞了,你可以传输数据了;你要用哪佧种类号作为开局数据段来回应本人
3 主机A收到这些数据段后,再发送一个肯定应答,确认已接到主机B
的数据段:”我已接收回复,我今天要从头传输实际数据了
这么3次握手就马到功成了,主机A和主机B 就足以传输数据了.
3次握手的表征
从不应用层的数量
SYN这么些标志位唯有在TCP建产连接时才会被置1
拉手已毕后SYN标志位被置0

  1. xss与csrf的法则与怎么预防

http://blog.csdn.net/koastal/article/details/52905358

①XSS定义的主语是“脚本”,是一种跨站进行的剧本,也就是JavaScript剧本,指的是在网站上注入我们的javascript剧本,执行不合规操作。 
CSRF定义的主语是”请求“,是一种跨站的伪造的哀求,指的是跨站伪造用户的呼吁,模拟用户的操作。

②XSS攻击暴发的原则是足以推行javascript脚本,一般在站点中总会有公布小说、留言等音信的表单,那种表单一般是写入到数据库中,然后在某个页面进行体现。我们得以在那么些表单中一贯编写javascript代码(<script>alert("hack
sucess!");</script>
)进行测试,看是还是不是足以执行。借使在信息展现页面js代码可以举行,XSS攻击就打响了。

CSRF(Cross-site request
forgery跨站请求伪造)是一种依赖web浏览器的、被歪曲过的代理人攻击。CSRF定义的主语是”请求“,是一种跨站的假冒的伏乞,指的是跨站伪造用户的伏乞,模拟用户的操作。

 

GET和POST的使用

在web程序的布置性基准上,GET传递参数的操作,不应有改变程序的内部结构,主要用以查询音信的过滤。对于数据库的更删改操作,一定要动用POST方式传值。

XSS和CSRF攻击的防守

防御XSS攻击可以通过以下两方面操作: 
1,对用户表单输入的数额进行过滤,对javascript代码进行转义,然后再存入数据库; 
2,在音信的呈现页面,也要开展转义,幸免javascript在页面上举办。

 

CSRF攻击的防守可以由此以下两上面操作: 
1,所有须要用户登录之后才能实施的操作属于重点操作,这几个操作传递参数应该使用post格局,尤其安全; 

2,为严防跨站请求伪造,大家在某次请求的时候都要带上一个csrf_token参数,用于标识请求来源是不是合法,csrf_token参数由系统生成,存储在SESSION中。

  1. mysql与 MongoDB的区别

关系型数据库:最广大应用最广的一类数据库,建立在关乎模型基础上数据模型大概上就是二维表,一个鼓鼓的的特性是用SQL实行操作,能满意大多数须求。常见的MySQL,Oracle,Microsoft
SQL Server等。

MySQL,开源的关系型数据库,在当代数据库中比较典型,能满意你一大半要求,毕竟Oracle很贵。一般用起来要运行一个MySQL的服务,然后用客户端去老是它,比如在Java里仍旧用shell连接127.0.0.1:3306。之后就足以喜出望外地实施SQL语句增删查改了。

事例:比如学生信息保管体系,服务器123.123.123.123:306上用的MySQL,另一个服务器上的Web应用可以连绵起伏到它,学生大旨音信一个表,班级新闻一个表。学生的班级id字段是外键连接到班级新闻表的班级id。

SQLite,一个相当精致的关系型数据库,麻雀虽小五脏俱全。(需要中距离连服务器上的数据库照旧宝宝用MySQL),连接数据库就如打开个db文件,比如用shell或者编程语言总是到e:\example.db。之后就可以心潮澎湃地用SQL语句增删查改了。极度适合嵌入到应用内部,比如android应用。显然,借使您写的主次访问的多寡想存成一个地点文件,你协调统筹文件格式存多少很坚苦不如用那几个。比如做个片子管理app,内嵌mingpian.db来保存名片。

 

非关系型数据库:由于关系型数据库尽管数据结构很谨慎专业,有一大堆约束(比如确保每个数据主键唯一啊,存在其他表里的数据用外键连接啊之类的),可是在一些时候存在欠缺,比如自己从前天始于存的数码都比前几日的多了俩字段,或者明日启幕每条数据之中嵌入了一个列表,这时候关系型数据库就不佳用了(要么建新表,要么alter旧表,可是改变里面存了N多数据的旧表的布局代价很大),再例如数据以充实为主,并且修改一条记下某个字段时讲求旧的版本不可能丢。

为了满足这么些需要,就涌出了非关系型数据库,也有人称之为NoSQL数据库,舍弃一部分关系型数据库的“严格”,而协助种种其余特性。常见的有HBase、MongoDB、Redis等等。   
MongoDB按分类可以算“基于文档的数据库”,里面数据的“长相”参见JSON格式。但是在我看来,很多吵吵着用MongoDB的情状MySQL完全可以胜任。

 

腾讯TST微信(第一次,内推)

一面:50分钟

5.gulp与webpack区别

7.说下你精通的响应状态码

10.对nodejs精通多少

 

二面:90分钟 (视频面)

第一是四个编程题 

2.达成一个可拖动的div(要考虑到浏览器包容性)

http://www.w3school.com.cn/html5/html\_5\_draganddrop.asp

 

 

二面:40分钟

1.遇上过怎么浏览器包容性问题

  1. 免去浮动有哪二种形式,分别说说

http://www.cnblogs.com/Lu-Lu/p/6253714.html

最强浮动解决帖!

  1. js继承

http://www.cnblogs.com/humin/p/4556820.html

 

三面:90分钟

1.您学过数据结构没,说说你都领会些什么

2.你学过电脑操作系统没,说说您都精通些什么

3.你学过计算机组成原理没,说说您都打听些什么

4.您学过算法没,说说你都打听些什么

5.说下抉择排序,冒泡排序的落实思路

复习技术之瞳

7.让您设计一个前端css框架你肿么办

12.浏览器缓存的分化

http://www.techweb.com.cn/network/system/2016-01-05/2252395.shtml

17.js中上下文是什么样

https://segmentfault.com/q/1010000008295253/a-1020000008297388

箭头函数没有我的 thisargumentssupernew.target,
而是经过上溯词法功用域找到方今定义的那么些.

var obj = {

foo:() =>`console.log(**this**)`

}

那段代码里箭头函数里头的 this 指向的是概念了箭头函数的老大执行上下文,
明显即 window.

ES6 箭头函数中的
this?你也许想多了(翻译)

http://www.cnblogs.com/vajoy/p/4902935.html

  1. 当有人说“变量所处的上下文”时,实际指“词法环境”,或者大家常说的效能域,即标准中的Lexical
    Environment。
  2. 当有人说“函数的上下文”时,实际指“函数的推行环境”,即标准中的Execution
    Context。
  3. 当有人说“call、apply和bind会改变函数执行的上下文”时,实际指“函数执行时的this”,即正式中的this
    binding。
  4. 当有人说“你这段代码要整合上下文才能见到具体意思”时,此处的上下文就是我们平日生活中说的上下文。

 

21.平日在类型中用到过如何设计格局,说说看

 

 

美团

  1. 一来给了张纸必要写js自定义事件

http://www.jb51.net/article/83911.htm

https://developer.mozilla.org/zh-CN/docs/Web/Guide/Events/Creating\_and\_triggering\_events

  1. h5有个api能一定你知道是哪些吧

Geolocation

5.webpack怎么着配置

7.link和@import有怎么样界别

  • link属于html标签,而@import是css提供的。
  • 页面被加载时,link会同时被加载,而@import引用的css会等到页面加载为止后加载。
  • link是html标签,因而并未包容性,而@import只有IE5以上才能鉴别。
  • link格局样式的权重高于@import的。

11.出了道url去参数的题让在纸上写 

计算:题目暂时就先这么多,先把书看完

 

8-18

  1. 写个后台程序,时而跑一下表明登录功效

前台是用servlet写得

8-19

  1. 学弟网站,S流,面试题,第二份简历
  2. Font Awesome矢量字体图标

3. Var k; alert(k);

  1. 二叉树资料

http://blog.csdn.net/fansongy/article/details/6798278/

  1. 在Linux上,对于多进程,子进度继续了父进程的下列哪些?

父进度和子进度具有独立的地点空间和PID参数。

6.

‘a’=97
‘A’=65

7.

最短寻道时间优先算法

8.

微软操作系统(DOS、WINDOWS等)中磁盘文件存储管理的小不点儿单位叫做“簇”
扇区:硬盘不是四次读写一个字节而是五次读写一个扇区(512个字节)
:系统读读写文件的基本单位,一般为2的n次方个扇区(由文件系统决定)

块可以蕴含若干页,页可以包含若干簇,簇能够分包若干扇区

9.

总括机的细微存储单位是字节Byte,一个字节,
是由八位二进制位组成的,就是这八位数字只是由“0”和“1”七个数字组合,例如:11111000,00000001,00000101等,1个英文字母、英文标点、半角数字
在电脑是以八位二进制数保存 就是一个字节大小,1个汉字(包含中文标点
全角数字)就是2个字节 (十六位二进制)

1位二进制大小就是1bit

10.

DNS知识点

A:DNS就是将域名翻译成IP地址。

B:主要用UDP,可是当请求字节过长当先512字节时用TCP协议,将其分割成七个部分传输。

C:DNS协议默许端口号是53。

D:操作系统的DNS缓存:windows DNS缓存的默许值是
马克斯CacheTTL,它的默许值是86400s,也就是一天。macOS
严苛按照DNS协议中的TTL。

   
 游览器的DNS缓存:chrome对种种域名会默许缓存60s;IE将DNS缓存30min;Firefox默许缓存时间只有1秒钟;Safari约为10S。

11.

看二分法落成细节,取中值时:mid=low+((high-low)/2);是取左中值

12.

线性结构是一个静止数据元素的集合。[1] 

常用的线性结构有:线性表,栈,队列,双体系,数组,串。

有关广义表,是一种非线性的数据结构。

大规模的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。

特征

1.相会中必存在唯一的一个”首个因素”;

2.汇集中必存在唯一的一个”最终的因素”;

3.除最后元素之外,其余数据元素均有唯一的”后继”;

4.除首先因素之外,别的数据元素均有唯一的”后驱”。

数据结构中线性结构指的是数额元素之间存在着“一对一”的线性关系的数据结构。

如(a0,a1,a2,…..,an),a0为率先个元素,an为末段一个元素,此汇集即为一个线性结构的会师。

周旋应于线性结构,非线性结构的逻辑特征是一个结点元素可能对应三个一直后驱和八个后继。

13.

C语言,设有宏定义:

1

2

#define A 4+5

#define B A*A

则发布式B*B的值为

4+5*4+5*4+5*4+5=69

14.pure

 https://www.purecss.cn/start.html

<meta name=”viewport”
content=”width=device-width,initial-scale=1″>

http://www.cnblogs.com/2050/p/3877280.html

15.CSS传媒询问

CSS 语法

@media mediatype and|not|only (media feature) {
    CSS-Code;
}

您也得以本着差其余媒体使用不一样 stylesheets :

<link rel=”stylesheet” media=”mediatype and|not|only (media
feature
)” href=”mystylesheet.css“>

 

@media 媒体类型and (媒体特性){你的体裁}

@media screen and (max-width: 300px) {
    body {
        background-color:lightblue;
    }
}

 

8-22

  1. 基于pure的CSS框架
  2. React-native

http://www.jianshu.com/p/b88944250b25

  1. 思路一:仅后台间隔执行的话,不用到前台的话不能显示验证码

思路二:

 

8-23

  1. 前者性能优化

https://segmentfault.com/a/1190000000490328#articleHeader4

  1. JSX

 class是js关键字,那里要用className。对于E选项,在jsx中一贯写行内样式时无法使用引号,而是style={{color:’red’}}的艺术

  1. 数组方法

主旨须求将数组a=[1,2,3]变成[1,2,3,4],须求变更原数组a。

Array对象常用方法中:

不改动原数组:

1、 concat()

一而再多少个或四个数组

不改变原数组

归来被连接数组的一个副本


2、join()

把数组中所有因素放入一个字符串

不转移原数组

归来字符串


3、 slice()

从已部分数组中回到选定的要素

不转移原数组

归来一个新数组


4、 toString()

把数组转为字符串

不转移原数组

再次回到数组的字符串方式

变更原数组:

5、 pop()

除去数组最终一个因素,假设数组为空,则不改变数组,重临undefined

变更原数组

回来被删去的要素


6、 push()

向数组末尾添加一个或多少个因素

变更原数组

回来新数组的长短


7、 reverse()

颠尾数组中元素的顺序

改变原数组

归来该数组


8、 shift()

把数组的首先个因素删除,若空数组,不举行其余操作,再次来到undefined

变动原数组

回去第四个要素的值


9、 sort()

对数组元素进行排序(ascii)

变更原数组

回去该数组


10、 splice()

从数组中丰硕/删除项目

变更原数组

回来被删除的元素


11、 unshift()

向数组的先导添加一个或三个要素

变动原数组

回去新数组的长短

A选项,a.reverse()后再次来到值即数组a变成[3,2,1],再利用unshift()方法在数组起来添加一个4,a数组就改成了[4,3,2,1]。注,unshift()重返新数组的长度,此处为4。正确。

B选项,push()方法再次回到新数组的尺寸,是一个number类型,不是数组,所以无法再用“.”操作符继续执行reverse()方法。错误。

C选项,正确。

D选项,splice()语法:arrayObject.splice(index,howmany,item1,…..,itemX)。
参数:
index:必需。整数,规定添加/删除项目标职责,使用负数可从数组结尾处规定岗位。
howmany:必需。要删减的档次数目。若是设置为 0,则不会删除项目。
item1, …, itemX:可选。向数组添加的新类型。
返回值:
Array:包括被剔除项目标新数组,假若有的话。

由于a.splice(3,1,4)中的index为3,当先了数组a的下标,所以3背后的1也不会起效果。a.splice(3,1,4)会将4插入到数组a末尾。但splice()重临值是被剔除项目标新数组,由于a.splice(3,1,4)并没有删除元素,所以回来的新数组为空,对空数组reverse()仍然空。(即使D选项改成a.splice(3,1,4);a.reverse()就不错了。)错误。

 

  1. HTTP2.0

https://www.zhihu.com/question/34074946

多路复用

多路复用允许同时通过单一的 HTTP/2 连接发起多重的呼吁-响应新闻。

明显 ,在 HTTP/1.1 协议中
「浏览器客户端在同一时间,针对同一域名下的呼吁有一定数量限制。当先限定数量的伸手会被卡住」。

可以给请求添加优先级

服务器主动推送 server push

首部压缩:HTTP2的底部会减小,从而收缩流量传输

 

  1. position: sticky 

  CSS属性选拔用于固定元素的代表规则,被规划为对台本动画效果有用。position属性中最有趣的就是sticky了,设置了sticky的因素,在显示屏范围(viewport)时该因素的职位并不受到一定影响(设置是top、left等性能无效),当该因素的岗位将要移出偏移范围时,定位又会变成fixed,按照设置的left、top等性能成固定地点的功效

 

大家需求贯彻动态加载一个 JavaScript 资源,不过有几处不领悟怎么着处理,必要您的提携成功这一项工作

var script = document.createElement(“script”);

var head = document.getElementsByTagName(“head”)[0];

 

script.type = “text/javascript”;

script.src = “//i.alicdn.com/resource.js”;

 

// 绑定资源加载成功事件

script. 1 = function( ){

// 判断资源加载状态是否为加载成功或加载成功

if( 2 . test (script. 3  )  ) {

script.onreadystatechange = null;

. . . .

}

};

 

// 绑定资源加载败北事件

script. 4 = function( ) {

. . . .

};

head.insertBefore (script , head.firstChild)

 

(1) onreadystatechange
(2) /^(loaded|complete)$/
(3) readyState
(4) onerror

 

6.

http://www.cnblogs.com/dailc/archive/2016/10/04/5930238.html

  • Native App

即传统的原生APP开发情势,Android基于Java语言,底层调用谷歌的
API;iOS基于OC或者斯维夫特语言,底层调用App官方提供的API。体验最后。

  • Web App

即运动端的网站,将页面安顿在服务器上,然后用户使用各大浏览器访问。一般泛指
SPA(Single Page Application)形式开发出的网站。体验最差。

  • Hybrid App

即混合开发,由Native通过JSBridge等措施提供联合的API,然后用Html5+JS来写实际的逻辑,调用API,那种方式下,由于Android,iOS的API一般有一致性,而且最终的页面也是在webview中展现,所有有跨平台功效

  • React Native App

脸谱发起的开源的一套新的APP开发方案,使用JS+部分原生语法来促功用益。初次学习花费较高,不过在入门后,经过完美的卷入也可以达成多数的跨平台。而且体验很好。

对比Hybird和React Native

hybird的出现但是是为着表现,说实话假若没有css,或许hybird那种事物就不会油可是生。假诺你打算做一个谍报客户端,hybird相对是不二的接纳。而互相永远是hybird的痛,且不说android局地滚动和ios的各样fixed与input的基情,就终于种种屏幕分辨率的拍卖方案都得恶心的想吐了。

而rn这种事物,其实你把语言换成java
oc一样可以兑现,只可是模块化弱类型动的js写那种事物更舒服而已。由于是根据native完成,rn可以幸免掉大家地点说的具备题目,但是hybird带来的优势也会大打折扣:
write once,use anywhere降级成了learn once,write
anywhere,当然了业务逻辑仍是可以复用的。同样的精锐的css被阉割掉了累累属性和全方位的层次拔取器,突显力没有那么强了,但说到底照旧强的。
链接:https://www.zhihu.com/question/38123798/answer/75028325

7.

IndexdDB 是 HTML5 的地面存储,把有些数据存储到浏览器(客户端)中,当与网络断开时,可以从浏览器中读取数据,用来做一些离线应用。

库克ie 通过在客户端 ( 浏览器 ) 记录新闻确定用户地点,最大为 4 kb 。

url 参数用的是 get 方法,从服务器上获取数据,大小无法超过 2 kb 。

Session 是服务器端使用的一种记录客户端状态的体制 。

post 是向服务器传送数据,数据量较大。

local Storage 也是 HTML5 的本地存储,将数据保存在客户端中。

8.

原型链找不到时,再次来到的是undefined而不是null;

  1. 输出对象中值大于2的key的数组

var data = {a: 1, b: 2, c: 3, d: 4};

Object.keys(data).filter(function(x) { return 1 ;})

希望输出:[“c”,”d”]

参考答案 
(1) data[x]>2

 

Object.keys(Object)

Array.filter(function)

Object是富含属性和方法的对象, 可以是创设的目的或现有文档对象模型 (DOM)
对象。

Object.keys(object)的重临值是 一个数组,其中饱含对象的可枚举属性和方法的名称。

Array.filter(function)对数组举行过滤重返符合条件的数组。

Object.keys(data)的重临值为数组[“a”,”b”,”c”,”d”],经过 filter(function(x)
{
return ; })过滤,再次回到值大于2的key的数组。x为回去数组的属性名称即“a”、”b”、”c”、“d”,则附和的属性值为data[x],相比较语句为data[x]>2。

 

10.

.sub{

    width: 100px;

    float: left;

}

.extra{

    width: 200px;

    float: right;

}

.main{

    margin-left: 100px;

    margin-right: 200px;

}

 

.sub, .extra {

    position: absolute;

    top: 0;

    width: 200px;

}

.sub {

    left: 0;

}

.extra {

    right: 0;

}

.main {

    margin: 0 200px;

}

 

.layout {

    display: flex;

}

.main {

    flex: 1;

}

.aside {

    width: 200px;

}

 

11.没多少的时候的饼图

12.IPV6和IPV4的区别

http://blog.csdn.net/zjuxsl/article/details/44757791

  1. 前者里神奇的BFC
    原理分析

http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html

14.
ES6块级效能域及新变量评释(let)

http://www.cnblogs.com/snandy/p/4485832.html

15.ES6模块的完成

http://www.cnblogs.com/vs1435/p/6553134.html

16.阐释现代前端组件化框架一些重视特性完成的法则

组件化机制

数码绑定机制

上下级组件之间数据传递的机制

17.函数柯里化

 

 

8-24

1.箭头函数能不能作为构造函数

2.react写一个倒计时(聚划算那种)

(自身和服务器时间的联合问题?)

3.元素相对于浏览器左上角的距离

rectObject = object.getBoundingClientRect();

再次回到值是一个 DOMRect 对象,这些目的是由该因素的 getClientRects() 方法重回的一组矩形的集合,
即:是与该因素相关的CSS 边框集合 。

DOMRect ``对象包含了一组用于描述边框的只读属性``——left``、``top``、``right``和``bottom``,单位为像素。除了`` width ``和`` height ``外的属性都是相对于视口的左上角位置而言的。

 

——————————————————————————————————————

1.你是一个怎么的人?请您接纳八个词描述自己。为了描述更生动,每个描述词后请举例表达。(限300字)

友善:从小到大每个集体总有因为各个缘由显得很弱势的人,我都会在看不下去的时候拉一把。
活力:就算学士结业已经25岁了,不过本人恐怕因为家里有个二妹,所以我的心情更青春,碰着挫折也不易于遭遇打击。
开拓进取:即使不是总结机系,不过本人对总结机的热衷促使自己克制了种种辛苦结束学业的同时控制了多位置的技巧。

2.前途,您希望团结成为一个怎么样的人?为此您付出了怎么样努力?(限300字)

前程自我期待从事统计机方面的劳作,在技能下面多加练习,成为一个世界的大牛。
本人本科和硕士即使均不是计算机系,由于对电脑编程的疼爱,从大学生入学起,两年岁月的类型支出经历,使得自己的编程能力有了很大的提升。有记录和分享的习惯,
有自己长期更新的技术博客。
技术下面对电脑网络,基本算法及数据结构有较好的牵线。熟知明白JavaScript语言,包含ES6局地特色,原生JS
基础扎实。熟习驾驭HTML5,CSS技术,包罗但不限于跨域,Session,flex布局等技术。
熟知Web
框架Backbone,React,JS框架Jquery,underScore,Css框架Bootstrap等主流框架,并且对vue也有所了然,并且对源码有过学习和研读。
后端上在和谐的花色中利用过PHP和Node.js,使用express框架合营moongoose使用了MongoDB,了然并会采取MySql数据库,精通数据库的主导处理。
其它,在本科和博士时期,积极参与校内校外实践活动,并数十次得到奖学金,大学生学业奖学金一回。语言方面通过CET-6,具备阅读英文文献和主导的关联能力。

3.你怎么对待自己毕业后的率先份工作?为何?(限300字)

首先份工作本身以为能进大公司就进大集团,中国联通就是内部的一级,以中国电信举例,中国联通的阳台是老大大的,作为国家背景的运营商旗下的分集团物联网集团也是同一。在那其间项目标品位和数据都是很高的,对协调是很好的锤炼,而且我我是阿德莱德人,不期望随处奔波,最好能在一个平安无事的公司内部平素努力成长就好了。

4.你为啥拔取应聘中移物联网有限公司?您希望中移物联网有限公司能给你带来怎么着?(限300字)

中国电信作为当今三大运营商里面的龙头,中移物联网公司看成他旗下的互联网商家,既有国企规范的优势,也有互联网神速的特点,选用那样的商号作为第一份工作室理所应当的。
我个人希望公司可以给自家成长的阳台和平稳的前行,我深信自己和中移的实力会越发强。

 

 

 

8-25

  1. 看清check是还是不是选中?如若选中check元素?
  2. HTTPS加密原理

http://www.cnblogs.com/Yfling/p/6670495.html

  1. 前者安全学RSA非对称加密,DES对称加密
  2. 可以问问给面试官的 前端DES那种对称加密有如何用?前端加密是或不是有意义?
  3. ParyTheLord 16:13:49

ParyTheLord 16:13:49

邱总,额我想问一下,,我要写那一个定时调度的话,写在那几个项目标哪里阿?,,

邱添 16:14:55

你会spring框架么

邱添 16:15:09

您可以写一个基于spring框架的调度

邱添 16:15:21

类型里面内置了spring框架

邱添 16:15:43

要么你可以写一个java程序,然后再linux做调度职责邱总,额我想问一下,,我要写这个定时调度的话,写在老大项目标哪里阿?,,

  1. 模拟HTTP请求http://blog.csdn.net/pathuang68/article/details/6920076

 

8-28

 

 

8-29

先是,并不是说您一打开一个页面就会时有发生一个session。
所谓session你可以这么领会:当你与服务端进行对话时,比如说登陆成功后,服务端会为你开壁一块内存区间,用以存放你这一次会话的片段内容,比如说用户名之类的。那么就必要一个事物来注明那个内存区间是您的而不是人家的,那几个事物就是session id(jsessionid只是tomcat中对session id的叫法,在其他容器里面,不肯定就是叫jsessionid了。),而以此内存区间您可以驾驭为session。
下一场,服务器会将那么些session id发回给你的浏览器,放入你的浏览器的cookies中(那些cookies是内存cookies,跟一般的不等同,它会趁着浏览器的关闭而熄灭)。
尔后,惟有你浏览器没有停歇,你每向服务器发请求,服务器就会从你发送过来的cookies中拿出这一个session id,然后根据这几个session id到相应的内存中取你前边存放的数量。
然则,倘使您退出登陆了,服务器会清掉属于你的内存区域,所以您再登的话,会时有发生一个新的session了。
害羞,我可能说得不太领会,但那上头的学识网上有很多,你可以驾驭下session的规律。

 

8-30

  1. JS异步(通俗)http://www.cnblogs.com/penghuwan/p/7451409.html
  2. 从未有过IE就从未危害!浏览器包容性问题解决方案汇总

http://www.cnblogs.com/huang361964533/p/7451956.html

 

 

 

8-31
1.

3.BFC

4.风云节流

5.回调XX(没听懂)

6.完结一个浏览器内部标签页间的通讯用什么措施

7.垃圾堆回收

8.状态码304

9.文档过期时间怎么设置

10.ES6语法

11.怎么设置一个在PC端与手机端都得以浏览的页面

12.怎么落到实处自适应布局,媒体询问

13.JS模块化,AMD,CMD。。。

14.代码团协会章程

15.怎么学习前端

16.跨域JSONP前后端有怎样约定啊

身为非科班出身,感觉任重先生道远,努力加油啊,很多看过没用过,面试问的很详细,很多恢宏,感觉比较讲究“你用过吧?”,那不啻是面试中冒出频率最高的词了,当然还有“没事”。

各位加油啊!!

  1. promise,asyn await,还说了一个es6的一个异步处理主要字,
    defer关键字,闭包,局部变量进步效率域,页面渲染,页面加载进程,图片懒加载,还有,但现行不记得了,让自己渐渐思考,我再加上来

 

 

9-4

美图

编程题

1.$.extend

2.DOM操作

3.正则

4.去重和集合

简答

  1. 跨域
  2. 性能优化
  3. ES6

 

9-6

  1. 羡辙的CV
  2. 出入栈和LINUX问题 技术之瞳里面有

 

9-7

  1. 投简历,改随想,笔,网站,技术之瞳
  2. 村办评价:聪明,乐观,皮实,自省(技术之瞳P8)
  3. 面试:比较大的题目得以友善查到,个性化的问题:推荐适合自己的书,论坛等,JS安全性
  4. 计算机网络

面试常考:https://www.nowcoder.com/discuss/1937

①   网络协议三要素:语义,语法,交流规则

②   在公钥密码体制中,不驾驭的是  (私钥) 。

③   表示层的显要功能是–关怀所传递的音讯的结构,语法和语义

④   从运输层的角度看,通讯的真的端点是–进程。

⑤   关于IP地址

https://www.nowcoder.com/test/question/done?tid=10715152&qid=3488#summary

  1.  flex布局中align-items
    和align-content的区别

6.
求各位数字和:利用432/10=>43的特性,得到去一位的数字,不断%10获取每一位。

  1. 对行内元素设置margin-top 和margin-bottom是或不是起作用

不起作用。(要求专注行内元素的轮换元素img、input,他们是行内元素,可是足以为其设置宽高,并且margin属性也是对其起效能的,有着类似于Inline-block的表现)

  1. 对内联元素设置padding-top和padding-bottom是或不是会大增它的莫大

不会。同上题,要小心行内元素的交替元素,img设置padding-top/bottom是会起效果的。

9.问:借使设置<p>的font-size:
10rem;那么当用户重置或拖拽浏览器窗口时,它的文本会不会遭到震慑?

答:不会。

rem是css3新增的一个对峙单位(root
em,根em),这么些单位引起了常见关怀。那几个单位与em有怎样分别呢?差别在于利用rem为元素设定字体大小时,照旧是相对大小,但针锋相对的只是HTML根元素。

 

9-11

SMTP :全称是“Simple Mail Transfer
Protocol”,即不难邮件传输协议。它是一组用于从源地址到目标地址传输邮件的正统,通过它来支配邮件的转向方式。SMTP
协议属于 TCP/IP
协议簇,它帮衬每台微机在殡葬或转向信件时找到下一个目标地。SMTP
服务器就是根据 SMTP 协议的殡葬邮件服务器。 

POP3:是Post Office Protocol
3的简称,即邮局协议的第3个版本,它规定怎么将民用计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的首先个离线协议正式,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是根据POP3协商的收到邮件服务器,用来收纳电子邮件的。

博客中介绍,pop3:从服务器下载到本地;SMTP:发送或者转载邮件。

 

  1. java/struts2/spring/ant.maven/devops
  2. 4.      
    总计机网络动态路由协和,子网掩码的意义,网络地址划分,各种地方的意义

 

9-12

1.JS在线编程格式

https://segmentfault.com/a/1190000010715910

2. 《总计机网络》第五版 复习笔记

http://blog.csdn.net/hcbbt/article/details/18271491

 

9-13

1.烟尘每年来校招的岁月都很早,四月底,在宣讲会的头天自我简单看了java基础(准备的太晚),笔试有拔取题(比较基础)、简答题(较多,涉及java基础,网络TCP/IP,三二十四线程等)、一道字符串反转编程题,两道智力题(如用多少个容器分水的问题,很常见),最后一道主观题,总体来说问题简单,相比较基础,只是自我从不复习到位,可是依旧被打招呼了一面,也有那个同学被刷了,看来刚起头好三个人都并未出彩复习,我归功于大运。一面有四个面试官,都很好,看自己简历上写的是熟习C++和java,就问我java和C++的分裂,还有就是问项目,但我做的java的种类比较久了,我也远非精美准备,不言而喻面的倒霉,就那样照旧被布告了二面,说是人事面,一个HR面2个人,大致就是什么联系处事,HR面前有一张纸,我见到了和睦的大成,笔试和一面的大成,都比较低,后来HR跟自身说一面的面试官觉得我Java基础一般,提出我转测试,让大家测试的面试布告。但是后来也平素不打招呼了,我的大运到此用完了。不要相信运气,紧要靠实力。笔试成绩很重点,总而言之要早做准备,要不然只可以眼睁睁瞧着机会以前方没有。一早先我并不是很想进烽火,没有当真对照,但新兴察觉以自己的实力烽火已经不错了,前边的无数店家还不如烽火,后悔自己从没卓绝准备,希望大家吸取我的教训。 收起

面试官的题目:

问java和C++的区别?

答我首先反应是java没有指针,当然那不是答案,面试宝典都有,不细说了

问java的用度经历?

答我记得不知底了,没怎么说,自己要出色准备项目。

问写一段代码完毕一连和多态

答只写了继续

问项目中有没有用到数据库连接池?

答没有也要说有,那是很广阔的题,近日常用的是c3p0连接池,自己百度

问java设计形式仍旧数据库范式?

 

7.以下的哪个种类颜色格式辅助上百万种颜色,不过不扶助无损压缩?

A、bmp

B、jpg

C、gif

D、tif

答案:A

http://blog.csdn.net/xq2768637066/article/details/50894608

 

 

9-18

手写filter

    var arr = [1,2,3];

    arr.filter2 = filter2;

         var re = arr.filter2(mid);

         function filter2(mid){

                   var hehe = [];

                   for(var i of this){

                   var rer = mid(i);

                   console.log(rer);

                   if(rer){

                            console.log(i);

                            hehe.push(i);

                   }

         }

         console.log(hehe);

         }

         function mid(z){

                   if(z<2){return true}

                            else{return false}

         }

 

2.内存泄漏

http://www.cnblogs.com/libin-1/p/6013490.html

 

3.
彻底弄懂HTTP缓存机制及原理

http://www.cnblogs.com/chenqf/p/6386163.html

 

  1. 5.       跨域

http://www.cnblogs.com/cndotabestdota/p/7150552.html

 

  1. 6.       美团面经
  2. 东西极度杂,每个都是问一个小意思,把还是能想起起来的记录分享一下
  3. js基础(闭包,效能域,es6,this,已毕filter,内存泄漏)
  4. css基础(重绘重排,接纳器,伪类,继承,居中,布局)
  5. http基础(五回握手,代理,缓存机制,method)
  6. 跨域
  7. 前后相互的多寡
  8. 心想事成响应restful api的路由
  9. 欣逢的习性优化和缓解的题材

 

作者:Say37
链接:https://www.nowcoder.com/discuss/37841
来源:牛客网

一上来面试官就让我介绍下自己做的体系。我介绍明白后,就从未有过然后了(当时我以为会深问)。

接下来就是编程了。

1.经典的柯里化问题。编写一个函数,达成add(2)(3)。

2.功能域问题。

var length = 10;

function fn() {

console.log(this.length);

}

var obj = {

length: 5,

method: function(fn) {

fn();

arguments[0]();

}

};

 

obj.method(fn, 1);

问会输出什么?那么些自己答复的不好,不过面试官说(⊙v⊙)嗯,也没给我纠错。哎╮(╯▽╰)╭

3.第多个是出口<body>下边的八个<a>标签对应的目录。这几个也统计过,可是写的时候有弱点,哎╮(╯▽╰)╭

4.用2到3行写出二维数组变成一维数组的函数。

自身的笔触是用slice接口把数组中的一位数字切出来,然后拼接concat下一位数字。有好的思绪,留言哈

接下来编程就停止了。其中最重大的是楼主没用过牛客网上的JavaScript(node
0.12.12)编程过,所以全程就一定于是在纸上写代码。会了就不会犯那样多低级错误了。(磕墙……)

随后问了一部分题材。

1.三列布局怎么落到实处啊,都有怎么着措施。

2.flex布局精晓吗?

3.近来在看怎么新技巧?

4.看过什么博客逛过哪些论坛?

5.怎么学习前端的?

6.你认为自己还有何样亮点。

 

作者:Lx15
链接:https://www.nowcoder.com/discuss/37900
来源:牛客网

  1. 自我介绍

  2. 何以选取前者

  3. 说一下html5 与html4   

  4. html5 都不外乎如何,我关系语义化,然后问 em/strong/i 都怎么用的

  5. canvas 与svg 

  6. requestAnimationFrame 

  7. http 协议的格式

  8. base64 的原理

  9.  表单上传图片的乞请格式是哪些的

  10. get post 区别

  11. 同源策略 

然后没了,,一共24min, 面试官很nice,
第三遍打电话我在宿舍,第二次我在电梯,第两遍才正式初阶,希望nice的面试让过呀。。。。

作者:offer真的来了
链接:https://www.nowcoder.com/discuss/37117
来源:牛客网

2、bootstrap 布局,栅格布局 ,怎么处理分化装备上的异样

3、http 304 状态码是怎么样看头?其他状态码?HTTPS

4、ajax跨域,有怎样解决办法,举了多少个实例让贯彻跨域,访问子域算不算跨域等等等

5、一八个简易的算法题(记不清了)

6、求数组中最大数

7、事件委托,点击 ul 中的li 弹出li内容,动态添加li

8、原型链继承:    b.prototype =new a() 不对吗? 

9、es6 ,异步原因,promise set map等等

10、事件流 

11、cookie

12、数组去重

13、项目

 

9-20

  1. 1.      
    http等方面总计http://www.cnblogs.com/haoyijing/p/5898420.html#html11

目录:

  1. Cookie
    是或不是会被遮盖,localStorage是或不是会被掩盖?
  2. 怎样保持登陆状态?
  3. Ajax原生
  4. Jsonp的规律。怎么去读取一个script里面的数据。
  5. 假定页面初步载入的时候把ajax请求再次回到的多少存在localStorage里面,然后每回调用的时候去localStorage里面取数,是不是行得通。
  6. 304是怎么着看头?
  7. 强缓存和协和缓存的命中和保管
  8. http请求和响应的信息结构
  9. http请求头有如何字段
  10. http响应常见状态码
  11. 简述http 1.1 与 http
    1.0的区别
  12. 请列举三种禁止浏览器缓存的头字段,
    并写出相应的设置值
  13. 和客户端浏览器缓存相关的http头
  14. 库克ie跨域请求能不可能带上
  15. js异步的章程(promise,generator,async)
  16. Get和post的区别
  17. Post一个file的时候file放在哪的?
  18. 一次握手
  19. tcp/ip/http对应哪一层
    七层模型
  20. 浏览器中输入网址后到页面彰显的进程
  21. 浏览器是哪些进展加载, 解析, 渲染的吧?
    重点说一下浏览器渲染页面的长河?
  22. cookie和session的区别
  23. 手拉手和异步的差异
  24. 浏览器发送cookie时会发送哪几个部分?
  25. cookie由哪几部分组成?
  26. 请描述一下 cookies,sessionStorage 和 localStorage
    的界别?
  27. 浏览器本地存储与劳务器端存储之间的分别
  28. sessionStorage和页面js数据对象的分歧

  1. js落成跨域

9-22

  1. 1.       css之父写的,前opera 经理
    大学生散文:层叠样式表
  2. 2.       React 源码剖析序列 - 不可名状的 react diff

https://zhuanlan.zhihu.com/p/20346379

3.React源码分析1 —
框架

http://blog.csdn.net/u013510838/article/details/55669742

  1. 3.       单向数据流 flux

他发起使用flux格局来举办零部件间数据传输,那种做法叫unidirectional data flow(单向数据流),单向数据流的补益是与此前angularJS提出的two-way data binding相比较而言,因为单向,所以各个变化都是可预测、可控制的。不像two-way data binding那么,变化一但复杂起来,我们都互相接触变化,到终极一个地点变了,你平昔猜不出来她还会招致其余什么地点接着一块儿变。那一个须要大批量实施才能抱有感受,假若您初学,那听听尽管了,不必死磕。

  1. 4.       Virtual dom

以此事物的好处是压缩DOM操作,减少DOM操作的目标是增加浏览器的渲染性能

  1. 5.       Diff算法

6.数量绑定

7.  组件化开发

 

8.react有哪些用?优点和症结有何样?

喜欢React的人居多,然则喜欢它的原因都不太雷同

正如实际的助益:

可见落到实处服务器端的渲染,便于寻找引擎优化。那点要比Backbone, Angular
1.x和Ember早期强

可见很好的和现有的代码结合。React只是MVC中的View层,对于此外的部分并不曾硬性须求。意味着很多店家在挑选拔Angular全体重构和用React部分重构的时候,拔取了React部分重构

因为一切都是component,所以代码越发模块化,重用代码更便于

学起来极度不难,多少个钟头就可以入门

因为强调只从this.props和this.state生成HTML,写起来bug相比较少

正如高大上的亮点,就是我们在大会上会说的助益:

因为用了virtual dom,所以性能很好

因为强调只从this.props和this.state生成HTML,所以那一个的functional
programming

缺点:

并不是一个完好的框架,基本都须要加上ReactRouter和Flux才能写大型应用

 

9-25

1.
DNS威迫的场合:你输入的网址是http://www.google.com,出来的是百度的页面。

HTTP威逼的气象:你打开的是腾讯网的页面,右下角弹出唐老师的不孕不育广告。

  1. 岁月复杂度

http://www.cnblogs.com/huangbw/p/7398418.html

3. D3.js是一个数据可视化的库,看看他们的DEMO就可以知道,技术基础是SVG。兼容性是IE9+。

  webgl是HTML5中提出的新技术,是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,关于它的教程可以看看hiwebgl。目前兼容性堪忧

  three.js是以webgl为基础的库,封装了一些3D渲染需求中重要的工具方法与渲染循环。它的教程同样可以在hiwebgl里面找到。

  three.js之于webgl,类似于windows版本的虚幻引擎之于D3D。当然,虚幻引擎的能力范围比three.js大得多。d3.js跟上面两者没有关系。

4.   这两个引擎各有所长的,具体那个好要看目的是什么。

  OpenGL经过多年的洗刷,已经成为绘图引擎的标准,OpenGL的绘图质量毋庸置疑,是最高的,OpenGL的编程相对的也会比较复杂,但是上手很简单,OpenGL用来追求完美的绘图精确度,而且通常有各种辅助库可以用来往其他设备上输出数据,比如打印机。

  DirectX的专为游戏而生,它的绘图精度满足一般游戏的所需,而且DirectX还包含了不少用来在游戏中处理其他数据的辅助库,包括声音数据,输入输出,等等等等。

  所以,想专精追求绘图,OpenGL是首选,如果要编程效率和其他功能DirectX是首选。

5. 羡辙-着色器-卡通渲染 https://zhuanlan.zhihu.com/p/25595069

http://www.cnblogs.com/wanbo/p/6754066.html[图解WebGL&Three.js工作原理](http://www.cnblogs.com/wanbo/p/6754066.html)

Three.js入门指南https://read.douban.com/ebook/7412854/

 

 

9-26. 邮科院被黑

9-27. 

1.VPN原理

2.
SSH原理与利用(一):远程登录http://www.ruanyifeng.com/blog/2011/12/ssh\_remote\_login.html

3.cnpm实在好用!!!

gulp环境中 gulp-sass为什么一直安装败北?

https://www.zhihu.com/question/48845226/answer/113193051

  1. Gulp 方法

http://www.cnblogs.com/White-Quality/p/5756106.html

率先,gulp的源码里不曾任何一片段是概念pipe的。

https://segmentfault.com/q/1010000003861104?sort=created

gulp的pipe方法是根源nodejs stream API的。
gulp本身是由一多元vinyl模块协会起来的。

http://www.ydcss.com/archives/424

 

  1. 6.       总括机工程与应用

http://muchong.com/html/201303/5591922.html

http://muchong.com/bbs/journal\_cn.php?view=detail&jid=358

发表评论

电子邮件地址不会被公开。 必填项已用*标注