We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
距离去年找毕业已经有一年多了,记得当时把喜欢的公司全部都罗列出来,一个个疯狂投简历。一听喜欢的公司在哪开宣讲会了,就屁颠屁颠地跑过去,上海杭州哪都跑,远的就坐火车过去,当时的生活还是挺有意思的。 当时把每次的笔试面试都记了下来,校招对社招的参考意义可能不大,但也是个纪念。校招可能偏重理论知识,学习能力。社招更偏重于项目经验,解决问题的能力。
算是中型创业公司吧,记得当时过去笔试,压根就没有前端的题,直接给你java的题目做。 工资比较高,要求也比较高。
数据结构的一道题,算是easy的吧。 解答: 一个具有n个节点的完全二叉树,其叶子节点的个数: n/2 向上取整,或者(n+1)/2 向下取整。 扩展:
解答:
扩展:
解答: 在多线程环境下,每个线程拥有一个栈和一个程序计数器。栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源。其他的资源(比如堆、地址空间、全局变量)是由同一个进程内的多个线程共享。 与线程“绑定”的是栈,用于存储自动变量。每一个线程建立的时候,都会新建一个默认栈与之配合。堆则是通常与进程相关,用于存储全局性的变量,进程建立的时候,会建立默认堆。于是,每一个线程都有自己的栈,然后访问共同的堆。
b(); //undefined var x= 'a'; function b(){ alert(x); var x= 'b'; }
null === undefined; //false null == undefined; //true null instanceof Object; //false undefined instanceof Object; //false
解答: null和undefined是原始类型,所以都不是Object的实例
typeof null; //"object" typeof undefined; //"undefined"
null: 一般表示没有赋值的Object ,空对象指针 undefined: 一般表示没有赋值的原始类型 实际上,undefined值派生自null值,null == undefined; //true
null:
undefined:
null == undefined; //true
A.“” B.undefined C.NaN D.null
C.NaN
"a" !=="a"; //false [] !== []; //true
行内元素:a b br em img i input label span strong
行内元素
块级元素: div h1-h6 hr ul ol table tr
块级元素
美团问的更偏向于原生JavaScript和算法一些,会直接让你手写代码,手写ajax原生代码,反正当时愣住了。
//方法一 var arr = [2,3,4,[55,77,[6,43,2]],33]; function handleArr(arr){ var res = []; function pushNum(arr) { arr.filter(function (val) { if (typeof val !== "object") { res.push(val); } else { pushNum(val); } }); }; pushNum(arr); return res; } handleArr(arr);
//方法二 var arr = [2,3,4,[55,77,[6,43,2]],33]; function handleArr(arr) { var res = []; function pushNum(arr) { for(var i=0;i<arr.length;i++){ if(typeof arr[i] !== "object"){ res.push(arr[i]); }else{ pushNum(arr[i]); } } } pushNum(arr); return res; }
var name = "Bob"; var nameObj = { name : "Tom", showName : function () { console.log(this.name); } }; nameObj.showName(); //"Tom"
var name = "Bob"; var nameObj = { name : "Tom", showName : function () { console.log(this.name); }, waitShowName : function () { setTimeout(this.showName,1000); } }; nameObj.waitShowName(); //"Bob"
//改成匿名函数 var name = "Bob"; var nameObj ={ name : "Tom", showName : function(){ alert(this.name); }, waitShowName : function(){ !function(__callback){ __callback(); }(this.showName); } }; nameObj.waitShowName(); //“Bob”
setTimeout可以看做是一个延迟执行的:
!function(__callback){ __callback(); }(this.showName);
如何改为输出Tom
var name = "Bob"; var nameObj ={ name : "Tom", showName : function(){ alert(this.name); }, waitShowName : function(){ var that = this; //使this值得到维持 setTimeout(function(){ that.showName(); //避免了setTimeout中的匿名函数运行时,匿名函数中的this指向window }, 1000); } }; nameObj.waitShowName(); //Tom
扩展1:
var name = "window"; var Bob = { name: "Bob", showName: function(){ alert(this.name); } }; var Tom = { name: "Tom", showName: function(){ var fun = Bob.showName; fun(); } }; Tom.showName(); //window
等价于
var name = "window"; var Tom = { name: "Tom", showName: function(){ var fun = function(){ alert(this.name); //this值没有得到维持 } fun(); } }; Tom.showName(); //window
扩展2:
var name = "Bob"; var nameObj ={ name : "Tom", showName : function(){ alert(this.name); }, waitShowName : function(){ var that = this; setTimeout(that.showName(), 1000); } }; nameObj.waitShowName(); // "Tom"
扩展3:
var Bob = { name: "Bob", showName: function(){ alert(this.name); } }; var Tom = { name: "Tom", showName: Bob.showName } Tom.showName(); //Tom
注意:
在浏览器中setTimeout、setInterval和匿名函数执行时的当前对象是全局对象window。
function a(x,y,z) { x = 4; y = 5; z = 6; alert(arguments[2]);//6 } a(1,2,3);
The text was updated successfully, but these errors were encountered:
No branches or pull requests
距离去年找毕业已经有一年多了,记得当时把喜欢的公司全部都罗列出来,一个个疯狂投简历。一听喜欢的公司在哪开宣讲会了,就屁颠屁颠地跑过去,上海杭州哪都跑,远的就坐火车过去,当时的生活还是挺有意思的。
当时把每次的笔试面试都记了下来,校招对社招的参考意义可能不大,但也是个纪念。校招可能偏重理论知识,学习能力。社招更偏重于项目经验,解决问题的能力。
蜻蜓FM
算是中型创业公司吧,记得当时过去笔试,压根就没有前端的题,直接给你java的题目做。
工资比较高,要求也比较高。
1. 700个节点的完全二叉树有几个叶节点? 350
数据结构的一道题,算是easy的吧。
解答:
一个具有n个节点的完全二叉树,其叶子节点的个数: n/2 向上取整,或者(n+1)/2 向下取整。
扩展:
2.已知先根序列,中根序列,求后根序列
3.多线程中栈与堆是公有的还是私有的? 栈私有,堆公有
解答:
在多线程环境下,每个线程拥有一个栈和一个程序计数器。栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源。其他的资源(比如堆、地址空间、全局变量)是由同一个进程内的多个线程共享。
与线程“绑定”的是栈,用于存储自动变量。每一个线程建立的时候,都会新建一个默认栈与之配合。堆则是通常与进程相关,用于存储全局性的变量,进程建立的时候,会建立默认堆。于是,每一个线程都有自己的栈,然后访问共同的堆。
4.排序适用情况
5.进程 线程
6.编程
大华
1.输出什么
2.判断
解答:
null和undefined是原始类型,所以都不是Object的实例
null:
一般表示没有赋值的Object ,空对象指针undefined:
一般表示没有赋值的原始类型实际上,undefined值派生自null值,
null == undefined; //true
3.parseInt可能的返回值
A.“”
B.undefined
C.NaN
D.null
4.判断
5.优化页面加载速度
6.行内元素和块级元素的区别
行内元素
:a b br em img i input label span strong块级元素
: div h1-h6 hr ul ol table tr7.语义化标签。
美团面试(10.16)
美团问的更偏向于原生JavaScript和算法一些,会直接让你手写代码,手写ajax原生代码,反正当时愣住了。
1.自我介绍
2.Ajax原生代码
3.Jason
4.[2,3,4,[55,77,[6,43,2]],33]→[2, 3, 4, 55, 77, 6, 43, 2, 33] 递归方法
5.Dom操作,添加节点,输出节点内容
6.排序算法
7.二叉树
8.This指向问题
setTimeout可以看做是一个延迟执行的:
如何改为输出Tom
扩展1:
等价于
扩展2:
扩展3:
注意:
在浏览器中setTimeout、setInterval和匿名函数执行时的当前对象是全局对象window。
9.Js中click绑定另一种写法
同花顺
1.移动开发或者PC开发中遇到过哪些兼容问题,都是怎么解决的,举三个案例。
2.会弹出什么?
3.TCP/IP建立连接的过程(3-way shake)
4.不使用中间变量交换两个数的值,求多种方法。
5.第一个人10岁,第二个人比第一个人大2岁,依次递推,递归方式算出第8个人几岁。
The text was updated successfully, but these errors were encountered: