在讲apply和call之前,我们需要先清楚在js中,this指向的是什么. 大家可以参考一下阮一峰老师写的关于JavaScript中this的原理讲解文章:http://www.ruanyifeng.com/blog/2018/06/javascript-this.html 关于apply和call的用途,用一句话来简单概括就是改变一个对象中this的指向,这两个方法的作用都是一样的,唯一不同的是传入参数的不同,下面我们看一下这两个方法的具体用法: /* apply */ function.a…
ES6 主要是为了解决 ES5 的先天不足,在原先ES5的基础上新增了许多内容,本篇文章将列举出ES6中新增的10大特性. 一. let 和 const 与var不同,let和const都是用于命名局部变量,都是块级作用域.具体可参考阮一峰老师的文章:http://es6.ruanyifeng.com/#docs/let. 这三者的用法区别如下: var val = "全局变量"; { let val = "局部变量"; console.log(val); // 局…
Ajax 的原理简单来说是在⽤户和服务器之间加了—个中间层( AJAX 引擎),通过XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后⽤ javascrip t 来操作 DOM ⽽更新⻚⾯.使⽤户操作与服务器响应异步化.这其中最关键的⼀步就是从服 务器获得请求数据 Ajax 的过程只涉及 JavaScript . XMLHttpRequest 和 DOM . XMLHttpRequest是aja x的核⼼机制 /** 1. 创建连接 **/ var xhr = nul…
HTML5学堂-码匠:求某个数字的阶乘,很难吗?看上去这道题异常简单,却不曾想里面暗藏杀机,让不少前端面试的英雄好汉折戟沉沙. 面试真题题目 如何求"大数"的阶乘(如1000的阶乘.2000的阶乘) 明确一下这些词语和概念没有什么不好~一方面能够让自己能够更专业的谈论知识,另一方面,在面试的时候也能够应对一些"爱问前端名词"的面试官~ 或许这是你的第一反应 So easy!正常一个一个乘出来不就好了? for循环即可,再高大上点,用个递归不就搞定了? 或许这是你的第…
用面试题,复习一下,js基础. 1.综合题 function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { alert (2);}; Foo.prototype.getName = function () { alert (3);}; var getName = function () { alert (4);}; function getName() { aler…
1.说说你对HTML语义化的理解? (1)什么是HTML语义化? 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析. (2)为什么要语义化? 为了在没有css的情况下,页面也能呈现出很好的内容结构.代码结构:为了裸奔时好看: 用户体验:例如title.alt用于解释名词或解释图片信息.label标签的活用: 有利于SEO:和搜索引擎建立良好的沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字:…
(废话几句:这个是网上找来的一份模板,高亮部分为自己修改内容,且此面试题很像当年高考的“必考题”性质,触类旁通吧) 1. 输入框UI是否预计了输入内容长度(尽量完整的显示输入内容): 2. 输入框之前的标题是否显示正确: 3. 对特殊字符的处理,尤其是输入信息需要发送到数据库的.特殊字符包括:'(单引号)."(双引号).[](中括号).()(小括号).{}(大括号).:(分号).<>(大于小于号)…… 4. 对输入框输入超过限制的字符的处理,一般非特殊的没有作出限制的在255byte…
1.什么是线程池 线程池的基本思想是一种对象池,在程序启动时就开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理.当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源. 2.使用线程池的好处 减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务. 运用线程池能有效的控制线程最大并发数,可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每…
1.浏览器页面由哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层 分别是:HTML.CSS.JavaScript 作用:HTML实现页面结构,CSS完成页面的表现与风格,JavaScript实现一些客户端的功能与业务. 2.行内元素有哪些?块级元素有哪些? 空(void)元素有那些? 行内元素:a.b.span.img.input.strong.select.label.em.button.textarea块级元素:div.ul.li.dl.dt.dd.p.h1-h6.bloc…
var a=10; (function(){ console.log(a); var a=100; })(); 结果:输出undefined 解释: function中有var a=100; 声明会提升到function最开头,但赋值发生在最后. 上面的代码等价于 var a=10; (function(){ var a; console.log(a); a=100; })(); 打印a的时候,a并没有在function内赋值,所以是undefined.…