1摩泪、常見的標簽以及標簽之間的轉換
塊級元素:h1-h6笆焰,p,hr水平線標簽见坑,table嚷掠,form捏检,div
行內(nèi)元素:a,b不皆,strong贯城,em,br霹娄,span
行內(nèi)塊元素:img能犯,input,select犬耻,textare踩晶,iframe
之間的轉換為display:block,inline枕磁,inline-block
window.onload()和$(document).ready(function(){})渡蜻,簡寫為
$(function(){})區(qū)別為,前者必須等頁面中所有元素加載完成透典,后者僅僅是DOM元素繪制完成,可能相關東西并沒有加載完顿苇。且第一個只能執(zhí)行一個峭咒,后者可以加載多個。
2纪岁、http協(xié)議的簡單理解
http為服務器端到本地瀏覽器之間傳輸超文本(即電子文檔和超文本鏈接)的傳輸協(xié)議凑队。它的默認端口是80端口。是無連接:即每次請求完成之后都會斷開鏈接幔翰、無狀態(tài)的漩氨。(無狀態(tài):即無記憶能力的,當之后的處理需要之前的文檔時遗增,還需要重新傳輸)叫惊。目前用的最多的是1.0版本。
常見的狀態(tài)碼:2xx表示請求成功做修,3xx表示url改變霍狰,4xx客戶端錯誤,500服務器錯誤饰及。
3蔗坯、獲取到下拉菜單的值和監(jiān)聽事件變化
根據(jù)selected來獲取被選中的下拉菜單的值:
jQuery("#select1 option:selected").text();
監(jiān)聽事件通過onchang事件來實現(xiàn):
select.onchange = function () {
if ( select.selectedIndex != 0 ) {
img.src = " img/ " + select.selectedIndex + " .jpg "
}
}
4、JSON.parse() 和 JSON.stringify()
parse用于從字符串中解析出對象燎含。如
var str = '{"name":"huangxiaojian","age":"23"}'
結果:
JSON.parse(str)
Object
age: "23"
name: "huangxiaojian"
__proto__: Object
stringify用于從對象轉字符串宾濒。
var
a = {a:1,b:2}
結果:
JSON.stringify(a)
"{"a":1,"b":2}"
5、判斷是否是數(shù)組
由于typeof 判斷返回值為object屏箍,所以可以通過instanceof來判斷绘梦,或者通過原型來判斷橘忱。
var arr = [1,2,3];
console.log(typeof arr);//object
console.log(arr instanceof Array);//true
console.log(arr.__proto__.constructor == Array);//true
console.log(arr.constructor == Array);//true
//和上個方法一樣,自身沒有這個屬性谚咬,也是從原型上去找
var str = "abc";
console.log(typeof str);//string
6鹦付、如何實現(xiàn)深拷貝
簡單來說就是先用JSON.stringify將對象轉為字符串拷貝過去。再用JSON.parse()方法將字符串轉為對象择卦。
var a ={};
var b = JSON.parse( JSON.stringify(a) );
7敲长、字符串逆序反轉
var a = "hello";
var b = a.split('').reverse().join('');//b = "olleh"
- split為字符串方法,分割為數(shù)組秉继,參數(shù)為分割依據(jù)祈噪。不傳只有hello一個元素
- reverse,join為數(shù)組方法,join為依據(jù)參數(shù)為連接符將數(shù)組連接為字符串
- splice(開始下標尚辑,刪除個數(shù)) 數(shù)組的刪除方法辑鲤,返回被刪除的數(shù)組,即截取數(shù)組
8杠茬、修改localstrage的方法
window.localstrage.setItem和window.localstrage.getItem
9月褥、只讓CSS在當前組件起作用
只需在style中寫入scoped,<style scoped > </style> 瓢喉。 scope:范圍的意思宁赤。
10、關于webpack
解析一些文件時栓票,需要安裝一些解析器决左。如:
CSS文件-----------css-loader;
es6---------bable-loader(bable嘈雜的)走贪;
vue-loader佛猛;vue文件打包給后臺通過webpack build或npm來打包。
通過config.json來修改一些配置項坠狡。
11继找、箭頭函數(shù)與普通函數(shù)的區(qū)別
箭頭函數(shù)沒有constructor方法,也沒有prototype逃沿,所以不支持new 操作码荔。
this始終指向函數(shù)定義時的環(huán)境,而不是執(zhí)行時感挥。
12缩搅、get和post請求
發(fā)送post請求時,會發(fā)送兩次TCP請求触幼,第一次發(fā)送請求頭硼瓣,再發(fā)送data。get則是一起發(fā)送過去。請求頭:聲明請求的方式堂鲤。
13亿傅、一像素問題
使用偽元素設置1px的邊框,然后使用媒體查詢瘟栖,根據(jù)dpr的大小葵擎,對邊框進行縮放(scaleY)。
14半哟、阻止冒泡和默認行為
分別為stopPropagation酬滤、preventDafault。
- 事件冒泡:里外兩個DIV給里面的DIV添加點擊事件時寓涨,出先觸發(fā)里面的點擊事件盯串,然后觸發(fā)外面的DIV的點擊事件。原生的寫法為:addEventLisner( "click",fun,true)戒良;即多寫一個true參數(shù)体捏。
- 默認事件:如a標簽的默認刷新頁面。
15糯崎、分頁時傳參的問題
每頁${pager.pageSize}條記錄几缭;//pager:尋呼機
共${pager.totalPages}頁;
共${pager,totalRows};
請求時拼接在后面的參數(shù)設置沃呢。
首頁:page=1;
上一頁:page=${pager.currentPage-1}年栓;
下一頁:page=${pager.currentPage+1};
末頁:page=${pager.totalPages}樟插;
16韵洋、VUE傳值的問題
- 父向子傳值
父級通過props寫一些數(shù)據(jù)竿刁,通過v-bind簡寫為:綁定屬性到子組件上黄锤,就可以實現(xiàn)傳值。v-on綁定事件食拜,簡寫為@鸵熟。 - 子向父傳值
在父級的methods里寫一個方法(函數(shù)),通過@綁定這個函數(shù)到子組件负甸,然后在子組件寫一個函數(shù)流强,通過this.$emit(事件名)來觸發(fā)事件,給父級發(fā)送消息呻待。 - 兄弟之間
通過vuex來傳值打月,vuex的mutations,methods里寫一個方法蚕捉,通過export default new vuex.store({})給返回出去奏篙。vue實例下的組件獲取vuex里的值用this.$store.下面數(shù)據(jù)來獲取,修改里面的值我們在methods里顯示的提交(commit)一個mutations來修改里面的值。this.$store.commit(" vuex里修改數(shù)據(jù)的方法名")秘通。 - 父組件觸發(fā)子組件里的方法:通過在子組件上綁定ref屬性为严,如ref='a',然后在父組件通過this.$refs.a獲取到這個組件肺稀,然后通過this.$refs.a.click()來觸發(fā)子組件上的事件第股。同樣,也可以通過這種方法來獲取DOM元素话原。
17夕吻、vue子路由傳值的問題
是通過在路徑后面拼接參數(shù)來實現(xiàn)的,即path: "/home/game/:num"稿静。如:/home/game/123.
在game子路由中通過this.$route.params來獲取梭冠。如:
<template>
<h3>王者榮耀{{ this.$route.params.num }}</h3>
</template>
18、關于頁面重構
首先改备,要明確迭代的目的控漠,最好不要進行大規(guī)模的改版,最一些用戶調查悬钳,看看問題出在什么地方盐捷。然后設計好迭代方案之后再進行迭代。
目前默勾,互聯(lián)網(wǎng)公司通常有開發(fā)環(huán)境碉渡、測試環(huán)境、生產(chǎn)環(huán)境母剥。開發(fā)環(huán)境就是我們做開發(fā)的環(huán)境滞诺,生產(chǎn)環(huán)境就是正式對外服務的。
19环疼、移動端的300ms點擊事件的解決
常用的有兩種解決方案:
第一種:因為它的產(chǎn)生是因為判斷是否雙擊縮放頁面而存在的习霹。所以解決方案就是禁止用戶縮放。
<meta name="viewport" content="width=device-width user-scalable= 'no'">
第二種:通過fastclick.js這個腳本來實現(xiàn)炫隶。然后在window load之后在body上調用fastclick.attach(document.body)即可淋叶。