由一次面試引出的問題及聯(lián)想

更新中...

  1. 隱藏一個(gè)元素有哪些實(shí)現(xiàn)方式
  • visibility: hidden
  • display:none

區(qū)別:
visibility: 僅設(shè)置其可見性,并不改變其占位形病。
display: none 設(shè)置其可見性,并隱藏其位置
gist: https://gist.github.com/popozy/50007484fb8ce717c285bad212f1ba36

  • ng-hide ng-show ng-if

區(qū)別:

  • By default, the 'ng-hide/ng-show' class will style the element with 'display:none!important'
  • The 'ng-if' removes or recreates a portion of the DOM tree base on an {expression}. If the expression assigned to 'ng-if' evaluates to a false value then the element is removed from the DOM, otherwise a clone of the element is reinserted in to the DOM.
{
  width: 0; 
  height: 0
}
{
  position: absolute;
  left: -9999px;
  top: -9999px;
}
  1. $scope $rootScope的聯(lián)系 $scope, $rootScope什么時(shí)候才能被使用
  • scope繼承與rootScope,可以在各個(gè)controller中使用$rootScope的上定義的變量值
  • $scope只能在各自對(duì)應(yīng)的controller中生效
  1. img的sprite
  • 存在意義:雪碧圖解決每個(gè)圖標(biāo)請(qǐng)求一次簿寂,大量的http請(qǐng)求消耗帶寬,大量時(shí)間花費(fèi)在https請(qǐng)求的建立上所導(dǎo)致的性能問題。
  • 原理:將icon等放在一張圖片上袜匿,通過css的樣式,控制某個(gè)icon的顯示稚疹。
  • css屬性:
    • background-image
    • background-position


      background-position value
  1. flex布局詳細(xì)用法梳理
容器屬性:
  • display: flex;
  • flex-direction: row | row-reverse | column | column-reverse;
    default: row 主軸方向?yàn)闄M向自左向右
  • flex-wrap: nowrap | wrap | wrap-reverse;
    default: nowrap 不換行
  • align-items: flex-start | flex-end | center | baseline | stretch;
    default: stretch 交叉軸上的對(duì)齊方式:上對(duì)齊
    baseline: 項(xiàng)目的第一行文字的基線對(duì)齊
    stretch: 伸展對(duì)齊居灯,如果高度沒設(shè)置,則撐滿父容器
  • justify-content: flex-start | flex-end | center | space-between | space-around;
    default:flex-start 主軸上的對(duì)齊方式為左對(duì)齊
    space-around: 兩側(cè)留白
    baseline: 項(xiàng)目的第一行文字的基線對(duì)齊内狗。
  • shorthand
    flex-flow: flex-direction || flex-wrap
子元素屬性
  • order: <integer>; 元素排名權(quán)重怪嫌,值越小,越靠前
    default: 0
  • flex-grow: <number>; /* default 0 */
    當(dāng)存在剩余空間時(shí)柳沙,剩余空間的均分比例岩灭。默認(rèn)0為不分
  • flex-shrink: <number>; /* default 0 */
    當(dāng)空間不足時(shí),多出部分的縮小比例赂鲤。默認(rèn)1為全部等比例縮小噪径。
  • flex-basis: <length> | auto; /* default auto */
    子元素在均分剩余空間之前的寬/高,默認(rèn)auto為子元素原有尺寸
  • align-self: auto | flex-start | flex-end | center | baseline | stretch; /* auto */
    子元素在交叉軸上設(shè)置的自身的對(duì)齊方式数初,默認(rèn)auto為繼承父元素的align-items找爱,如果沒有該屬性,默認(rèn)auto繼承為stretch
  • shorthand
    flex: flex-grow flex-shrink flex-basis|auto|initial|inherit;
Flex Practice

兩個(gè)元素泡孩,右邊元素定寬车摄,左側(cè)自適應(yīng)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <style type="text/css">
    .parent {
      display: flex;
      border: 1px solid #000;
      height: 100px;
    }
    .child1 {
      flex: 1
    }
    .child2 {
      width: 100px;
      background-color: red;
    }
  </style>
</head>
<body>
  <div class="parent">
    <div class="child1"></div>
    <div class="child2"></div>
  </div>
</body>
</html>
  1. ng-app能有幾個(gè)同時(shí)啟動(dòng)

