一份Web前端筆試題及答案整理(給了40分鐘)

1) JavaScript中如何檢測一個變量是一個String類型?請寫出函數(shù)實現(xiàn)

// String類型有兩種生成方式:
// (1)var str = 'hello world';
// (2)var str = new String('hello world');
function IsString(str) {
  return (typeof str == 'string' || str.constructor == String);
}
var str = ' ';
console.log(IsString(1)); // false
console.log(IsString(str)); // true
console.log(IsString(new String(str))); // true

2) $.fn是什么意思?

// $.fn是指jquery的命名空間惋戏, 加上fn上的方法及屬性炮捧, 會對jquery實例每一個有效。
// 如擴展$.fn.abc()
// 那么你可以這樣子: $("#div").abc();
// 通常使用$.extend() 方法擴展.

// $.fn是什么東西呢笤闯。 查看jQuery代碼堕阔, 就不難發(fā)現(xiàn)。
jQuery.fn = jQuery.prototype = {
  init: function (selector, context) {//.... 
}
// 原來 jQuery.fn = jQuery.prototype. 對prototype肯定不會陌生啦颗味。

3)HTML5中的DataList是什么超陆?

// <datalist> 標簽定義選項列表。請與 input 元素配合使用該元素浦马,來定義 input 可能的值时呀。
// datalist 及其選項不會被顯示出來,它僅僅是合法的輸入值列表晶默。
// 請使用 input 元素的 list 屬性來綁定 datalist退唠。
<input id="myCar" list="cars" />
<datalist id="cars">
  <option value="BMW">
  <option value="Ford">
  <option value="Volvo">
</datalist>
// 目前只有 Firefox 和 Opera 支持 <datalist> 標簽。
<datalist> 標簽

4)什么是vue生命周期 ?

每個Vue實例在被創(chuàng)建之前都要經(jīng)過一系列的初始化過程,這個過程就是vue的生命周期
可以看到在vue一整個的生命周期中會有很多鉤子函數(shù)提供給我們在vue生命周期不同的時刻進行操作, 那么先列出所有的鉤子函數(shù)荤胁,更多可參考 詳解vue生命周期官方文檔

  • beforeCreate
  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • updated
  • beforeDestroy
  • destroyed

5)vue父組件怎么給子組件傳值?

舉一個我在Vue組件開發(fā)中的例子

// 父組件
<template>
  <div>
    <!-- 子組件 開始 -->
    <page-header ref="PageHeader" :headerData="headerData"></page-header>
    <!-- 子組件 結(jié)束 -->
  </div>
</template>
<script>
import PageHeader from '@/components/page/Header';
export default {
  name: 'FatherPage',
  components: { PageHeader },
  data() {
    return {
      headerData: ['返回', '中間標題', ''],
    };
  },
  methods: {
    leftEvent() {
      if (this.headerData[0]) {
        // console.log('leftEvent()');
      }
    },
  },
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped></style>

// 子組件
<template>
  <div class="header-all">
      <div class="header">
        <span class="left" v-if="header[0]" @click="leftEvent">
          <span>{{header[0]}}</span>
        </span>
        <span class="center">{{header[1]}}</span>
        <span class="right" v-if="header[2]">
          <span>{{header[2]}}</span>
        </span>
      </div>
  </div>
</template>
<script>
export default {
  name: 'SonPage',
  data() {
    return {
      header: ['', '無標題', '']
    };
  },
  props: ['headerData'],
  created() {
    this.header = this.headerData;
  },
  methods: {
    leftEvent() {
      if (this.header[0]) {
        // 子組件可以調(diào)父組件中的事件
        this.$parent.leftEvent();
      }
    },
  },
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped></style>

6)簡述css的盒子模型瞧预?

CSS盒子模型也叫做框模型屎债,具備內(nèi)容(content)、填充(padding)垢油、邊框(border)盆驹、邊界(margin)這些屬性。在CSS中滩愁,每一個元素都被視為一個框躯喇,而每個框都有三個屬性:

  • border:元素的邊框(可能不可見),用于將框的邊緣與其他框分開硝枉;
  • margin:外邊距廉丽,表示框的邊緣與相鄰框之間的距離,也稱為頁邊空白妻味;
  • padding:內(nèi)邊距正压,表示框內(nèi)容和邊框之間的空間。

width 和 height 指的是內(nèi)容區(qū)域的寬度和高度责球。增加內(nèi)邊距焦履、邊框和外邊距不會影響內(nèi)容區(qū)域的尺寸,但是會增加元素框的總尺寸雏逾。
因此嘉裤,如果在一個具有邊框的元素中放置文本,往往需要設置一些內(nèi)邊距栖博,以便文本的邊緣不要接觸邊框屑宠,這樣更便于閱讀。而外邊距則可以在多個元素框之間創(chuàng)建空白仇让,避免這些框都擠在一起侨把。因此,在設計頁面時妹孙,經(jīng)常會使用padding屬性和margin屬性來設置頁面的布局。但是获枝,必須注意的是蠢正,一旦用了padding屬性或者margin屬性設置了元素的邊距以后,會增加元素在頁面布局中所占的面積省店。

Box Model

7)請寫出jquery綁定事件的方法嚣崭,不少于兩種

