摘要:函數內置不可變,在函數體內整個執行環境中為常量。這兩個方法的用途都是在特定的作用域中調用函數,實際上等于設置函數體內的對象的值。控制表單控件的禁用狀態。生成相對定位的元素,相對于其在普通流中的位置進行定位。
Javasript
1.請定義一個方法,傳入一個string類型的參數,然后將string的每個字符間加個空格返回
spacify("hello world") // => "h e l l o w o r l d" function spacify(str) { return str.split("").join(" "); } 先使用split把字符串分割成數組,然后使用join給每個數組后面添加一個空格并且拼接成字符串
2.如何把這個方法放入 String 對象上面
"hello world".spacify(); String.prototype.spacify = function(){ return this.split("").join(" "); };
3.函數聲明和函數表達式的區別
1.函數聲明創建的函數可以在定義之前就進行調用,而用函數表達式創建的函數不能在被賦值之前進行調用 2.出現這個區別的原因,現在這兩種類型在Javascript function hoisting(函數提升)和運行時機(解析時/運行時)上的差異
4.e.target與e.currentTarget的區別
e.curretnTarge是指注冊了事件監聽器的對象,e.target是指對象里的子對象,實際觸發這個事件的對象
5.在另一個函數中保持this上下文有幾種方法?
1.可以將this賦值給另外一個變量上(self、_this、that),改變上下文之后繼續引用它 2.使用Function.prototype.bind,bind()方法創建一個新的函數, 當被調用時,將其this關鍵字設置為提供的值,在調用新函數時,在任何提供之前提供一個給定的參數序列。 3.使用箭頭函數
6.箭頭函數與傳統的JavaScript函數主要區別
1.對 this 的關聯。函數內置 this 的值,取決于箭頭函數在哪兒定義,而非箭頭函數執行的上下文環境。 2.new 不可用。箭頭函數不能使用 new 關鍵字來實例化對象,不然會報錯。 3.this 不可變。函數內置 this 不可變,在函數體內整個執行環境中為常量。 4.沒有arguments對象。更不能通過arguments對象訪問傳入參數。
7.截取和清空數組
var arr = [1, 2, 3, 4]; arr.length = 2; //截取,arr = [1, 2]; arr.length = 0; //清空,arr will be equal to []
8.獲取數組的最大最小值
var numbers = [1, 3, 5, -10]; var maxInNumbers = Math.max.apply(Math, numbers); //5 var minInNumbers = Math.min.apply(Math, numbers); //-10
9.Js中的new()到底做了些什么?
1.創建一個空對象。 2.屬性和方法被加入到 this 引用的對象中。 3.新創建的對象由 this 所引用,并且最后隱式的返回 this 。 var obj={}; obj.__proto__=fn.prototype; fn.call(obj);
10.eval是做什么的?
它的功能是把對應的字符串解析成JS代碼并運行; 應該避免使用eval,不安全,非常耗性能(2次,一次解析成js語句,一次執行)。
11.哪些操作會造成內存泄漏?
內存泄漏指任何對象在您不再擁有或需要它之后仍然存在。 垃圾回收器定期掃描對象,并計算引用了每個對象的其他對象的數量。如果一個對象的引用數量為 0(沒有其他對象引用過該對象),或對該對象的惟一引用是循環的,那么該對象的內存即可回收。 setTimeout 的第一個參數使用字符串而非函數的話,會引發內存泄漏。 閉包、控制臺日志、循環(在兩個對象彼此引用且彼此保留時,就會產生一個循環)
12.call() 和 apply() 的區別和作用?
區別:apply()與call()作用沒有區別,用法與call()方法稍有區別,就是call()的第二個參數(調用函數使用的參數),是一個一個傳入的;而apply()的第二個參數的值是使用數組的形式傳入的 作用:在Javascript中,每個函數都包含兩個非繼承而來的方法,call和apply。這兩個方法的用途都是在特定的作用域中調用函數,實際上等于設置函數體內的this對象的值。 apply方法接收兩個參數,第一個參數是在其中運行函數的作用域,第二個是一個參數數組或者arguments對象。 call方法與apply方法作用相同,第一個參數也相同,區別在于,其余的參數需要逐個列出。 apply(thisArg, argArray); call(thisArg[,arg1,arg2…]); 是使用call還是apply要看具體的情況。如果你知道所有參數或者參數的數量不多,可以使用call; 如果參數的數量不確定,或者數量很大,或者你收到的是一個數組或者是個arguments對象,則需要使用apply。
13.什么是閉包,閉包的特性,閉包的優點與缺點?
閉包 是指有權訪問另一個函數作用域中的變量的函數,創建閉包的最常見的方式就是在一個函數內創建另一個函數,通過另一個函數訪問這個函數的局部變量 1.函數嵌套函數 2.函數內部可以引用外部的參數和變量 3.參數和變量不會被垃圾回收機制回收 優點是可以避免全局變量的污染,變量和方法私有化,不讓外部修改這些屬性 缺點是閉包會常駐內存,會增大內存使用量,使用不當很容易造成內存泄露Css
1.清除浮動有幾種方式,浮動引起的問題
1.在所有浮動標簽后面添加一個空標簽,css clear:both 弊端添加了無意義的標簽 2.使用overflow給包含浮動元素的父標簽添加css屬性 overflow:auto; zoom:1; zoom:1用于兼容IE6 3.使用css偽類before,該方法只適用于非IE瀏覽器。具體寫法可參照以下示例。使用中需注意以下幾點。一、該方法中必須為需要清除浮動元素的偽對象中設置 height:0,否則該元素會比實際高出若干像素; after{ content:"."; height:0; visibility:hidden; display:block; clear:both; } 浮動元素引起的問題: 1.父元素的高度無法被撐開,影響與父元素同級的元素 2.與浮動元素同級的非浮動元素(內聯元素)會跟隨其后 3.若非第一個元素浮動,則該元素之前的元素也需要浮動,否則會影響頁面顯示的結構
2.IE 8以下版本的瀏覽器中的盒模型有什么不同
IE8以下瀏覽器的盒模型中定義的元素的寬高不包括padding和border
3.CSS 選擇符有哪些?哪些屬性可以繼承?優先級算法如何計算?
1.id選擇器( # myid) 2.類選擇器(.myclassname) 3.標簽選擇器(div, h1, p) 4.相鄰選擇器(h1 + p) 5.子選擇器(ul > li) 6.后代選擇器(li a) 7.通配符選擇器( * ) 8.屬性選擇器(a[rel = "external"]) 9.偽類選擇器(a: hover, li:nth-child) 可繼承的樣式: font-size font-family color, text-indent; 不可繼承的樣式:border padding margin width height ; !important > id > class > tag
4.CSS3新增偽類有那些?
p:first-of-type 選擇屬于其父元素的首個元素的每個
元素。 p:last-of-type 選擇屬于其父元素的最后
元素的每個
元素。 p:only-of-type 選擇屬于其父元素唯一的
元素的每個
元素。 p:only-child 選擇屬于其父元素的唯一子元素的每個
元素。 p:nth-child(2) 選擇屬于其父元素的第二個子元素的每個
元素。 :enabled :disabled 控制表單控件的禁用狀態。 :checked 單選框或復選框被選中。
5.position的值, relative和absolute分別是相對于誰進行定位的?
absolute 生成絕對定位的元素, 相對于最近一級的 定位不是 static 的父元素來進行定位。 fixed (老IE不支持) 生成絕對定位的元素,相對于瀏覽器窗口進行定位。 relative 生成相對定位的元素,相對于其在普通流中的位置進行定位。 static 默認值。沒有定位,元素出現在正常的流中
6.CSS中 link 和@import 的區別是?
1.link屬于HTML標簽,而@import是CSS提供的; 2.頁面被加載的時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載; 3.import只在IE5以上才能識別,而link是HTML標簽,無兼容問題; 4.link方式的樣式的權重 高于@import的權重.
7.href與src的區別
1.src 是指向物件的來源地址,是引入。在 img、script、iframe 等元素上使用。 2.href 是超文本引用,指向需要連結的地方,是與該頁面有關聯的,是引用。在 link和a 等元素上使用。 3.使用區別:src通常用作“拿取”(引入),href 用作 "連結前往"(引用)。
8.什么是盒子模型
一個是由content、padding、border、margin組成的元素就是盒子模型,用來設置元素在網頁中的大小和位置。
9.transform屬性里面有幾種動畫效果?(3種即可)
rotate(旋轉) scale(縮放) translate(位移)
最近面試蛋疼很多都忘的差不多了,先溫習到這,希望對大家有幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89247.html
摘要:函數內置不可變,在函數體內整個執行環境中為常量。這兩個方法的用途都是在特定的作用域中調用函數,實際上等于設置函數體內的對象的值??刂票韱慰丶慕脿顟B。生成相對定位的元素,相對于其在普通流中的位置進行定位。 Javasript 1.請定義一個方法,傳入一個string類型的參數,然后將string的每個字符間加個空格返回 spacify(hello world) // => h e l...
摘要:函數內置不可變,在函數體內整個執行環境中為常量。這兩個方法的用途都是在特定的作用域中調用函數,實際上等于設置函數體內的對象的值。控制表單控件的禁用狀態。生成相對定位的元素,相對于其在普通流中的位置進行定位。 Javasript 1.請定義一個方法,傳入一個string類型的參數,然后將string的每個字符間加個空格返回 spacify(hello world) // => h e l...
摘要:收集的一些前端面試題從面試題發現不足,進而查漏補缺,比通過面試更難得及各大互聯網公司前端筆試面試題篇及各大互聯網公司前端筆試面試題篇面試題個和個經典面試題前端開發面試題如何面試前端工程師很重要個變態題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發現不足,進而查漏補缺,比通過面試更難得 1 BAT及各大互聯網公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:收集的一些前端面試題從面試題發現不足,進而查漏補缺,比通過面試更難得及各大互聯網公司前端筆試面試題篇及各大互聯網公司前端筆試面試題篇面試題個和個經典面試題前端開發面試題如何面試前端工程師很重要個變態題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發現不足,進而查漏補缺,比通過面試更難得 1 BAT及各大互聯網公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:也就是說定義的引用類型只要指針不發生改變,其他的不論如何改變都是允許的。把數組中的所有元素放入一個字符串。這兩個方法的用途都是在特定的作用域中調用函數,實際上等于設置函數體內的對象的值。是使用還是要看具體的情況。 1.html和css 引入 css 有哪幾種方式 1.使用標簽,引入外部CSS文件(1.通過@import,引入CSS文件(性能較差) 2.將css的樣式代碼放在html文檔...
閱讀 3166·2021-11-23 09:51
閱讀 678·2021-10-14 09:43
閱讀 3200·2021-09-06 15:00
閱讀 2403·2019-08-30 15:54
閱讀 2557·2019-08-30 13:58
閱讀 1840·2019-08-29 13:18
閱讀 1372·2019-08-27 10:58
閱讀 506·2019-08-27 10:53