一般angular單個(gè)頁(yè)面只能加載一個(gè)ng-app,一個(gè)頁(yè)面會(huì)自動(dòng)加載第一個(gè)ng-app仑鸥,其它ng-app不會(huì)被加載吮播。如果想加載多個(gè)ng-app就需要使用angular.bootstrap去加載后面的ng-app

angular.bootstrap(element, [modules], [config]);
其中第一個(gè)參數(shù)element:是綁定ng-app的dom元素;
modules:綁定的模塊名字
config:附加的配置

  1. null和undefined

null表示"沒有對(duì)象"锈候,即該處不應(yīng)該有值薄料。典型用法是: 作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對(duì)象泵琳;或 作為對(duì)象原型鏈的終點(diǎn)摄职。

undefined表示被定義了,但是還沒賦值获列。

  1. Promise
  • 是什么
    • Promise 是異步編程的一種解決方案谷市,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大。它由社區(qū)最早提出和實(shí)現(xiàn)击孩,ES6 將其寫進(jìn)了語(yǔ)言標(biāo)準(zhǔn)迫悠,統(tǒng)一了用法,原生提供了Promise對(duì)象巩梢。
    • Promise對(duì)象通過構(gòu)造時(shí)傳入異步執(zhí)行的代碼创泄,并通過對(duì)象的then api來處理異步執(zhí)行結(jié)果艺玲。
    • Promise對(duì)象存在三種狀態(tài),pending, fullfiled, rejected鞠抑。
    • 狀態(tài)變化有兩種,變化只能由異步操作的結(jié)果決定饭聚,即Promise構(gòu)造函數(shù)時(shí)候傳入的參數(shù)foo函數(shù)中的異步代碼所決定。
      pending->fullfilled(這個(gè)狀態(tài)被稱為搁拙,resolved定型)
      pending->rejected(這個(gè)狀態(tài)被稱為秒梳,resolved定型)
  • 怎么做
    通過new創(chuàng)建一個(gè)Promise對(duì)象,其構(gòu)造函數(shù)的入?yún)⑹且粋€(gè)函數(shù)f箕速,函數(shù)f的入?yún)⑹莾蓚€(gè)函數(shù)resolve, reject的JavaScript內(nèi)置函數(shù)酪碘。如下
const promise  = new Promise(function(resolve, reject) {
    //sync code
    if(succ) { resolve(value)}
    else if(failed) {reject(error)}
});

通過 resolve和rejected完成從pending到fulfilled和rejected的狀態(tài)切換,通過value和error傳出起結(jié)果盐茎。
那怎么接呢兴垦?用這個(gè)promise的對(duì)象的then api,入?yún)⑹莝uccess的callback和failed的callback庭呜,兩個(gè)callback的入?yún)⒎謩e是上面的value和error值滑进,這樣就可以callback接住結(jié)果來處理異步代碼結(jié)果了。如下

 promise.then(function(value) {
    // success logic
}, function(error) {
   // failed logic
})

需要注意有兩點(diǎn)

  • promise在new的時(shí)候募谎,就會(huì)直接執(zhí)行其構(gòu)造函數(shù)入?yún)oo函數(shù)(內(nèi)部的異步代碼)
  • promise.then即使在異步代碼resolve和reject之后才執(zhí)行到扶关,也會(huì)立刻得到執(zhí)行結(jié)果。這要區(qū)別于eventlistener的事件監(jiān)聽方式数冬,當(dāng)事件監(jiān)聽注冊(cè)代碼在異步代碼返回結(jié)果之后執(zhí)行节槐,那就監(jiān)聽不到異步代碼的返回了。
  1. 箭頭函數(shù)及this的指向
(param1, param2, ...) => {
  // function body
  // this 箭頭函數(shù)外層
}

