上午答得不是太好的面試題,記下來查漏補缺,對應的補充一下相應的知識點
1.以下程式碼,alert出來的值是多少?
alert(1&&2); 2
alert(1||2); 1
2.驗證字串的組成規則,第一個須為數字,後面可以是字母,數字,下劃線,總長度為3至50位
/^\d\w{2,49}$/
/是轉義 ^ 是開頭 \d是數字 \w是任意字元 {2,49}是長度 $ 是結束
3.以下程式碼,console的值是多少
window.val = 1;
var json = {
val:10,
dbl:function(){
this.val *= 2;
}
};
json.dbl();
var dbl = json.dbl;
dbl();
json.dbl.call(window);
console.log(window.val + json.val);
複製程式碼
結果是24
4.以下程式碼,console的值是多少
(function(){
var val = 1;
var json = {
val: 10,
dbl: function(){
val*=2;
}
};
json.dbl();
console.log(json.val) 10
console.log(val) 2
console.log(json.val + val); 12
}())
複製程式碼
結果是12
5.以下程式碼,console的值是多少
function C1(name) {
if(name)this.name = name;
}
function C2(name) {
this.name = name;
}
function C3(name) {
this.name = name || 'John';
}
C1.prototype.name = 'Tom';
C2.prototype.name = 'Tom';
C3.prototype.name = 'Tom';
console.log((new C1().name)+ (new C2().name)+ (new C3().name));
複製程式碼
列印結果:Tom+undefined+John
6 .以下程式碼,console的值是多少
var test = (function(i){
return function(){
console.log(i*2)
}
}(2))
test(5);
複製程式碼
列印結果:4
7.寫一段程式碼,讓id位seconds的容器裡面的數字每秒少一,一直變到0
<div id="seconds">60</div><input type="button" value="倒數計時" onclick="test()"/>
function test(){
var num = $('#seconds').html();
var time = setInterval(function(){
num -- ;
if(num == 0){
clearInterval(time)
num = 0
}
$('#seconds').html(num)
},1000)
}
複製程式碼
8. 如下程式碼實現了這樣一個功能。建立了5個按鈕,每個按鈕點選一個會把自身顯示的數字加1,請找出下面程式碼的錯誤與不合理之處,試著給一個你覺得合理的程式碼
<div>
<ul>
<li class="btn">1</li>
<li class="btn">2</li>
<li class="btn">3</li>
<li class="btn">4</li>
<li class="btn">5</li>
</ul>
</div>
<script>
var btnList = document.getElementByTagName('btn');
for(var i=0;i<5;i+=1){
btnList[i].onclick = function(){
this.innerHtml += 1;
}
}
</script>
複製程式碼
9.最後三行,問號處分別可以填哪些值讓表示式成立
function to62(){
function Person(name, age){
this.name = name;
this.age = age;
this.getName = function(){
alert(this.name);
}
}
Person.prototype = {
getAge:function(){
alert(this.age);
}
};
var p = new Person('bob','21');
p instanceof ? == true;
p.constructor == ?;
p.hasOwnProperty(?) == true;
}
to62();
複製程式碼
Person
Object
'age', 'name', 'getName'
10.寫出下列程式碼執行的輸出值
var a = 100;
function test (){
console.log(a);
var a = 10;
console.log(a)
}
test()
複製程式碼
var a = 100;
function test(){
alert(a);
let a = 10;
alert(a);
}
test();
複製程式碼
undefined 10
報錯
11.斐波那契數列:1,1,2,3,5,8,13,21,34,55... 寫方法求第n個數是多少
function fib(n){
if(n==1 || n==2){
return 1;
}
//其它的時候,返回前邊兩個數的相加 前邊一個 n-1 n-2
return fib(n-1)+fib(n-2);
}
var result = fib(12);
console.log(result);
複製程式碼