国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端面經整理之JS和CSS

lvzishen / 1043人閱讀

摘要:作為對象原型鏈的終點。調用函數時,應該提供的參數沒有提供,該參數等于。它可以用于引用該函數的函數體內當前正在執行的函數。

一 JS
二 CSS

一 JS ==和===的區別

===叫做嚴格運算符 ==叫做相等運算符
嚴格運算符比較時不僅僅比較數值還要比較數據類型是否一樣
相等運算符在比較相同類型的數據時,與嚴格相等運算符完全一樣。 在比較不同類型的數據時,相等運算符會先將數據進行類型轉換,然后再用嚴格相等運算符比較。

undefined == null //true
undefined === null //false

ps:判斷NaN可以用Object.is()

Object.is(NaN, NaN); //true
undefined和null的區別

首先,undefinednullif語句中,都會被自動轉為false,即null==undefined結果為true

通常 null表示"沒有對象",即該處不應該有值,一般用法如下:
(1) 作為函數的參數,表示該函數的參數不是對象。
(2) 作為對象原型鏈的終點。Object.getPrototypeOf(Object.prototype) // null
undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義,一般用法:
(1)變量被聲明了,但沒有賦值時,就等于undefined
(2) 調用函數時,應該提供的參數沒有提供,該參數等于undefined
(3)對象沒有賦值的屬性,該屬性的值為undefined
(4)函數沒有返回值時,默認返回undefined

JS的基本數據類型

JS基本數據類型有5種
String Number Boolean Null Undefined
以及引用數據類型Object(包括Array Function)

JS中typeof和instanceof用法區別

首先typeof用以獲取一個變量類型
typeof一般只能返回如下幾個結果
number boolean string function object undefined

console.log(typeof i);    // undefined
console.log(typeof 1);   // number
console.log(typeof "a"); // string
console.log(typeof true);  // boolean

console.log(typeof function () {});  //function

console.log(typeof [1, "2", true]);  //object
console.log(typeof { o: "hello", c: "world" });  //object
console.log(typeof null);  //object
console.log(typeof new Number(2));  //object

以上可知用typeof無法判斷array類型 因為不管是數組還是對象都會返回object
這時候就需要instanceof
instanceof運算符用來測試一個對象在其原型鏈中是否存在一個構造函數的prototype屬性 即判斷一個變量是否是某個對象的實例

var arr = [1,2,3]; 
alert(arr instanceof Array);   // true

ps:其他判斷方法如下
Array.isArray

Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray("foobar");   // false
Array.isArray(undefined);  // false

constructor

var arr = [1,2,3]; 
console.log(arr.constructor === Array);   // true

Object.prototype.toString.call()

var arr = [1,2,3];
Object.prototype.toString.call(arr) === "[object Array]"; //true
JS用setTimeout遞歸實現setInterval

首先 setTimeout()setInterval()經常被用來處理延時和定時任務 setTimeout()方法用于在指定的毫秒數后調用函數或計算表達式,而setInterval()則可以在每隔指定的毫秒數循環調用函數或表達式,直到clearInterval把它清除

//setTimeout實現setInterval功能
setTimeout(function(){
  //do something
  setTimeout(arguments.callee,interval);
},interval)

ps:為什么要用setTimeout實現setInterval?

JS中的arguments和arguments.callee

arguments對象是所有(非箭頭)函數中都可用的局部變量。你可以使用arguments對象在函數中引用函數的參數
calleearguments 對象的一個屬性。它可以用于引用該函數的函數體內當前正在執行的函數。這在函數的名稱是未知時很有用,例如在沒有名稱的函數表達式 (也稱為“匿名函數”)內

代碼演示:

此外arguments是類數組對象 其沒有Array的一些方法 但有類似Array的一些特點
將函數的實際參數轉換成數組的方法如下

/**
_buffer.slice();
// is equivalent to
_buffer.slice(0);
// also equivalent to
_buffer.slice(0, _buffer.length);
**/
var args = Array.prototype.slice.call(arguments)//方法一
var args = [].slice.call(arguments, 0)//方法二
//方法三:
var args = [];
for (var i = 1; i < arguments.length; i++) {
  args.push(arguments[i]);
}
JS嚴格模式("use strict")

首先是嚴格模式的用法

// 為整個script標簽開啟嚴格模式, 需要在所有語句之前放一個特定語句 "use strict";
"use strict";
var v = "Hi!  I"m a strict mode script!";