待補(bǔ)充原理:

  1. this--系統(tǒng)學(xué)習(xí)上下文與上下文棧(變量對(duì)象拐纱、this與作用域鏈)在JavaScript執(zhí)行過程中發(fā)生實(shí)際操作
    ref: https://github.com/mqyqingfeng/Blog/issues/4
  2. javascript的深淺拷貝與直接賦值
  3. 頁(yè)面性能優(yōu)化
    ref: http://www.ha97.com/2710.html
  4. requirejs和import的區(qū)別
  5. const聲明變量是否可以修改
  • const對(duì)于基本數(shù)據(jù)類型來講(整型铜异,浮點(diǎn),字符串秸架,布爾值揍庄,Symbol)都是無(wú)法修改的,因?yàn)槠渥兞看鎯?chǔ)的棧地址無(wú)法被修改
  • const聲明的引用類型东抹,其棧地址無(wú)法被修改蚂子,即被const修飾的變量在初始化被assign之后無(wú)法再被重新賦值(修改棧內(nèi)存的地址),但是其棧內(nèi)存中存著的值指向的引用對(duì)象如Map等是可以被修改的缭黔。

  1. http1 http2 https--回顧C(jī)A多級(jí)發(fā)放食茎,對(duì)稱加密與非對(duì)稱加密
    refs: https://github.com/popozy/Leo-DailyGossip/blob/master/networkSecurity/2.1%20Introduction%20to%20Cryptography.pdf
  2. canvas svg css3動(dòng)畫
    https://www.zhihu.com/question/19690014
  3. javascript的事件監(jiān)聽與冒泡
  4. 繼承實(shí)現(xiàn)方式
  • 原型鏈繼承
  • call方式繼承
  • 組合繼承(原型鏈+call)
  • 寄生式繼承(組合繼承優(yōu)化,減少原型鏈繼承時(shí)對(duì)父類屬性方法的二次拷貝)
  1. React源碼(虛擬dom和diff算法)
  2. angularjs工程結(jié)構(gòu)與懶加載
  3. css樣式表
  • 外部樣式表:
<link rel="stylesheet" type="text/css" href="css/baseStyle.css">
  • 內(nèi)部樣式表:
<style type="text/css">
    .parent {
      display: flex;
      border: 1px solid #000;
      height: 100px;
    }
    .child1 {
      flex: 1
    }
    .child2 {
      width: 100px;
      background-color: red;
    }
  </style>
  • 內(nèi)聯(lián)樣式表
<a  style="text-decoration:none" target="_blank">
這是一個(gè)不帶下劃線的鏈接
</a>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末馏谨,一起剝皮案震驚了整個(gè)濱河市别渔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖哎媚,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喇伯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡抄伍,警方通過查閱死者的電腦和手機(jī)艘刚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門管宵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來截珍,“玉大人,你說我怎么就攤上這事箩朴「诤恚” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵炸庞,是天一觀的道長(zhǎng)钱床。 經(jīng)常有香客問我,道長(zhǎng)埠居,這世上最難降的妖魔是什么查牌? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮滥壕,結(jié)果婚禮上纸颜,老公的妹妹穿的比我還像新娘。我一直安慰自己绎橘,他們只是感情好胁孙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著称鳞,像睡著了一般涮较。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冈止,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天狂票,我揣著相機(jī)與錄音,去河邊找鬼熙暴。 笑死闺属,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的怨咪。 我是一名探鬼主播屋剑,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼诗眨!你這毒婦竟也來了唉匾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巍膘,沒想到半個(gè)月后厂财,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡峡懈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年璃饱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肪康。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荚恶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出磷支,到底是詐尸還是另有隱情谒撼,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布雾狈,位于F島的核電站廓潜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏善榛。R本人自食惡果不足惜辩蛋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望移盆。 院中可真熱鬧悼院,春花似錦、人聲如沸味滞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)剑鞍。三九已至昨凡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蚁署,已是汗流浹背便脊。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留光戈,地道東北人哪痰。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像久妆,于是被迫代替她去往敵國(guó)和親晌杰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁(yè)的形式展示給用戶的筷弦,因此網(wǎng)頁(yè)是網(wǎng)絡(luò)信息傳遞的載體肋演。網(wǎng)頁(yè)文件是用...
    阿啊阿吖丁閱讀 3,890評(píng)論 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5抑诸? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 27,486評(píng)論 1 45
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,101評(píng)論 1 32
  • 一直以來習(xí)慣了在有空閑的時(shí)候看幾頁(yè)書,但一直沒有存書的習(xí)慣梗夸,通常是看完一本送人一本层玲。有位朋友曾問過我,沒有留下過一...
    鳴葉閱讀 509評(píng)論 0 2
  • 認(rèn)識(shí)的發(fā)展過程(一)認(rèn)識(shí)過程中感性認(rèn)識(shí)和理性認(rèn)識(shí)及其辯證關(guān)系馬克思主義認(rèn)識(shí)論把實(shí)踐觀點(diǎn)納入認(rèn)識(shí)論的同時(shí),把辯證法應(yīng)...
    擠時(shí)間看書的安閱讀 349評(píng)論 0 0