javascript
关于JS的一些面试题
一、填空簡答
1、console.log 怎么打印有顏色的字體?
2、“15”+5 的結果是?“15”-5 的結果是?
3、1 + - + + + - + 1 結果是?
4、(function() { var x = y = 1;})(); console.log(x); //結果是?console.log(y);//結果是?
5、var arr1 = [1,2],arr2=[1,2],arr3 = arr1;
1)、arr1 === arr2; arr1 === arr3 結果是?
2)、[][]; [1,2][1,2] 結果是?
6、請問 (function(i){ return i || “Tuesday” },“Monday”) 的結果是什么?
7、typeof(null) 結果是什么?void(0) 的結果?null instanceof Object 的結果?
8、假設數組 company 中存放多個人員的信息,每個人員信息由 名字 name 和年齡 age組成,如{name:“Marc”,age:18},用JS按從年齡小到大排序
9、執行下面的函數,會輸出什么?
function Fx(){
this.a = 1;
this.b = 2;
}
Fx.prototype.getInfo = function(){
console.log(this.a);
}
const fx = new Fx();
const obj = {
a:3,
getInfo: fx.getInfo
}
fx.getInfo();
obj.getInfo();
10、有數組 var arr= [1,2,3],哪些方法可以判斷是 Array 類型?
11、var a = b = c = d = 1; 那么 console.log(++a,–b,c++,d–) 分別是多少?
12、var n = "hello "; n.name = “world”; 那么 console.log(n + n.name) 會輸出什么?
13、var min = Math.min(); var max = Math.max();那么 console.log(min < max) 結果是?
14、執行下面的函數,會輸出什么?
var n = 1;
function Fn(){
console.log(n);
var n = 2;
console.log(this.n);
console.log(n);
this.n = 3;
}
var f1 = Fn();
var f2 = new Fn();
15、執行下面的代碼,會輸出什么?
var ary = Array(3);
ary[0] = 2;
var ret = ary.map(function(elem) {
return “1”;
});
console.log(ret);
16、匿名函數和箭頭函數有什么不同?
二、問答
1、setTimeout 和 setInterval()
2、說說 JS 的原型鏈,有什么特點?
3、什么是柯理化?寫一個
4、什么是 https? https 一定安全嗎?如何解決?
5、描述 webpack 打包的優化原理。
6、Localstorage、cookies、sessionStorage 區別
三、ES6
1、[1,2,3].fill(4)的結果是?
2、for…of 和 for…in 區別?
3、下列數組中找出 age =19 的元素,用 ES6 的 api:
let company = [ {name:“a”,age:38}, {name:“b”,age:24}, {name:“c”,age:69}, {name:“d”,age:19} ]
4、 有數組:var arr = [1, 2, 3, 4, 4]; 有哪些方法可以去除重復項,用 ES6 的 api:
5、
function demo(i,…j){
console.log(this.i,i,j.join(","));
};
1)、demo(“a”,“b”,“c”,“d”) ; console.log輸出什么?
2)、demo.call({i:1},“e”) ; console.log輸出什么?
6、以下代碼,怎么做到依次輸出0到9?
var arr = [];
for (var i = 0; i < 10; i++) {
arr.push(function() { console.log(i) })
}
arr.forEach(function(fn) {
fn()
})
答案:
一、填空
1、
console.log("%c顏色字體",“color:red”);
可 F12 參考百度首頁
2、“155”,10
運算符要求兩個操作數都是數字,如果不是,會強制轉換成數字,所以結果就變成了:15 - 5 = 10
3、2
4、x is not defined,1
5、1). false,true 2).false,false
6、“Monday”
7、“object”,undefined,false
8、company.sort((a,b)=>a.age-b.age); console.log(company);
9、1,3
10、五種方法:
1)、arr instanceof Array;
2)、arr.constructor === Array
3)、Array.prototype.isPrototypeOf(arr)
4)、Array.isArray(arr)
5)、{}.toString.call(arr)="[object Array]" //等同:Object.prototype.toString.call(arr)="[object Array]"
11、2 0 1 1
12、hello undefined
13、false //實際 min>max,因為:
Math.min: 如果沒有參數,結果為Infinity
Math.max:如果沒有參數,結果為-Infinity。
14、undefined,1,2
undefined,undefined,2
考察全局/局部變量、變量提升、this 指向等
15、[“1”, empty × 2]
16、相比較匿名函數,箭頭函數:
1).函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象
2).不可以當作構造函數,也就是說,不可以使用new命令,否則會報錯
3).不可以使用arguments對象,該對象在函數體內不存在。如果要用,可以用 rest 參數代替
二、問答
1~5:待更新、、、
6、cookies是為了標識用戶身份而存儲在用戶本地終端上的數據,始終在同源http請求中攜帶,即cookies在瀏覽器和服務器間來回傳遞,而sessionstorage和localstorage不會自動把數據發給服務器,僅在本地保存。
存儲大小的限制不同。cookie保存的數據很小,不能超過4k,而sessionstorage和localstorage保存的數據大,可達到5M。
數據的有效期不同。cookie在設置的cookie過期時間之前一直有效,即使窗口或者瀏覽器關閉。sessionstorage僅在瀏覽器窗口關閉之前有效。localstorage始終有效,窗口和瀏覽器關閉也一直保存,用作長久數據保存。
作用域不同。cookie在所有的同源窗口都是共享;sessionstorage不在不同的瀏覽器共享,即使同一頁面;localstorage在所有同源窗口都是共享
三、ES6
1、[4, 4, 4]
2、for in是ES5標準,遍歷key;for of是ES6標準,遍歷value。
3、for (let i of company){ i.age === 19 && console.log(i)
4、
1)、Set
const set = new Set([1, 2, 3, 4, 4]);
console.log([…set]);
2)、Map
var arr = [1, 2, 3, 4, 4];
function unique (arr) {
const map = new Map();
return arr.filter((a) => !map.has(a) && map.set(a, 1));
}
console.log(unique(arr));
5、這一題考察的比較全面: this 指向,變量,call,類型轉換,ES6 的擴展運算符號
結果:1). undefined “a” “b,c,d” 2). 1 “e” “”
6、
1). 閉包
var arr = [];
for (var i = 0; i < 10; i++) {
arr.push((function(val){
return function(){
console.log(val);
}
})(i))
}
arr.forEach(function(fn) {
fn()
})
2). ES6 let
總結
以上是生活随笔為你收集整理的关于JS的一些面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js教程
- 下一篇: JS中三种字符串连接方式及其性能比较