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)
2021-01-11作业(JS)
猜你喜欢
转载自blog.csdn.net/qq_37430247/article/details/112487584
今日推荐
周排行