由于签订了保密协议,不能说出具体那个公司。给出笔试中遇到写错的两道题:
1.显出js程序输出结果:
function Foo(){
}
Foo.prototype.x=1;
var foo = new Foo();
console.log(foo.x); //1
Foo.prototype = {x:2};
var foo2 = new Foo();
console.log(foo.x); //1
console.log(foo2.x); //2
Foo.prototype.x=3;
console.log(foo.x); //1
console.log(foo2.x); //3
分析:构造函数的实例对象的__proto__属性存的是函数原型对象的引用(也就是内存地址),但函数的prototype属性的值改成其它对象的引用,但是实例foo的__proto__的引用没变,一直是{x:1}对象的地址。所以foo.x输出3次都为1.
2.写出一个正则表达式,判定输入的数为1-64:
var regexp = /^[1-9]$|^[1-5][0-9]$|^[6][0-4]$/g,注意要加上^和$,笔试的时候粗心,没加上!