面试记录
2019-03-29 本文已影响0人
爬爬爬爬呀
今天面试的一些笔试题
(function(){
var val = 1;
var json = {
val:10,
dbl:function(){
val*=2
}
};
json.dbl();
alert(json.val+val);//12
}())
function C1(name){
if(name)
this.name = name;
}
function C2(name){
this.name = name;
}
function C3(name){
this.name = name||'John';
}
C1.prototype.name = 'tom'
C2.prototype.name = 'tom'
C3.prototype.name = 'tom'
console.log(new C1().name+new C2().name+new C3().name)//tomundefinedJohn
var test = (function(i){
return function(){
alert(i*2)
}
}(2));
test(5)//4
写一段代码,让id为seconds的容器里面的数字每秒少一,一直变到0
<div id="seconds">5</div>
<input type="button" value="倒计时" onclick="test()">
var seconds = document.getElementById('seconds');
var count = seconds.innerHTML;
function test(){
var timer = setInterval(()=>{
count--;
if(count === 0){
clearInterval(timer)
}
console.log(count);
seconds.innerHTML = count;
},1000)
}
写出下列代码执行的输出值
var a= 100;
function test(){
alert(a)//undefined
var a =1;
alert(a)//1
}
test();
var a= 100;
function test(){
alert(a)//报错
var a =1;
alert(a)//1
}
test();
斐波那契数列:1,1,2,3,5,8...写方法求第n个数是多少
function aa(n){
if(n===1||n===2){
return 1
}if(n>2){
return aa(n-1)+aa(n-2)
}
}
箭头函数和普通函数的区别
1.箭头函数是匿名函数,不能作为构造函数,不能使用new
2.箭头函数不绑定arguments
3.箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值
4.箭头函数没有原型属性
动态路由的实现
把 [1,2,[3],[4,5]]变成[1,2,3,4,5]
vue项目中父组件调用子组件的全部实例
-通过refs
js执行机制
arguments与正常数组的区别
1.数组对象的类型是Array,类数组对象的类型是Object;
2.类数组对象不能直接调用数组API;
3.数组遍历可以用for in和for循环,类数组只能用for循环遍历;
- 类数组对象转为数组对象方法: Array.prototype.slice.call ( arguments );
ajax原理
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。
vue为什么不兼容ie8及以下
因为 Vue.js 使用了 IE8 不能模拟的 ECMAScript 5 特性。Object.defineProperty()