jQuery中提供了四種事件監(jiān)聽方式,分別是bind懦傍、live雹舀、delegate、on粗俱,對應的解除監(jiān)聽的函數(shù)分別是unbind说榆、die、undelegate、off签财。詳見 jQuery 綁定事件的方式總結(jié) 串慰、jquery幾種事件綁定方式的比較


8)簡述一下src與href的區(qū)別

src用于替換當前元素,href用于在當前文檔和引用資源之間確立聯(lián)系唱蒸。
src是source的縮寫邦鲫,指向外部資源的位置,指向的內(nèi)容將會嵌入到文檔中當前標簽所在位置神汹;在請求src資源時會將其指向的資源下載并應用到文檔內(nèi)庆捺,例如js腳本,img圖片和frame等元素屁魏。

<script src ="js.js"></script>

當瀏覽器解析到該元素時滔以,會暫停其他資源的下載和處理,直到將該資源加載蚁堤、編譯醉者、執(zhí)行完畢,圖片和框架等元素也如此披诗,類似于將所指向資源嵌入當前標簽內(nèi)撬即。這也是為什么將js腳本放在底部而不是頭部。
href是Hypertext Reference的縮寫呈队,指向網(wǎng)絡資源所在位置剥槐,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,如果我們在文檔中添加

<link href="common.css" rel="stylesheet"/>

那么瀏覽器會識別該文檔為css文件宪摧,就會并行下載資源并且不會停止對當前文檔的處理粒竖。這也是為什么建議使用link方式來加載css,而不是使用@import方式几于。


9) 添加蕊苗、移除、移動沿彭、復制朽砰、創(chuàng)建和查找節(jié)點的方法?

(1)創(chuàng)建新節(jié)點

  createDocumentFragment()    //創(chuàng)建一個DOM片段
  createElement()   //創(chuàng)建一個具體的元素
  createTextNode()   //創(chuàng)建一個文本節(jié)點

(2)添加、移除喉刘、替換瞧柔、插入

  appendChild()
  removeChild()
  replaceChild()
  insertBefore()

(3)查找

  getElementsByTagName()    //通過標簽名稱
  getElementsByName()    //通過元素的Name屬性的值
  getElementById()    //通過元素Id,唯一性

更多 DOM操作——怎樣添加睦裳、移除造锅、移動、復制廉邑、創(chuàng)建和查找節(jié)點


10)寫一個function哥蔚,清除字符串前后的空格倒谷。(兼容所有瀏覽器)

// 方法有很多種 比如正則替換
// 去左空格;
String.prototype.LTrim = function () {
  return this.replace(/(^\s*)/g, '');
};
// 去右空格;
String.prototype.RTrim = function () {
  return this.replace(/(\s*$)/g, '');
};
// 去左右空格;
String.prototype.Trim = function () {
  return this.replace(/(^\s*)|(\s*$)/g, '');
};
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肺素,隨后出現(xiàn)的幾起案子恨锚,更是在濱河造成了極大的恐慌,老刑警劉巖倍靡,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猴伶,死亡現(xiàn)場離奇詭異,居然都是意外死亡塌西,警方通過查閱死者的電腦和手機他挎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捡需,“玉大人办桨,你說我怎么就攤上這事≌净裕” “怎么了呢撞?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長饰剥。 經(jīng)常有香客問我殊霞,道長,這世上最難降的妖魔是什么汰蓉? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任绷蹲,我火速辦了婚禮,結(jié)果婚禮上顾孽,老公的妹妹穿的比我還像新娘祝钢。我一直安慰自己,他們只是感情好若厚,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布拦英。 她就那樣靜靜地躺著,像睡著了一般测秸。 火紅的嫁衣襯著肌膚如雪疤估。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天乞封,我揣著相機與錄音,去河邊找鬼岗憋。 笑死肃晚,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的仔戈。 我是一名探鬼主播关串,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼拧廊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晋修?” 一聲冷哼從身側(cè)響起吧碾,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墓卦,沒想到半個月后倦春,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡落剪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年睁本,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忠怖。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡呢堰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凡泣,到底是詐尸還是另有隱情枉疼,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站犬辰,受9級特大地震影響侠畔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜席舍,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哮笆。 院中可真熱鬧来颤,春花似錦、人聲如沸稠肘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽项阴。三九已至滑黔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間环揽,已是汗流浹背略荡。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留歉胶,地道東北人汛兜。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像通今,于是被迫代替她去往敵國和親粥谬。 傳聞我的和親對象是個殘疾皇子肛根,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

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