以下題目都是在面試過程中整理的 答案不是標準永罚。如有雷同純屬耦合,可與博主及時聯(lián)系
1宋舷、基本數(shù)據類型和引用數(shù)據類型
基本數(shù)據類型:number、string瓢姻、boolean祝蝠、null、undefined
引用數(shù)據類型:對象數(shù)據類型(對象幻碱、數(shù)組绎狭、正則)? 函數(shù)數(shù)據類型
區(qū)別:基本數(shù)據類型操作的是值,引用數(shù)據類型操作的是內存地址
2褥傍、display: none 和visibility: hidden區(qū)別
1儡嘶、Display:none隱藏會不會占空間 visibility:hidden隱藏后還會占空間
2、display:none不會被子元素繼承恍风,但是父元素都不在了蹦狂,子元素自然也就不會顯示了;
visibility:hidden 會被子元素繼承凯楔,可以通過設置子元素visibility:visible 使子元素顯示出來
3、瀏覽器支持的最小字體是多少锦募?怎樣實現(xiàn)更小字體
12px啼辣;
使用:-webkit-transform:scale()來實現(xiàn)? ? ?
.ft8 {
font-size: 8px;
font-family: Arial;
}
.ft8 em {
//如果是行內元素需要加這個,因為縮放是縮放的寬高御滩,而行內元素沒有寬高
display: inline-block;?
width: 10px;
height: 10px;
-webkit-transform: scale(0.7,0.7);? 這個縮放大小是 8px/12px得來的
}
4鸥拧、 Cmd 和amd
5、 git推送的順序
6削解、模擬網速慢 來測試網站性能
谷歌--network里--slow3G
7富弦、什么是DNS
Domain name system 域名系統(tǒng)
萬維網上作為域名和IP地址相互映射的一個分布式數(shù)據庫,能夠使用戶更方便的訪問互聯(lián)網氛驮,而不用去記住能夠被機器直接讀取的IP數(shù)串腕柜。
8、服務器渲染矫废、瀏覽器渲染
瀏覽器渲染
單頁應用用的基本都是瀏覽器渲染盏缤。優(yōu)點很明確,后端只提供數(shù)據蓖扑,前端做視圖和交互邏輯唉铜,分工明確。服務器只提供接口律杠,路由以及渲染都丟給前端潭流,服務器計算壓力變輕了竞惋。但是弱點就是用戶等待時間變長了,尤其在請求數(shù)多而且有一定先后順序的時候灰嫉。
服務器渲染
服務器接到用戶請求之后拆宛,計算出用戶需要的數(shù)據,然后將數(shù)據更新成視圖(也就是一串dom字符)發(fā)給客戶端讼撒,客戶端直接將這串字符塞進頁面即可浑厚。這樣做的好處是響應很快,用戶體驗會比較好根盒,另外對于搜索引擎來說也是友好的瞻颂,有SEO優(yōu)化。
9郑象、箭頭函數(shù)和普通函數(shù)的區(qū)別
箭頭函數(shù)的this永遠指向其上下文的this,call(), bind(), apply()改變不了其this指向
10茬末、flex布局里常用的屬性
容器上的屬性:
Flex-direction 主軸方向 橫著|豎著
Flex-wrap? 默認情況下項目都排在一條線上厂榛,這個屬性定義一條線排不下如果換行
Flex-flow 是以上兩個屬性的簡寫
Justify-content 定義了項目在主軸上的對齊方式
align-items? 項目在交叉軸上是如何對齊的
align-content 定義了多根軸線的對其方式,如果項目只有一根線丽惭,改屬性不起作用
項目上的屬性:
? ? Order? ? ? 定義項目的排列順序击奶。數(shù)值越小,排列越靠前
? ? Flex-grow? 定義項目的放大比例责掏,默認為0柜砾,即使存在剩余空間也不放大
? ? Flex-shrink 定義項目的縮小比例,默認為1 如果空間不足换衬,改項目縮小
? ? Flex-basis? 定義了在分配多余空間之前痰驱,項目占據的主軸空間(main size)。瀏覽器根據這個屬性瞳浦,計算主軸是否有多余空間担映。它的默認值為auto,即項目的本來大小叫潦。
? ? ? Flex? ? ? 屬性是flex-grow, flex-shrink 和 flex-basis的簡寫蝇完,默認值為0 1 auto。后兩個屬性可選矗蕊。
? ? ? align-self? 屬性允許單個項目有與其他項目不一樣的對齊方式短蜕,可覆蓋align-items屬性
11、grid布局里常用的屬性
父容器上的屬性:
? .Wrapper{
Display:grid? ? 設置成grid布局
Grid-template-columns:200px 50px 100px;? 子元素有3列 以及每個子元素列寬
Grid-template-rows:100px 30px? ? 子元素有2行 以及每一行的高度
}
子容器
.item{
Grid-column-start:1? 從第一個網格線開始
Grid-column-end:3? 第三個網格線結束?
/*Grid-column:1/3也可以簡寫*/
}
12傻咖、promise
解決es5多層函數(shù)的回調:
參考網址 :http://www.cnblogs.com/whybxy/p/7645578.html
Promise的構造函數(shù)接收一個參數(shù)朋魔,是函數(shù),并且傳入兩個參數(shù):resolve卿操,reject铺厨,分別表示異步操作執(zhí)行成功后的回調函數(shù)和異步操作執(zhí)行失敗后的回調函數(shù)缎玫。
13、promise和setTimeout的區(qū)別
---兩個調用的都是異步任務解滓,都通過任務隊列進行管理
---任務隊列分為宏任務隊列和微任務隊列
---宏任務隊列: setTimeout,setInterval赃磨;微任務隊列:promise
14、mvvm和mvc模式的區(qū)別
1)洼裤、mvvm的核心是數(shù)據圍繞著產生修改邻辉、修改,出現(xiàn)了業(yè)務邏輯腮鞍;圍繞著數(shù)據的顯示值骇,出現(xiàn)了不同界面
2)、mvvm做到了view和model的完全分離移国,
3)吱瘩、可以實現(xiàn)雙向數(shù)據綁定
15、webpack常用配置
webpack.config.js里
1>迹缀、入口entery entry有三種寫法? 字符串使碾、數(shù)組、對象
2>祝懂、出口output的配置
output:?{
????path:?__dirname?+?'/build',
????filename:?'[name]-[id].js',
????publicPath:?'/asstes/'
}
Path:指定輸出文件路徑
Filename:輸出文件名稱
PublicPath:資源訪問路徑
3>票摇、module 配置loader? css、style砚蓬、html睁本、less的loader配置
? modules:?{
?loaders:?[
? ? ? ? {
? ? ? ? ? ?test:?/\.js$/,?//匹配希望處理文件的路徑
????????????exclude:?/node_modules/,?// 匹配不希望處理文件的路徑
????????????loaders:?'xxx-loader?a=x&b=y'??//此處xxx-loader 可以簡寫成xxx , 捅儒?后以query方式傳遞給loader參數(shù)
????????},
????????...
????]
}
5>漆撞、plugins 插件的配置
6>限次、devServer 配置開發(fā)功能
16、如何開啟設備的硬件加速
何為硬件加速:就是將瀏覽器的渲染過程交給GPU處理摩梧,而不是使用自帶的比較慢的渲染器峡扩。這樣就可以使得animation與transition更加順暢。
如何開啟硬件加速:
CSS animations, transforms 以及 transitions 不會自動開啟GPU加速障本,而是由瀏覽器的緩慢的軟件渲染引擎來執(zhí)行教届。那我們怎樣才可以切換到GPU模式呢,很多瀏覽器提供了某些觸發(fā)的CSS規(guī)則驾霜。
現(xiàn)在案训,像Chrome, FireFox, Safari, IE9+和最新版本的Opera都支持硬件加速,當它們檢測到頁面中某個DOM元素應用了某些CSS規(guī)則時就會開啟粪糙,最顯著的特征的元素的3D變換强霎。
17、怎樣判斷頁面是否加載完成蓉冈?
用document.onreadystatechange的方法來監(jiān)聽狀態(tài)改變城舞,?
18轩触、列舉引起回流和重繪的因素:
1>、添加或者刪除可見的DOM元素家夺;
2>脱柱、元素位置改變;
3>拉馋、元素尺寸改變——邊距榨为、填充、邊框煌茴、寬度和高度
4>随闺、內容改變——比如文本改變或者圖片大小改變而引起的計算值寬度和高度改變;
5>蔓腐、頁面渲染初始化矩乐;
6>、瀏覽器窗口尺寸改變——resize事件發(fā)生時回论;
19散罕、call、bind透葛、apply的區(qū)別
都是改變this 指向的,call和apply都是function這個類原型上的方法卿樱,函數(shù)作為實例都可以調用function這個類原型上的方法
apply:和call基本上一致僚害,唯一區(qū)別在于apply是以數(shù)組的形式傳參
bind:語法和call一模一樣,區(qū)別在于 call改變this關鍵字后會立即執(zhí)行繁调;而bind不立即執(zhí)行
哪個性能更好些呢萨蚕?
call的性能更好一些,尤其是在傳遞給函數(shù)的參數(shù)超過3個的時候 蹄胰,所以開發(fā)的時候可以使用call多一點
eg:
let arr=[10,20,30],
? ? ?obj={};
function fn(x,y,z){}? ??
fn.call(obj,..arr) //es6的展開運算符也可以實現(xiàn)把數(shù)據中的每一項依次傳遞給函數(shù)
fn.apply(obj,arr)
20岳遥、for in 和for of的區(qū)別,對象是否可以使用for of 進行遍歷
1>裕寨、推薦在循環(huán)對象屬性的時候浩蓉,使用for...in,在遍歷數(shù)組的時候的時候使用for...of。
2>宾袜、for...in循環(huán)出的是key捻艳,for...of循環(huán)出的是value
3>、注意庆猫,for...of是ES6新引入的特性认轨。修復了ES5引入的for...in的不足(for in可以遍歷出自定義的屬性和方法,for of不會循環(huán)出來)
3>月培、for...of不能循環(huán)普通的對象嘁字,需要通過和Object.keys()搭配使用先獲取對象的所有key的數(shù)組然后遍歷:
21恩急、什么是前后端分離
前端負責客戶端的用戶交互界面、邏輯纪蜒、顯示數(shù)據衷恭;后端負責數(shù)據的處理和存儲,提供數(shù)據霍掺。后端不再套頁面匾荆,前后端代碼不再融合到一起,分工明細杆烁,降低維護成本牙丽,前端自己可以調試頁面
22、防抖函數(shù)和節(jié)流函數(shù)的區(qū)別
? 函數(shù)的節(jié)流:指定時間內容js方法只跑一次兔魂。應用場景:監(jiān)聽頁面元素滾動事件烤芦。
? 函數(shù)的防抖:頻繁出發(fā)的情況下,只有足夠的空閑時間才執(zhí)行一次代碼析校。應用場景:手機
號碼驗證构罗、郵箱驗證
參考:https://www.cnblogs.com/walls/p/6399837.html
23、js預處理機制
在當前作用域中 js代碼執(zhí)行之前智玻,瀏覽器會對所有帶var 進行聲明遂唧,對function進行聲明+定義
預解釋是一種毫無節(jié)操的機制
1>、不管條件是否成立都要把帶var的進行提前聲明
2>吊奢、只對=左邊的進行預解釋盖彭,等號右邊的是值,不參與預解釋:匿名函數(shù)之函數(shù)表達式
3>页滚、自只執(zhí)行函數(shù)不進行預解釋
4>召边、return下面的代碼雖然不執(zhí)行了也要進行預解釋
5>、如果名字已經聲明過了不需要從新聲明裹驰,但需要重新定義
24 隧熙、移動端的點透現(xiàn)象。(tap幻林、click區(qū)別)
Tap和click比較:
1>贞盯、Tep和click都會觸發(fā)點擊事件,但在web手機端? click會有300ms的延遲問題沪饺,所以用tap代替click
2>邻悬、zepto框架里的tap規(guī)避了click? 300ms的延遲問題,但會出現(xiàn)穿透問題
3>随闽、解決問題:還是用click事件 使用fastclick解決300ms延遲問題父丰;
? 或者 為元素綁定touchend事件,并在內容加上e.preventDefault();
25、寫一個手機正則驗證
reg=/^1[34578]\d{9}$/
26蛾扇、null和undefined區(qū)別
Null: 代表空值攘烛,代表一個空對象指針,用typeof運算得到 “object”镀首,你可以認為它是一個特殊的對象值
Undefined:聲明一個變量未初始化時坟漱,得到的就是undefined
27、ie盒子模型和標準w3c盒子模型
? ? 都包括margin border padding content?
? ? ? 區(qū)別:ie盒子模型的寬度= width+padding+border
? ? ? ie5及更早版本使用的是ie盒子模型更哄,ie6及以上版本在標準兼容模式下使用的是w3c盒子模型
28芋齿、css3的@font-face 如何獲得自定義字體
29、:nth-child和 :nth-of-type區(qū)別
:nth-child()選擇某個元素的一個或多個特定子元素(不限制標簽成翩,只要是子元素都算在內)
:nth-of-type() (用法同nth-child觅捆,只是它限制了標簽必須是li)選擇指定的元素
30、數(shù)組的深度拷貝?
1>麻敌、Slice方法:(只適用于不包含引用對象的一維數(shù)組的深度拷貝)
2>栅炒、concat方法(只適用于不包含引用對象的一維數(shù)組的深度拷貝)
4>、js遍歷數(shù)組的方法:也只是實現(xiàn)了錢拷貝
5>术羔、適用json方法 (此方法存在兼容問題) 并且如果對象里邊存在函數(shù)的話 也會拷貝失斢蕖(如果obj里有函數(shù),undefined级历,則序列化的結果會把函數(shù)或 defined丟失)
31释移、手機頁面頭部需要怎么設置
設置meta的 viewport? 寬度為設備寬度,初始縮放比例寥殖,最大縮放比例玩讳,最小縮放比例為1,禁止用戶手動縮放
32扛禽、用webpack怎樣構建項目
1>锋边、新建文件夾
2>皱坛、在文件夾里創(chuàng)建package.json配置文件:npm init
3>编曼、安裝webpack依賴
先全局安裝webpack:npm install webpack -g
再安裝項目依賴:npm install webpack -save-dev
4>?、創(chuàng)建 入口文件 index.js
5>剩辟、創(chuàng)建index.html
6>掐场、創(chuàng)建 webpack.config.js
7>、執(zhí)行webpack 打包輸出命令 執(zhí)行完后會多出一個dist文件夾里邊有一個bundle.js
8>贩猎、測試結果 index.html 里引入bundle.js,最后用在瀏覽器里打開index.html
33熊户、獲取瀏覽器版本號:判斷是否為ie瀏覽器
Var agent=navigator.userAgent
判斷是否為ie? if(agent.indexOf(‘msie’)){}? ? msie(Microsoft Internet Explorer)
34、webstrom里的批量替換快捷鍵
ctrl+shift+r:批量替換
35吭服、math 里的方法
向下取整 Math.floor()? ? 向上取整 Math.ceil()?
取絕對值 Math.abs()? Math.round() 四舍五入
求最大值? Math.max(12,26,56)
求最小值? Math.min(12,26,56)
獲取0-1之間的隨機數(shù) Math.random()
36嚷堡、Number()、parseInt()、parseFloat()
? ? Number():強制將其他數(shù)據類型轉成number類型蝌戒,要求如果是字符串串塑,字符串一定都需要時數(shù)字才能轉換? Number(‘12’)=>12? Number(‘12px’) =>NaN
? ? 非強制轉換:
parseInt():從左到右一個一個查找,把是數(shù)字的轉換成有效的數(shù)字北苟,中途遇到一個非有效數(shù)字就不在查找了? parseInt(‘12px’)=>12? parseInt(‘12.5px’)=>12
parseFloat():同上可以多識別一個小數(shù)點:parseFloat(‘12.5px’)=>12.5
37桩匪、將文檔聲明為h5文檔需要在文檔頭添加:<!DOCTYPE html>
38、form標簽特有的屬性?
Action:提交表單時向何處發(fā)送表單數(shù)據
Method:get友鼻、post
Enctype:發(fā)送表單數(shù)據之前如何對其進行編碼
40傻昙、position 的absolute與fixed共同點和不同點
共同點:
1>、改變行內元素的呈現(xiàn)方式彩扔,display被置block
2>妆档、讓元素脫離普通流,不占據空間
3>借杰、默認會覆蓋到非定位元素上
不同點:
1>过吻、absolute的根元素是可以設置的,而fixed的根元素 固定為瀏覽器窗口
2>蔗衡、當滾動頁面的時候fixed元素與瀏覽器窗口之間的距離是不變的
42纤虽、用HTML、css和js魔力實現(xiàn)下拉框绞惦,使得下拉框在各個瀏覽器的樣式和行為完全一致逼纸。說出你的設計方案,并且重點說明功能設計實現(xiàn)時要考慮的因素济蝉。
43杰刽、自定義一個瀏覽器兼容的事件綁定方法需要注意哪些問題?
? 使用DOM2給瀏覽器綁定事件 用addEventListener? box.addEventListener(‘click’,fn1,false)
但ie6-8不兼容只能用attachEvent? box.attachEvent(‘onclick’,fn1)
AttachEvent存在的兼容性問題:
? ? 1>王滤、順序問題:執(zhí)行的時候順序是亂的贺嫂,標準瀏覽器是按照綁定順序執(zhí)行
? ? 2>、重復問題:ie6-8可以給同一個元素的同一個行為綁定多個相同的方法
? ? 3>雁乡、this問題:ie6-8中當方法執(zhí)行的時候第喳,方法中的this不是當前元素box,而是window
45踱稍、js里的循環(huán)有哪幾種
參考網址:https://blog.csdn.net/qq_41899174/article/details/82797089?
1--for循環(huán):
1>曲饱、常規(guī)for循環(huán):
設置初始值var i=0;設置循環(huán)執(zhí)行的條件i<5珠月;執(zhí)行循環(huán)體中的內容扩淀;每一輪循環(huán)完成后都執(zhí)行i++累加操作
2>、for in循環(huán) 遍歷對象啤挎,自定義屬性名值也遍歷出來了驻谆,循環(huán)出來的是key值
3>、for of循環(huán) 循環(huán)數(shù)組,不會遍歷出自定義屬性胜臊,循環(huán)出來的是值
2--While循環(huán)
3--Do while循環(huán)
4--map()氛谜、forEach()、filter()区端、some()值漫、every() 遍歷數(shù)組
46、html和html5织盼,css和css3的區(qū)別杨何?
? ? Html和html5區(qū)別:
1>、文檔類型聲明不同:html5是<!DOCTYPE html>
2>沥邻、html5新增了結構語義化的標簽 header footer artical main nav aside
3>危虱、html5新增了繪圖功能 canvas svg
4>、新增了input元素的類型和屬性
Css和css3的區(qū)別
Css3比css多了一些樣式設置例如:border-radius? transition animation transform box-show唐全,css3對于低版本的瀏覽器不兼容
47埃跷、undefined和null的區(qū)別
? Undefined是聲明了一個變量未初始化,得到的是undefined
? Null 代表“空值”邮利,代表一個空對象指針弥雹,使用typeof得到”object”,所有你可以認為它是一個特殊的對象值
48延届、document.write和innerHTML的區(qū)別
? Document.write是直接將內容寫入頁面的內容流剪勿,會導致頁面被重寫
? InnerHTML將內容寫入某個DOM節(jié)點,不會導致頁面全部重繪
? innerHTML很多情況下優(yōu)于Document.write
49方庭、ajax過程
1>厕吉、創(chuàng)建一個ajax對象? var? xhr=new XMLHttpRequest
2>、設置回調函數(shù)? xhr.onreadystatechange=callback;
3>械念、使用open方法與服務器建立連接 xhr.open(“get”,”/data.tex”,false)
4>头朱、向服務器發(fā)送請求? xhr.send()
5>、在回調函數(shù)中針對不同的響應狀態(tài)進行處理
If(xhr.readyState===4&& /^2\d{2}$/.test(xhr.status)){
Var val=xhr.responseText
Document.getElementById(“info”).innHTML=val
}
50龄减、進程和線程的區(qū)別
進程是資源分配的最小單位项钮,線程是程序執(zhí)行的最小單位
進程有自己的獨立地址空間
同一進程下線程共享全局變量等數(shù)據
多個線程程序只要有一個線程死掉整個進程也就死掉了,但不會影響其他進程
51欺殿、get寄纵、post區(qū)別和各自的特點
區(qū)別:
1>鳖敷、“大小問題”:get請求傳遞給服務器的內容存在大小限制脖苏,post理論上是沒有限制的,因為get通過url傳參給服務器定踱,每個瀏覽器對于url的長度是存在限制的
2>棍潘、“緩存問題”:get請求會出現(xiàn)緩存,post是沒有緩存的,在項目中用get請求一般是不會讓其出現(xiàn)緩存“清除緩存”在url末尾追加一個隨機數(shù)
3>亦歉、“安全問題”:get不安全恤浪,而post相對安全一些
4>、“傳參上”:get使用url傳參肴楷,post在請求主體中傳參
5>水由、“后退頁面”:get請求后退頁面時不產生影響,post會重新提交請求
6>赛蔫、“參數(shù)是否可見”:get參數(shù)url可見砂客,post? url參數(shù)不可見
特點:get一般用于從服務器獲取數(shù)據
? ? ? Post一般用于向服務器推送數(shù)據
52 、解釋下浮動和它的工作原理呵恢?清除浮動的技巧
浮動元素脫離文檔流鞠值,不占據空間
1>、使用空標簽清除浮動
2>渗钉、使用overflow
3>彤恶、使用after偽類對象清除浮動
53、js延遲加載的方式有哪些鳄橘?
1>声离、defer屬性? <script src=”file.js” defer></script>
? ? 瀏覽器會并行下載file.js和其他有defer屬性的script,并不會阻塞頁面的后續(xù)處理瘫怜,所有的defer腳本保證是按順序依次執(zhí)行的
2>抵恋、async屬性? <script src=”file.js” async></script>
? async屬性是html5新增的。作用和defer類似宝磨,但是它將在下載后盡快執(zhí)行弧关,不能保證腳本會按順序執(zhí)行。它們將在onload事件之前完成
Firefox3.6唤锉、Opera 10.5世囊、IE 9和 最新的Chrome 和 Safari 都支持 async 屬性×椋可以同時使用 async 和 defer株憾,這樣IE 4之后的所有IE 都支持異步加載。
6>晒衩、讓js最后加載
54嗤瞎、git命令
git init? (初始化本地git環(huán)境)
git clone xxx (克隆一份代碼到本地倉庫)
git status(查看工作區(qū)、暫存區(qū)的狀態(tài))
git add 文件名 (將工作區(qū)新建/修改的內容添加到暫存區(qū))
git commit -m “commit message” 文件名(將暫存區(qū)的內容提交到本地庫)
git push 把本地庫的修改提交到遠程庫
git checkout master/branch //切換到某個分支
git checkout -b test //新建test分支
git checkout -d test //刪除test分支
git merge master //假設當前在test分支上面听系,把master分支上的修改同步到test分支上
git log //查看當前分支上面的日志信息
55贝奇、【功能】有一個問卷調查,一個問題可能要一個單獨的驗證靠胜,比如第一個題:單選掉瞳、第二個題是選擇毕源。用原型上的類或者es6的class
56、Query 在元素末尾追加內容
可以用innerHTML但會對原來造成一定影響陕习,用append方法 把內容追加到元素末尾
57霎褐、==比較
58、node的優(yōu)點和缺點
優(yōu)點:
? ? 采用事件驅動 異步編程该镣;
? ? 非阻塞模式的io處理使node.js在相對較低的資源消耗下的高性能域出眾的負載能力冻璃;
Node.js輕量高效,是數(shù)據密集型實時應用系統(tǒng)的完美解決方案损合;
缺點:
? ? 單線程俱饿,單進程,只支持單核cpu塌忽,不能充分的利用多核cpu服務
? ? 對程序員要求高一旦進程崩潰拍埠,整個web服務就崩潰了;
? ? 不適合做復雜性能很高的計算土居;
59枣购、element-ui 和html的區(qū)別
60、canvas和svg的區(qū)別
Canvas 是用于在網頁上繪制圖形擦耀,
Svg是可伸縮矢量圖形棉圈,用于定義網絡的基于矢量的圖形,圖像在放大或者改變尺寸的情況下圖形質量不會有損失
62眷蜓、用canvas畫一條線
63分瘾、清楚浮動
方法一:使用偽類after(推薦)
.clearfix
? display:inline-block
? &:after
? ? display:block
? ? content:'.'
? ? clear:both
? ? height: 0
? ? line-height: 0
? ? visibility:hidden
方法二:在結尾處空div標簽
.clear{clear:both}
? ? ? <div class=”clear”></div>
方法三:給父級div加 overflow:hidden ,必須定義width或zoom:1 ,同時不能加height
.div1{width:98%;overflow:hidden}
方法四:給父級div加 overflow:auto,必須定義width或zoom:1 吁系,同時不能加height
.div1{width:98%;overflow:auto}
64德召、移動端布局用vm
65、300ms延遲的由來
66汽纤、網站安全問題
參考地址:https://blog.csdn.net/qq_38160012/article/details/80574746
1>上岗、盡量使用post ,限制get的使用
2>蕴坪、過濾用戶輸入的內容不能帶html標簽
3>肴掷、token驗證
4>、驗證碼:強制用戶必須與應用進行交互背传,才能完成最終請求
67呆瞻、實現(xiàn)響應式布局
1>、添加 meta標簽
? ? <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="HandheldFriendly" content="true">
2>径玖、先做出一版不是響應式 的pc版痴脾;width不設置或者用百分比
3>、圖片設置? img{max-width:100%;height:auto}
4>挺狰、在css里添加斷點 (由又大到忻鞴)排在最下邊的權限最高
? ? @media? screen? and (max-width: 960px) {}
/*ipad*/
@media? screen? and (max-width: 768px) {}
/*iphone 6 plus*/
@media? screen? and (max-width: 414px) {}
/*iphone 6*/
@media? screen? and (max-width: 375px) {}
/*iphone 4*/
@media? screen? and (max-width: 320px) {}
68、decodeURI的用法
? 1>丰泊、decodeURI() 函數(shù)可對 encodeURI() 函數(shù)編碼過的 URI 進行解碼薯定。
? 2>、decodeURIComponent() 函數(shù)可對 encodeURIComponent() 函數(shù)編碼的 URI 進行解碼瞳购。
區(qū)別:encodeURI()不會對本身屬于URI的特殊字符進行編碼话侄,例如冒號、正斜杠学赛、問號和井字號年堆;而encodeURIComponent()則會對它發(fā)現(xiàn)的任何非標準字符進行編碼
69、用jquery獲取選中input的val值
如果input的name是相同的可以用: $("input[name='man']:checked").val()
如果name是不同的:$("input:checked").val()
70盏浇、簡述js和jquery中on()变丧、click()和onclick()綁定點擊事件的方法和區(qū)別
Js中事件綁定 :
? odiv.onclick=function(){}
? odiv.addEventListener(“click”,function(){},false)事件監(jiān)聽
Jquery中事件綁定:
? on(),bind(),delegate(),live() 就這四種方式
?click()方法 當單機時觸發(fā)click事件 eg:$("p").click(function(){})
72、Typeof
參考地址:https://blog.csdn.net/yellowmushroom/article/details/80249493
基本數(shù)據類型返回的是自己對應的類型
復雜數(shù)據類型绢掰,如果是對象痒蓬,則返回的是object,如果的function類型,則返回的是function
73、setTimeout
for(var i=0;i<5;i++){
setTimeout(function(){
console.log(i)
},1000)
}
解決辦法一:
for(var i=0;i<5;i++){
(function(i){
setTimeout(function(){
console.log(i)
},1000)
})(i)
}
解決辦法二:
for(let i=0;i<5;i++){
setTimeout(function(){
console.log(i)
},1000)
}
74滴劲、什么是“平穩(wěn)退化”和“漸進增強”理念攻晒?
“平穩(wěn)退化”是在瀏覽器沒有JavaScript功能,或沒有開啟JavaScript功能情況下班挖,我們解決這種問題的 方式鲁捏;“漸進增強”是在瀏覽器開啟JavaScript功能后,如果瀏覽器版本不支持某些JavaScript能力萧芙,我們解決這種問題的方式给梅。
75、在ios上打開列表頁双揪,滾動的時候會出現(xiàn)卡頓
?解決方式:
?over-flow: auto;? ? /* winphone8和android4+ */
-webkit-overflow-scrolling: touch;? ? /* ios5+ */
如果還是不行破喻,在滾動區(qū)域元素添加以下方法:
1.添加上overflow-y: scroll;
2.添加z-index盟榴;
76曹质、多行文字垂直居中
.container{display:table}
.text{display:table-cell;vertical-align:middle}