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();// 1
2、微店的题
形参 x 相当于 var x; 删除不了,删除不了该是什么是什么
(function(x){ delete x; return x; })(1);
2、考的是 typeof arguments
arguments 是类数组,类数组也是对象,就算是数组也是 object
function test(){ console.log(typeof(arguments)); } test(); // object
3、 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']