新聞中心
?[[343816]]??

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都砂巖浮雕等,在重慶網(wǎng)站建設(shè)公司、成都全網(wǎng)營銷、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
前言
這篇文章的話,分享一些最近使用React開發(fā)項(xiàng)目時(shí),用到的小技巧,其實(shí)也算是JavaScript中的一些技巧吧,內(nèi)容主要有一下幾點(diǎn)
產(chǎn)生隨機(jī)不重復(fù)id
快速取整數(shù)
合理布局樣式
字符串xml的轉(zhuǎn)換
特殊字符串的排序
獲取數(shù)組的最大最小值
在條件中使用邏輯與或
快速取整數(shù)
在JavaScript中去整數(shù)的話,最常見的是Math.round()進(jìn)行四舍五入,Math.floor()以及Math.ceil()等方法取整數(shù)。接下來還有一種去整數(shù)的方法
const num = Math.random() * 100 console.log(num) // 隨機(jī)數(shù)字 console.log(~~num) // 取得整數(shù)的部分
這樣子,也是一種很方便,而且很容易記住的方法來獲取整數(shù)。
是不是get一個(gè)小技巧呢????
獲取數(shù)組的最大最小值
這是最近遇到的一個(gè)小問題,當(dāng)然了,求解這個(gè)問題不是難點(diǎn),我覺得這是一個(gè)小技巧,所以就分享出來
const numbers = [1, 2, 3, 99, 4, 4, -1]; const maxNumber = Math.max.apply(Math, numbers); const minNumber = Math.min.apply(Math, numbers);
特殊字符串的排序
最近在排序字母的時(shí)候,遇到一點(diǎn)小問題,這次把它給分享出來
使用的是「localeCompare」這個(gè)函數(shù),那它的返回值是哪些
首先,它返回一個(gè)數(shù)字表示是否 「引用字符串」 在排序中位于 「比較字符串」 的前面,后面,或者二者相同。
這個(gè)返回值有三個(gè)
當(dāng) 「引用字符串」 在 「比較字符串」 前面時(shí)返回 -1
當(dāng) 「引用字符串」 在 「比較字符串」 后面時(shí)返回 1
相同位置時(shí)返回 0
舉個(gè)例子
'a'.localeCompare('c') // 返回的值是 -1 'check'.localeCompare('against') // 返回的值是 1 'a'.localeCompare('a') // 返回的值是 0
掌握了基本的使用方法,排序數(shù)組就很簡單了
const strList = ['a','d','f','h','e'] strList.sort((a, b) => a.localeCompare(b)) console.log(strList) // ["a", "d", "e", "f", "h"]
是不是get一個(gè)小技巧呢
在條件中使用邏輯與或
最近項(xiàng)目中,學(xué)會(huì)得一個(gè)小技巧,就是邏輯與或去渲染對(duì)應(yīng)的場(chǎng)景,通過state中的isRight來更新答錯(cuò)答錯(cuò)的效果。
render() { const { _gameContainer, _optionStyle, _mode, state: { isRight } } = this let style = {} return ( { _mode === MODE.NORMAL && this._renderFourOptionsBg()} {/* 正確錯(cuò)誤,提示的效果顯示 */} {isRight && this._renderCorrectBg()} ) }
哈哈哈,get一個(gè)小技巧????
合理布局樣式
最近在用react開發(fā)中,又get到一個(gè)小技巧,這里分享一下,我們經(jīng)常會(huì)遇到布局,那么如何優(yōu)雅的布局呢
舉個(gè)例子,拿到UI時(shí),有三個(gè)按鈕樣式基本上一樣,就是定位不同,那么我們可以這樣子來寫
// 三個(gè)按鈕的基本樣式 this._threeBaseStyle = Array(3).fill(null).map( (_, i) => { const left = (757 + i * (238 + 21)) * scale - leftCut return { position: 'absolute', width: 238 * scale, height: 59 * scale, top: 596 * scale, left, backgroundSize: '100% 100%', } }) // 每個(gè)不同按鈕的具體信息 this._threeOptionsStyle = [{ top: 159 * scale, left: 1340 * scale - leftCut, },{ top: 253.6 * scale, left: 1431.4 * scale - leftCut, },{ top: 347.3 * scale, left: 1339.6 * scale - leftCut, }]
在react中,我們定義好了這些數(shù)據(jù)后,應(yīng)該如何去渲染呢
_renderBottomEleBg() { const { _threeBaseStyle, _threeOptionsStyle, state: { isRight, userAnswer } } = this const _index = this._options.findIndex(e => e === userAnswer) return ( { _threeBaseStyle.map((el,i) => { return ( ) }) } ) }
合理的減少代碼量,也算是開發(fā)中的一個(gè)小技巧吧????
產(chǎn)生隨機(jī)不重復(fù)id
當(dāng)你有這個(gè)需求的時(shí)候,希望產(chǎn)生隨機(jī)且不同的id時(shí),這時(shí),我們應(yīng)該使用什么方式呢
有個(gè)不錯(cuò)的方式「隨機(jī)數(shù)+時(shí)間戳」
1.首先使用Math.random() 產(chǎn)生0~1之間的約16~17位的浮點(diǎn)數(shù),再通過toString(36)方法縮短其位數(shù)。
// 通常而言,這個(gè)n是自己定的 Math.random().toString(36).substr(2,n)
2.使用Date.now() 獲取目前毫秒數(shù),一共13位,同樣可以通過這個(gè)toString(36)的方法縮短其位數(shù)。
// n自己來規(guī)定大小 Date.now().toString(36).substr(0,n) //Date.now().toString(36).substr(0,4)
那么他們兩個(gè)組合在一起的話,應(yīng)該就不可能有重復(fù)的啦
Date.now().toString(36).substr(0,n) + Math.random().toString(36).substr(2,n)
字符串xml的轉(zhuǎn)換
你是不是遇到過在JavaScript中獲取XML,但是得到的東西又不是你想要的東西呢,那么有沒有更加簡單的方法呢?接下來我們看看下面所提到的
「XML轉(zhuǎn)字符串String」
xmlToString = (new XMLSerializer()).serializeToString(xmlObject)
字符串轉(zhuǎn)XML
stringToXML = (new DOMParser()).parseFromString(xmlString, "text/xml")
標(biāo)題名稱:「查缺補(bǔ)漏」一些Javascript的小技巧筆記
本文鏈接:http://www.dlmjj.cn/article/djecgoe.html


咨詢
建站咨詢
