1.写出自己理解的原型和原型链
*********************************
答:每个对象都有一个__proto__属性,并且指向它的prototype原型对象
每个构造函数都有一个prototype原型对象
prototype原型对象里的constructor指向构造函数本身当一个对象调用自身不存在的属性/方法时,就会去自己 [proto] 关联的前辈 prototype
对象上去找,如果没找到,就会去该 prototype 原型 [proto] 关联的前辈 prototype 去找。
依次类推,直到找到属性/方法或 undefined 为止。从而形成了所谓的“原型链”。================================================================
2.function y(num) {console.log(num);var num = 1;console.log(num);console.log(fn);var fn = function() {console.log(1);}console.log(fn);function fn(){console.log(2);}console.log(fn);
}
y(2);
请写出最终答案。
*********************************
答:2, 1, fn(){console.log(2)}, fn(){console.log(1)}, fn(){console.log(1)}
Ao:{num:undefind,
num :2,function fn(){console.log(2);} var fn = function() {console.log(1);}
}
==============================================================
3.function y() {console.log(num);var num = 1;console.log(num);function num() { console.log(3); }function num() { console.log(5); }console.log(num);
}
y();
请写出最终答案。
*********************************
答:? num() { console.log(5); }, 1, 1
AO:{num:undefind,function num() { console.log(3); }function num() { console.log(5); }var num = 1;}
==============================================================
4.function y() { var num = 1; console.log(num);function num() { console.log(3); }console.log(num);
}
y();
*********************************
答: 1 , 1
Ao:{
num:undefind,var num = 1; //使用var 关键字声明的变量会提升到代码的头部 变量提升function num() { console.log(3); }}
===========================================================
5.for(var i = 0;i<10;i++){ setTimeout(()=>{ console.log(i); },100);}
//写出三种能正常打印0-9的方法
*********************************
答:for(let i = 0;i<10;i++){ setTimeout(()=>{ console.log(i); },100);}for(let i = 0;i<10;i++){ function(){setTimeout(()=>{ console.log(i); },100);}(i)
}
//for(let i = 0;i<10;i++){ setTimeout(()=>{ console.log(i); },100);}
===========================================================
6.密码必须为6-15位的数字、字母、_-的组合。请使用正则表达式验证。
*********************************
答:/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,15}$/
===========================================================
7.//注意审题
function A() {}
function B() {}
B.prototype = Object.create(A.prototype);
B.prototype.constructor = B;
function C() {}
C.prototype = Object.create(B.prototype);
C.prototype.constructor = C;var c1 = new C();
console.log(c1)console.log(c1.prototype === undefined) console.log(c1.__proto__ === C.prototype)console.log(c1.__proto__.prototype === undefined)console.log(c1.__proto__.__proto__ === B.prototype)console.log(c1.__proto__.__proto__.__proto__ === A.prototype)console.log(c1.__proto__.constructor === C.prototype.constructor)console.log(c1.__proto__.constructor.prototype === C.prototype)console.log(c1.__proto__.constructor.prototype.constructor === C.prototype.constructor)console.log(C.prototype.constructor === c1.__proto__.constructor.prototype.constructor)console.log(C.prototype.constructor.prototype === c1.__proto__.constructor.prototype)console.log(C.prototype.constructor.prototype.constructor ===c1.__proto__.constructor.prototype.constructor)console.log(C.prototype.__proto__ === B.prototype)