1、為什么JavaScript是單線程的?
作為瀏覽器的腳本語言,JavaScript的主要用途是與用戶互動,以及操作DOM。這決定了它只能是單線程,否則會帶來復雜的同步問題。
為了利用多核CPU的計算能力,HTML5提出Web Worker標準,允許JavaScript腳本創建多個線程,但是子線程完全受主線程控制,且不得操作DOM。因此,沒有改變JavaScript單線程的本質。
2、js事件循環 事件輪詢 event loop
重復執行step2、3、4;稱為事件循環。
http://note.youdao.com/noteshare?id=9e52de23f6b7a1036c17bf8c4d65d7dd&sub=BE38B92ED5D44746971370C6190C13C2
3、js中點擊事件的三種寫法
<button id="btn">按鈕</button>
方式一:var btn = document.getElementById('btn');
? btn.onclick = function() {? alert(123);? };
方式二:btn.addEventListener('click',function(){? alert(123);? },false);
方式三:<button id="btn" onclick= "demo()">按鈕</button>
? function demo() {? alert(123);? ? }
4、ES6的箭頭函數問題及let、const變量聲明問題
5、position問題,父元素不加定位,子元素position:absolute
6、flex優點
不需要進行瀏覽器兼容測試
不再有布局界面的痛苦
簡單的域驗證
豐富的媒體支持
實現表現層和內容的真正分離
flex開發環境
CSS支持
7.實現一個div,左邊固定div寬度200px,右邊div自適應
<div class= "container">
? ? <div class="left"></div>
? ? <div class="rigth"></div></div>
簡單三種方案:BFC(塊級格式上下文)
.container{
? ? ? ? width:1000px;height:400px;border: 1px solid red;
? ? }
.left{
? ? ? ? width:200px;height:100%;background: gray;
? ? ? ? float: left;? ? }
.rigth{
height:100%;
? ? ? ? overflow:hidden;? /* 觸發bfc */? ? ? ? background: green;
? ? }
table布局
設置父容器display為table,其他兩個子元素設置table-cell
flex布局
設置父容器display為flex,left設置flex為none,right設置flex為1