最近在面試,一些公司會有筆試題,有些本身確實作的很差,因此把它記錄下來,鞏固複習。html
部分沒有完善,抽時間回來補充html5
怎樣實現a對象能夠調用b對象的方法?git
考的是繼承,b要有a的方法,繼承有3種web
function classA(name) {
this.name = name;
this.showName = function() {
alert(this.name);
}
}面試
function classB(name) {
classA.call(this, name);
}gulp
var oB = new classB("Black Cat");
oB.showName(); // Black Catcanvas
h5有哪些新標籤數組
header, nav, section, article, aside, footer, details, summary瀏覽器
headercookie |
定義文檔或節的頁眉 |
nav |
定義導航連接的容器 |
section |
定義文檔中的節 |
article |
定義獨立的自包含文章 |
aside |
定義內容以外的內容(好比側欄) |
footer |
定義文檔或節的頁腳 |
details |
定義額外的細節 |
summary |
定義 details 元素的標題 |
<!DOCTYPE> 的做用
定義文檔的類型,讓瀏覽器正確地顯示文檔(html5: <!DOCTYPE html>)
表單元素
Input, textarea, option, select , button (html5新增:datalist, keygen, output)
Html5新增的input輸入類型
html5新特性
數組去重的實現
方法一:用是indexOf方法:
var arr = [1, 2, 3, 4, 4, 1, 21, 3, 12, 3, 4, 5324, 234, 3, 2, 1, 3]
function unique(res) {
var result = [];
for (var i = 0; i < res.length; i++) {
if (result.indexOf(res[i]) == -1) {
result.push(res[i])
}
}
return result;
}
console.log(unique(arr));
方法二:
var arr2 = [1,2,4,5,3,2,1,3,4,2,4,5,4,234];
var o = {};
var resultArr = [];
for(var i=0;i<arr2.length;i++){
if(!o[arr2[i]]){
resultArr.push(arr2[i]);
o[arr2[i]] = 2
}
}
console.log(resultArr)
js實現clone方法,對5中數據類型進行復制
function clone(obj) {
var o;
if (typeof obj == "object") {
if (obj === null) {
o = null;
} else {
if (obj instanceof Array) {
o = [];
for (var i = 0, len = obj.length; i < len; i++) {
o.push(clone(obj[i]));
}
} else {
o = {};
for (var j in obj) {
o[j] = clone(obj[j]);
}
}
}
} else {
o = obj;
}
return o;
}
說說對gulp的瞭解
記住5個API
gulp.tesk() // 定義任務
gulp.src() // 獲取流(虛擬的文件對象流),有路徑,文件名,內容等信息
gulp.dest() // 輸出文件(寫文件)
gulp.watch() // 監聽文件變化
gulp.run() // 用來執行任務
// pipe() 管道
Git版本管理的經常使用命令
回頭來整理他們各自的做用
git add .
git checkout xxx
git commit –m xxx
git push origin master
git pull origin master
git branch
git checkout –b xxx / git checkout xxx
git merge xxx
360金融筆試題
寫在前面:有些題目本身還以爲是面試官出的題目有問題呢,實際上並非,只是都有他的目的。
1.隨便列舉4個或多個BOM對象
一、window對象 ,是JS的最頂層對象,其餘的BOM對象都是window對象的屬性;
二、document對象,文檔對象;
三、location對象,瀏覽器當前URL信息;
四、navigator對象,瀏覽器自己信息;
五、screen對象,客戶端屏幕信息;
六、history對象,瀏覽器訪問歷史信息;
2.img元素的alt和title的異同
alt屬性和title屬性的區別是前者是在圖片沒法加載的時候纔會顯示的其值,而title是在圖片正常加載鼠標劃上去顯示的值,雖然alt也有後者的功能,可是隻是在低版本的ie瀏覽器才支持,高版本及標準瀏覽器不支持這個 功能了。
3.Javascript有哪幾種數據類型
基本類型:String Number Boolean Null undefined
引用類型:Object
4.下面這段的執行結果
<script>
var a = 1,b = 0;
<!--
b = 2;
-->
if(a<b) alert('a is smaller');
else slert('b is smaller')
</script>
結果:彈出a is smaller
5.說出下面腳本的執行結果,並說明緣由
var a;
if(a == undefined) alert('undefined');
if(a == null) alert('null')
結果:先彈出 undefined。關閉後再彈出 null。緣由:這裏「==」會強制類型轉換,a聲明瞭,但未定義,因此a是undefined, 而undefined == null也返回true,因此兩個alert都會執行
6.下面腳本的執行結果:
考的是進制的問題,這塊本身須要去增強
var x = 011, y= 0x10, z= 1.2e2;
alert(x+y+z)
結果:145 (9+16+120)
7.下面腳本的執行結果:
var a=1,b=2;
function c(){
alert('c1')
}
function test(){
alert(a);
alert(b);
c();
function b(){
return 0
}
var a=5,b=6;
function c(){
alert('c2')
}
}
test();
彈出undefined
彈出:function b(){
return 0
}
彈出:c2
8. 下方腳本能正確alert出2嗎?若是不行,怎麼解決?
for (var i = 0, l = 10, obj = []; i <= l; i++) {
obj[i] = function() {
alert(i);
}
}
obj[2]()
結果:不能,alert的是11,解決方案是利用閉包
for (var i = 0, l = 10, obj = []; i <= l; i++) {
(function(i) {
obj[i] = function() {
alert(i);
}
})(i)
}
obj[2]()
9. 說出下方腳本的執行結果
var array = [1,2];
deal(array, array);
function deal(arrA, arrB){
arrA = [3,4];
console.log(array[1]); // 2
arrB[1] = 9; // arrB[1] = 9, arrB爲[1,9] arrB是array引用,array爲[1,9]
console.log(array[1]); // 9
}
結果:// 2 // 9