@1移動端1px問題,為什么會有坝咐?如何解決循榆?
在開發(fā)中,為什么移動端CSS里面寫了1px墨坚,實際上看起來比1px粗秧饮;了解設備物理像素和邏輯像素的同學應該很容易理解,其實這兩個px的含義其實是不一樣的框杜,UI設計師要求的1px是指設備的物理像素1px浦楣,而CSS里記錄的像素是邏輯像素,它們之間存在一個比例關系咪辱,通痴窭停可以用 javascript 中的window.devicePixelRatio來獲取,也可以用媒體查詢的-webkit-min-device-pixel-ratio來獲取油狂。當然历恐,比例多少與設備相關
解決方案
1:小數值:
2:.border-image
@2typeof和instanceof相同點與不同點
相同點: JavaScript 中 typeof 和 instanceof 常用來判斷一個變量是否為空, 或者是什么類型的专筷。
不同點
typeof 1.返回值是一個字符串弱贼, 用來說明變量的數據類型。
2.typeof 一般只能返回如下幾個結果: number, boolean, string, function, object, undefined磷蛹。
if (typeof a != "undefined") {
console.log("ok");
} eles {
console.log("not ok");
}
//下面的代碼是錯誤的
// if (a) //因為如果 a 不存在( 未聲明) 則會出錯吮旅。
// if (a) {
// console.log("ok");
// } else {
// console.log('cc');
// }
2:instanceof:
1.返回值為布爾值;
- instanceof 用于判斷一個變量是否屬于某個對象的實例。
// var a = new Array();
// alert(a instanceof Array); // true
// alert(a instanceof Object) // true
//如上味咳, 會返回 true庇勃, 同時 alert(a instanceof Object) 也會返回 true;
// 這是因為 Array 是 object 的子類。
// alert(b instanceof Array) // b is not defined
// function Test() {};
// var a = new test();
// alert(a instanceof test) // true
@3JS單線程和多線程
程序槽驶、進程责嚷、線程
程序:由源代碼生成的可執(zhí)行應用。 (例如:QQ.app)
進程:一個正在運行的程序可以看做一個進程掂铐,(例如:正在運行的QQ警示一個勁曾)罕拂,進程擁有獨立運行所需要的全部資源
線程:程序中獨立運行的代碼段。(例如:接收QQ消息的代碼)
一個進程是由一或多個線程組成全陨,進程只負責資源的調度和分配爆班,線程才是程序真正的執(zhí)行單元,負責代碼的執(zhí)行辱姨。
單線程
每個正在運行的程序(即進程)蛋济,至少包括一個線程,這個線程叫主線程
主線程在程序啟動時被創(chuàng)建炮叶,用于執(zhí)行main函數
只有一個主線程的程序碗旅,稱作單線程程序
主線程負責執(zhí)行程序的所有代碼(UI展現以及刷新,網絡請求镜悉,本地存儲等等)祟辟。這些代碼只能順序執(zhí)行,無法并發(fā)執(zhí)行
多線程
擁有多個線程的程序侣肄,稱作多線程程序旧困。
iOS允許用戶自己開辟新的線程,相對于主線程來講稼锅,這些線程吼具,稱為子線程
可以根據需要開辟若干子線程
子線程和主線程都是獨立的運行單元,各自的執(zhí)行互不影響矩距,因此能夠并發(fā)執(zhí)行
單線程拗盒、多線程的區(qū)別
單線程程序:只有一個線程,代碼順序執(zhí)行锥债,容易出現代碼阻塞(頁面假死)
多線程程序:有多個線程陡蝇,線程間獨立運行,能有效地避免代碼阻塞哮肚,并且提高程序的運行性能