單位 | 中文名稱 | 轉(zhuǎn)換 |
inch | 英寸 | 1英寸=2.54厘米 |
cm | 厘米 | |
pt | 磅或點數(shù),是point簡稱 | 1pt=1/72(英寸) |
px | 像素,是pix簡稱 | |
下表參照顯示器96dbi(每英寸點數(shù))顯示進行換算結(jié)果。比如:6.5pt = 6.5 * 1/72 * 96 = 8.6px,像素肯定不能出現(xiàn)小數(shù)點的,一般是取小顯示。下表字體已經(jīng)按照各行所代表的字號大小進行顯示。
字號 | 磅(pt) | 像素(px) |
小六 | 6.5 | 8px |
六號 | 7.5 | 10px |
小五 | 9 | 12px |
五號 | 10.5 | 14px |
小四 | 12 | 16px |
四號 | 14 | 18px |
小三 | 15 | 20px |
三號 | 16 | 21px |
小二 | 18 | 24px |
二號 | 22 | 29px |
小一 | 24 | 32px |
一號 | 26 | 34px |
小初 | 36 | 48px |
初號 | 42 | 56px |
原文: JavaScript, We Hardly new Ya --Douglas Crockford。
JavaScript是一門基于原型的語言,但它卻擁有一個 new 操作符使得其看起來象一門經(jīng)典的面對對象語言。那樣也迷惑了程序員們,導(dǎo)致一些有問題的編程模式。
其實你永遠(yuǎn)不需要在JavaScript使用 new Object()。用字面量的形式{}去取代吧。
同理,不要使用 new Array() ,而代之以字面量[]。JavaScript中的數(shù)組并不象Java中的數(shù)組那樣工作的,使用類似Java的語法只會讓你糊涂。
同理不用使用 new Number, new String, 或者 new Boolean。這些的用法只會產(chǎn)生無用的類型封裝對象。就直接使用簡單的字面量吧。
不要使用 new Function 去創(chuàng)建函數(shù)對象。用函數(shù)表達(dá)式更好。比如:
frames[0].onfocus = new Function(“document.bgColor=’antiquewhite’”)
更好的寫法是:
frames[0].onfocus = function () {document.bgColor = ‘antiquewhite’;};
第二種形式讓腳本編譯器更快的看到函數(shù)主體,于是其中的語法錯誤也會更快被檢測出來。有時候程序員使用 new Function 是因為他們沒有理解內(nèi)部函數(shù)是如何工作的。
selObj.onchange = new Function(“dynamicOptionListObjects["+
dol.index+"].change(this)”);
如果我們讓用字符串做函數(shù)體,編譯器不能看到它們。如果我們用字符串表達(dá)式做函數(shù)體,我們同樣也看不到它們。更好的方式就是不要盲目編程。通過制造一個返回值為函數(shù)的函數(shù)調(diào)用,我們可以明確的按值傳遞我們想要綁定的值。這允許我們在循環(huán)中初始化一系列 selObj 對象。
selObj.onchange = function (i) {
return function () {
dynamicOptionListObjects[i].change(this);
};
}(dol.index);
直接對一個函數(shù)使用new永遠(yuǎn)不是一個好主意。比如, new function 對構(gòu)造新對象沒有提供什么優(yōu)勢。
myObj = new function () {
this.type = ‘core’;
};
更好的方式是使用對象字面量,它更輕巧,更快捷。
myObj = {
type: ‘core’
};
假如我們需要創(chuàng)建的對象包含的方法需要訪問私有變量或者函數(shù),更好的方式仍然是避免使用new.var foo = new function() {
function processMessages(message) {
alert(“Message: ” + message.content);
}
this.init = function() {
subscribe(“/mytopic”, this, processMessages);
}
}
通過使用 new 去調(diào)用函數(shù),對象會持有一個無意義的原型對象。這只會浪費內(nèi)存而不會帶來任何好處。如果我們不使用new,我們就不用在對象鏈維護一個無用的prototype對象。所以我們可以用()來正確的調(diào)用工廠函數(shù)。var foo = function () {
function processMessages(message) {
alert(“Message: ” + message.content);
}
return {
init: function () {
subscribe(“/mytopic”, this, processMessages);
}
};
}();
所以原則很簡單: 唯一應(yīng)該要用到new操作符的地方就是調(diào)用一個古老的構(gòu)造器函數(shù)的時候。當(dāng)調(diào)用一個構(gòu)造器函數(shù)的時候,是強制要求使用new的。有時候可以來new一下, 有的時候還是不要了吧。