JS - 有趣的面试题】的更多相关文章

for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000); } //这个例子执行完输出什么结果? //答案是 5,5,5,5,5 //如果想要输出0,1,2,3,4改怎么实现? //其中一种方案就是把var换成let就可以了.let的块级作用域在这里就体现出来了. for (let i = 0; i < 5; i++) { setTimeout(function() { console.log(…
题目1: 回答以下代码,alert的值分别是多少?…
1.首先下面代码输出什么? for (var i = 0; i < 5; i++) { console.log(i); } 输出:0 1 2 3 4 2.上面只是普通的输出,没有陷阱再看下面这个题(套路开始了) for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i); } 输出:5 5 5 5 5 setTimeout 会延迟执行,那么执行到 console.log 的时候,其实 i…
 壹 ❀ 引 Foo.getName算是一道比较老的面试题了,大致百度了一下在17年就有相关文章在介绍它,遗憾的是我在19年才遇到,比较奇妙的是现在仍有公司会使用这道题.相关解析网上是有的,这里我站在自己的理解做个记录,也算是相关知识的一次复习,题目如下,输出过程也直接标出来了: function Foo() { getName = function () { console.log(1); }; return this; }; Foo.getName = function () { conso…
今天朋友共享了一道js中经典的面试题,需求是这样的 给定你任意一个字符串,让你写出一个算法,求算出该字符串中出现次数最多的一个字符,并将其结果输出 刚拿到这道题的第一感觉便是定义一个count计时器,然后通过for循环 里面嵌套if判断,但是这样的话貌似并不是一个很好的解决方案 因为你并不知道该字符串是数字还是字母和 特殊符号,又或者是这三者的组合形式,所以,这种方案就显得极其的麻烦和繁琐了 所以有一个算是比较好的解决方案,代码如下 //判断一个随意字符串中出现次数最多的字母,并判断出出现过几次…
说是面试题,其实也相当于是对js事件部分知识点的一个总结.简单内容一笔带过,了解详情我都给出了参考链接,都是之前写的一些相关文章.JavaScript本身没有事件模型,但是环境可以有. DOM:addEventListener.removeEventListener.dispatchEventIE-DOM:attachEvent.detachEvent.fireEventjQuery:on.off.trigger 一.描述js里事件的三个阶段 捕获.处于目标阶段.冒泡阶段(IE8以下只支持冒泡)…
群里看到的一道前端JS面试题.我以为我会,其实我错了.找了很多资料,写下来. var i,j,k; for( i = 0 , j = 0; i < 10 , j < 6; i++ , j++ ) { k = i+j; } document.write(k); 控制台结果:…
转自 http://www.codeceo.com/article/one-javascript-interview.html function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { alert (2);}; Foo.prototype.getName = function () { alert (3);}; var getName = function (…
闭包 1.正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function scope内默认有个名为Global的全局引用(有了这个引用,就可以直接调用 Global 的属性或方法) 2.凡是在闭包域内声明的变量或方法,外部无法直接访问 3.闭包域可以访问外部的变量或方法 (上图为 chrome 下 debug 环境) 当在一个闭包域内包含另一个闭…
今天遇到关于javascript原型的一道面试题,现分析下: 原题如下: function A(){ } function B(a){ this.a = a; } function C(a){ if(a){ this.a = a; } } A.prototype.a = 1; B.prototype.a = 1; C.prototype.a = 1; console.log(new A().a); console.log(new B().a); console.log(new C(2).a);…
較简单,我须要把一个导航页的数据整理好写入数据库.一个比較直观的方法是对html文件进行分析.通用的方法是用php的正則表達式来匹配.可是这样做开发和维护都非常困难,代码可读性非常差. 导航页的数据都是规则的排列在DOM树其中的,用JS能够用几个循环轻松的对其进行操作,并且JS须要依赖浏览器,操作数据库非常困难.事实上PHP就有现成的类库对DOM树种的节点进行增删改查操作,在此做一些笔记. 这里涉及到2个类 DOMDocument 和 DOMXPath. 事实上思路比較明白,就是通过DOMDoc…
2017-01-06 Tomson JavaScript 转自 https://segmentfault.com/a/1190000003818163 闭包 1.正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function scope内默认有个名为Global的全局引用(有了这个引用,就可以直接调用 Global 的属性或方法) 2.凡是在闭包…
css 选择符有哪些 通配选择符 *类选择符 classid选择符 id属性选择符 input[name=button]包含选择符 类似 div span子对象选择符 类似 div > span apply() 和 call()的区别  ==和===的区别  null和undefined的区别 apply和call参数不同 call可以传多个参 apply只能传二个参 双等号只要值相等就为真 三等号 值和类型必须都相同才为真 null 指向了一个空的对象 可以看做一个空指针 不占用内存 unde…
1.DOM和BOM的区别 DOM:document object model;文档对象模型,提供操作页面元素的方法和属性BOM:browser object model;浏览器对象模型,提供一些属性和方法可以操作浏览器 2.JS有几种引入方式 1.行内式 直接在标签中写js代码 2.内嵌式 可以有多个script标签,从上到下 3.外联式 直接导入script标签,相对路径 4.导入式 import 3.innerHTML 和innerText : 区别 innerHTML 可以识别标签: in…
一. var arr = []; for (var i = 0; i < 3; i++) { arr[i] = function() { console.log(i+'__') // 3 3 3 } } arr[0](); arr[1](); arr[2](); 执行上下文 for循环开始时,i 作为一个全局变量,每次循环都将 function 放进 arr,但 function 没有执行 循环结束,全局变量 i 的值已经变为了 3,这时再执行函数 function 执行结果 3 3 3 二.…
1,js有哪些数据类型,数据类型的判断函数? String,Number,Boolean,Null,Undefined,Object 判断函数有:typeof,instanceof,constructor,prototype 接下来我们一一对这些进行举例子. var a = 'nihao'; var b = 222; var c = [1,2,3]; var d = new Date(); var e = function(){alert('hanshu');}; var f = functio…
一.JS的执行特点    源于单线程的特性, JS在一段时间内只能执行一部分代码, 那么, 当有多块代码需要执行时, 就需要排队等候了.   二.单线程与异步事件 (1) 什么是异步事件?     异步事件是像鼠标点击.计时器释放.XMLHttpRequest请求完成这样的动作, 由于我们不知道它何时执行, 所以, 可以认为它是不同步的(这些说明只能作为帮助理解的参考, O(∩_∩)O).   (2) 异步事件是否会受到单线程的影响?     答案是肯定的: 异步事件也必须排队等候(即异步事件对…
这道面试题明显是要用到正则表达式来解决的,由于太久没有写正则表达式了,一时之间竟然写不出来,所以记录一下笔记,下面直接上代码: function parseUrl(str) { // 判断是否传入参数 if (str) { var obj = {}; var queryArr = []; // 正则表达式规则 var re = /^(http\w?):\/\/([0-9a-zA-Z\.]+)([a-zA-Z0-9\/]+)\?([a-zA-Z0-9\=\&]+)#([0-9a-zA-Z\.]+)…
//eval就是计算字符串[可以放任何js代码]里的值 . var str1='12+3'; eval(str1); . var str2='[1,2,3]'; eval(str2[]); .eval('alert("abc")');//弹出abc .var str="function show(){alert('love you');}"; eval(str); show(); .eval--->json字符串 1.如果对如上用户名,邮箱验证输入验空,传统的…
1.javascript的typeof返回哪些数据类型 number string boolean Object function underfind 2.例举3种强制类型转换和2种隐式类型转换?强制(parseInt,parseFloat,number)隐式(== – ===) 3.split() join() 的区别前者是切割成数组的形式,后者是将数组转换成字符串 4.数组方法pop() push() unshift() shift()Push()尾部添加 pop()尾部删除Unshift(…
https://www.jianshu.com/p/f1f39d5b2a2e 1. javascript的typeof返回哪些数据类型. 答案:string,boolean,number,undefined,function,object 2. 例举3种强制类型转换和2种隐式类型转换? 答案:强制(parseInt,parseFloat,number) 隐式(== ===) 3. split() join() 的区别 答案:前者是将字符串切割成数组的形式,后者是将数组转换成字符串 4. 数组方法…
题目一: //有关于原型继承的代码如下:function Person(name) {   this.name = name;}Person.prototype = {     getName : function() {    return this.name;    }}function Student(name, id) {     Person.call(this, name)    this.id = id;} //接下来的一行,我们提供了有三种写法://第一种:Student.pro…
(-1)写在前面 都快去北京了,硬生生的安排一场java考试,对于那些特别细节的东西我忘了吧也不觉得有什么不好,以前都记得,也都见过,只不过平时不常用连接断了,但是你死记硬背是没用的,一段时间后还是会忘,唯一的途径就是多做东西,理论联系实际,相反这道题我感觉很有意思,也在网上看到了很多解释,觉得都有所不足,下面是我给出的答案. (0)详细解释 设一个老师的生日为M月N日.把M告诉学生甲(即学生甲知道老师出生的月份),把N告诉学生乙(即学生乙知道老师出生的日).现有如下日期是公开的:3月4日,3月…
输出以下代码的结果 function fun(n,o){ console.log(o); return { fun:function(m){ return fun(m,n);//[1] } } } var a=fun(0); a.fun(1); a.fun(2); a.fun(3); var b=fun(0).fun(1).fun(2).fun(3); var c=fun(0).fun(1); c.fun(2); c.fun(3); 解析: 代码转换一下: function _fun_(n,o)…
类型转换问题 console.log(null>=0); console.log(null<=0); console.log(null==0); console.log(undefined == 0); console.log([] == ![]); console.log(0 == "0"); console.log(1 == "true"); console.log(false == "false"); console.log(f…
function getPersonInfo(one, two, three) { console.log(one); console.log(two); console.log(three); } const person = "Lydia"; const age = 21; getPersonInfo`${person} is ${age} years old`; A: Lydia 21 ["", "is", "years old&…
1 . 给一个连字符串例如:get-element-by-id转化成驼峰形式. var str = "get-element-by-id"; var reg = /-\w/g; // 匹配横杆以及之后的一个字符,全局匹配 console.log(str.replace(reg,function($0){ return $0.slice(1).toUpperCase(); // 匹配到到是-e -b -i 形式截取后一个字符转成大写 })); 2 . 匹配二进制数字 var str =…
今天继续分享js常见的面试题,求数组最大值,最小值,这里列举4种常见解法,还有其他方法也可以实现,读者知道可以私信我,我将把意见列举到博客中,欢迎提出意见. 第一种,利用数组排序 var arr=[3,4,5,1,2,9,8,7]; arr.sort(function(a,b){ return a-b; }) var min=arr[0]; var max=arr[arr.length-1]; console.log(min); console.log(max); 第二种,用eval方法(不建议…
金三银四搞事季,前端这个近年的热门领域,搞事气氛特别强烈,我朋友小伟最近就在疯狂面试,遇到了许多有趣的面试官,有趣的面试题,我来帮这个搞事 boy 转述一下. 以下是我一个朋友的故事,真的不是我. for (var i = 0; i < 5; i++) { console.log(i); } “小伟,你说说这几行代码会输出什么?” 当面试官在 Sublime 打出这几行代码时,我竟有点蒙蔽.蛤?这不是最简单的一个循环吗?是不是有陷阱啊,我思索一下,这好像和我看的那个闭包的题很像啊,这面试官是不是…
面试题分类: 1.java 基础面试题 Java基础中对于io 中文件的读.写,util中的list map set这些要分清楚 还有线程.socket 都需要了解下 参考链接:http://blog.csdn.net/jackfrued/article/details/44921941 2.数据库的面试题 参考链接:http://blog.csdn.net/zhanghaotian2011/article/details/8904365 3.Js.jsp面试题 Js问题一般会问ajax的原理…