關於js計算非等寬字型寬度的方法

2021-09-05 12:30:58 字數 1224 閱讀 7102

首先在body外插入乙個absolute的容器避免重繪:

const svgwidthtestcontainer = document.createelement('svg');

svgwidthtestcontainer.setattribute('id', 'svgwidthtest');

svgwidthtestcontainer.style.csstext = `

position: absolute;

width: 500px;

height: 500px;

left: -1000px;

top: -1000px;

visibility: 'hidden';

`;

export function getsvgswidth(texts) );

const textelementswidth = textelements.map(element => element.getboundingclientrect().width);

svgwidthtestcontainer.removechild(textsfragment);

return textelementswidth;

}// 得到1-1000000數字在螢幕上的寬度

console.log(getsvgswidth([...array(100000).keys()]));

// 準備好text

const textelementtest = document.createelement('text');

export function getsvgswidthwithonetext(texts) );

return textelementswidth;

}

// 可以做乙個效能測試,我這邊算出來他倆一直保持著5倍左右的差距

const datestart = new date().gettime();

console.log(getsvgswidth([...array(100000).keys()]));

console.log(getsvgswidthwithonetext([...array(100000).keys()]));

console.log(new date().gettime() - datestart);

關於js計算非等寬字型寬度的方法

首先在body外插入乙個absolute的容器避免重繪 const svgwidthtestcontainer document.createelement svg svgwidthtestcontainer.setattribute id svgwidthtest svgwidthtestcont...

js正則貪婪模式 JS關於正則的非貪婪模式

首先正則是很複雜,很巧妙的。你舉的這個例子說明貪婪模式和非貪婪模式是不對的。啥是貪婪模式,和非貪婪模式?貪婪模式,就是 貪得無厭 有了還要,有多少要多少,指導沒有 字串尾 非貪婪模式,恰好相反,匹配了就不要了,就得到結果。我先舉乙個例子來說明,貪婪模式和非貪婪模式,只在你的基礎上稍稍改動,為了後面對...

js中關於 如何進行計算

首先js是弱型別語言,所以導致js的隱式型別轉換頻繁。js裡隱式轉換的規則為 如果其中有乙個運算元為string,則將另乙個運算元隱式的轉換為string,然後進行字串拼接得出結果。如果運算元為物件 或者是陣列 這種複雜的資料型別,那麼就將兩個運算元都轉換為字串,進行拼接 進行字串轉換得到結果為 s...