JavaScript 面试题讲解06
1、考的是私有化变量
function Person(name, age, sex){
var a = 0;
alert(a);
this.name = name;
this.age = age;
this.sex = sex;
function sss(){
a ++;
document.write(a);
}
this.say = sss;
}
var operson = new Person();
operson.say();// 1
operson.say();// 2
var operson1 = new Person();
operson1.say();// 12、微店的题
形参 x 相当于 var x; 删除不了,删除不了该是什么是什么
(function(x){
delete x;
return x;
})(1);2、考的是 typeof arguments
arguments 是类数组,类数组也是对象,就算是数组也是 object
function test(){
console.log(typeof(arguments));
}
test(); // object3、 h = 后面是一个表达式,写到表达式里的a没有了,a没有了,a执行不了就报错了,
var h = function a(){
return 23;
}
console.log(typeof a());// a is not definede报错了error:a is not definede
4、随机打乱原数组顺序,然后在一次性返回
5、选择你熟悉的一种放松实现javascrip对象的继承。
圣杯模式,背也背下来。
问继承就说圣杯,就完事了
6、实现Object类型的clone()方法
深度克隆
6、尝试优化以下代码,使代码看起来更优雅
function retDate(day) {
switch(day){
case 1:
document.write("Monday");
break;
case 2:
document.write("Tuesday");
break;
case 3:
document.write("Wednesday");
break;
case 4:
document.write("Thursday");
break;
case 5:
document.write("Friday");
break;
case 6:
document.write("Saturday");
break;
}
}优化
function retDate(date) {
var arr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'];
var ret = arr[date - 1];
if(ret == undefined){
return 'error'; // 超出数组范围返回error
}else{
return ret;
}
}7、HTML布局实现,头尾固定,中间自适应
三栏布局,
头尾是左右,中间自适应
8、css中选择器有哪些?
id、class、通配符、伪类、伪元素、属性选择器
9、Javascript有哪些数据类型
数据分两类原始值、引用值
数据类型:string、number、boolean、undefiende、object、function
看到一些面试题,说类了,类是静态语言里的叫法,java、c++里面叫类,js里叫构造函数
10、作业
1. 一个字符串由 [a - z] 组成,请找出该字符串第一个只出现一次的字母
2. 字符串去重
第一题是阿里巴巴的题
"erpqiuepiaupoqiqwerbyqpwioweryye" a和b只出现了一次,把a挑出来,第一个只出现一次的字母
字符串可以向数组一样取
1. str[0]
2. str.charAt(0)
字符串打散
var str = 'daerszghjdfgasrik';
var str2 = str.split("");
console.log(str2); // ['d', 'a', 'e', 'r', 's', 'z', 'g', 'h', 'j', 'd', 'f', 'g', 'a', 's', 'r', 'i', 'k']