//要給某個函數開啟嚴格模式,得把 "use strict";聲明一字不漏地放在函數體所有語句之前
function strict(){
  // 函數級別嚴格模式語法
  "use strict";
  function nested() { return "And so am I!"; }
  return "Hi!  I"m a strict mode function!  " + nested();
}
function notStrict() { return "I"m not strict."; }

嚴格模式同時改變了語法及運行時行為。變化通常分為這幾類:將問題直接轉化為錯誤(如語法錯誤或運行時錯誤), 簡化了如何為給定名稱的特定變量計算,簡化了 eval 以及 arguments, 將寫"安全"JavaScript的步驟變得更簡單

嚴格模式主要涉及如下幾個方面

創設eval作用域

禁止this關鍵字指向全局對象

禁止在函數內部遍歷調用棧(即禁止使用argumentscallee)

對象不能有重名的屬性

函數不能有重名的參數

函數必須聲明在頂層

...

詳情 請移步阮一峰的 Javascript 嚴格模式詳解

JS閉包

閉包Closure詳見 白話JS閉包

JS數組去重的簡潔方法

主要是利用 ES6 setfilter方法 詳見 最近碰到的sort排序 以及 set和filter數組去重

JS中的apply、call、bind

簡單總結:

apply 、 call 、bind 三者都是用來改變函數的this對象的指向的;
apply 、 call 、bind 三者第一個參數都是this要指向的對象,也就是想指定的上下文;
apply 、 call 、bind 三者都可以利用后續參數傳參;
bind是返回對應函數,便于稍后調用;apply、call則是立即調用
call 需要把參數按順序一個個傳遞進來,而 apply 則是把參數放在數組里

詳情移步深入淺出妙用 Javascript 中 apply、call、bind

JS的 for in 和 for of

簡單說 for in是遍歷keyfor of是遍歷value

let arr = ["a","b"];
for (a in arr) {
    console.log(a);//0,1
}

for (a of arr) {
    console.log(a);//a,b
}

ps:如何將對象的鍵名輸出數組

當然for in配合hasOwnProperty可以過濾來著原型鏈上繼承得到的屬性

異步解決方案Promise

Promise的構造函數接收一個參數,是函數,并且傳入兩個參數:resolve,reject,分別表示異步操作執行成功后的回調函數和異步操作執行失敗后的回調函數。其實這里用“成功”和“失敗”來描述并不準確,按照標準來講,resolve是將Promise的狀態置為fullfiledreject是將Promise的狀態置為rejected

舉個?

ps:promise詳情請移步大白話講解Promise

二 CSS CSS3的box-sizing

1.content-box 默認值 borderpadding不計算入width之內
2.border-box borderpadding計算入width之內

rem和em的區別

em是相對于父元素的font-size屬性值來計算的
rem是相對于html標簽的font-size屬性值來計算的

居中的幾種方法

主要是水平居中或者垂直居中
詳見web開發常用的幾種居中形式

CSS的三種基本引入方式
//外部樣式表 

//內部樣式表

//內聯

這是一個段落。

CSS權重計算

內聯樣式表的權值最高 1000
ID 選擇器的權值為 100
Class 類選擇器的權值為 10
HTML 標簽選擇器的權值為 1

CSS display: none和visibility: hidden的區別

①都是隱藏元素,但是前者文檔布局中不占用空間,后者仍占用空間
display:none隱藏產生reflowrepaint(回流與重繪)
③前者有株連性,即父元素設置display: none后子元素不管怎樣設置都不能顯示,而后者的子元素通過設置visibility: visible后還是能顯示出來的

CSS的reflow和repaint

reflow:當render樹的一部分或者全部因為大小邊距等問題發生改變而需要重建的過程,叫做回流
repaint:當諸如顏色背景等不會引起頁面布局變化,而只需要重新渲染的過程叫做重繪

ps:頁面的顯示過程分為以下幾個階段

1、生成DOM樹(包括display:none的節點)
2、在DOM樹的基礎上根據節點的集合屬性(margin,padding,width,height等)生成render樹(不包括display:none head節點,但是包括visibility:hidden的節點)
3、在render樹的基礎上繼續渲染顏色背景色等樣式

reflow和repaint詳情請移步

未完待續

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/112721.html

相關文章

  • 前端面經整理JSCSS

    摘要:作為對象原型鏈的終點。調用函數時,應該提供的參數沒有提供,該參數等于。它可以用于引用該函數的函數體內當前正在執行的函數。 一 JS 二 CSS 一 JS ==和===的區別 ===叫做嚴格運算符 ==叫做相等運算符嚴格運算符比較時不僅僅比較數值還要比較數據類型是否一樣相等運算符在比較相同類型的數據時,與嚴格相等運算符完全一樣。 在比較不同類型的數據時,相等運算符會先將數據進行類型轉換,...

    stonezhu 評論0 收藏0
  • 前端最強面經匯總

    摘要:獲取的對象范圍方法獲取的是最終應用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據我測試不同環境結果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續更新中……,可以關注下github 項目地址 https:...

    wangjuntytl 評論0 收藏0
  • 拒信收割機の前端面經(CVTE,唯品會,百度)

    摘要:另外回答的時候要淡定,一些問題就算不懂也不能慌,要和面試官談笑風生,然后盡量扯回到自己懂的東西上面大公司比如百度給我的感覺就是很重視基礎思維和潛力。 —— 雖然我的offer少,但是我的拒信多啊 這幾天終于閑下來,做一點微小的工作,整理了一些之前幾家公司的前端面試題和個人經驗,想做前端的師弟妹可以參考,也歡迎各同行大神來指教~ (以下問題不分先后,時間久遠難免有些遺漏;很多問題面試官都...

    yzd 評論0 收藏0
  • 拒信收割機の前端面經(CVTE,唯品會,百度)

    摘要:另外回答的時候要淡定,一些問題就算不懂也不能慌,要和面試官談笑風生,然后盡量扯回到自己懂的東西上面大公司比如百度給我的感覺就是很重視基礎思維和潛力。 —— 雖然我的offer少,但是我的拒信多啊 這幾天終于閑下來,做一點微小的工作,整理了一些之前幾家公司的前端面試題和個人經驗,想做前端的師弟妹可以參考,也歡迎各同行大神來指教~ (以下問題不分先后,時間久遠難免有些遺漏;很多問題面試官都...

    channg 評論0 收藏0

發表評論

0條評論

lvzishen

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<