成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

「查缺補漏」一些 Javascript 的小技巧筆記

開發
這篇文章的話,分享一些最近使用React開發項目時,用到的小技巧,其實也算是JavaScript中的一些技巧吧,

?[[343816]]??

 前言

這篇文章的話,分享一些最近使用React開發項目時,用到的小技巧,其實也算是JavaScript中的一些技巧吧,內容主要有一下幾點??

產生隨機不重復id

快速取整數

合理布局樣式

字符串xml的轉換

特殊字符串的排序

獲取數組的最大最小值

在條件中使用邏輯與或

快速取整數

在JavaScript中去整數的話,最常見的是Math.round()進行四舍五入,Math.floor()以及Math.ceil()等方法取整數。接下來還有一種去整數的方法??

const num = Math.random() * 100 console.log(num)   // 隨機數字 console.log(~~num) // 取得整數的部分 

這樣子,也是一種很方便,而且很容易記住的方法來獲取整數。

是不是get一個小技巧呢??

獲取數組的最大最小值

這是最近遇到的一個小問題,當然了,求解這個問題不是難點,我覺得這是一個小技巧,所以就分享出來??

const numbers = [1, 2, 3, 99, 4, 4, -1]; const maxNumber = Math.max.apply(Math, numbers); const minNumber = Math.min.apply(Math, numbers); 

特殊字符串的排序

最近在排序字母的時候,遇到一點小問題,這次把它給分享出來??

使用的是「localeCompare」這個函數,那它的返回值是哪些

首先,它返回一個數字表示是否 「引用字符串」 在排序中位于 「比較字符串」 的前面,后面,或者二者相同。

這個返回值有三個??

當 「引用字符串」 在 「比較字符串」 前面時返回 -1

當 「引用字符串」 在 「比較字符串」 后面時返回 1

相同位置時返回 0

舉個例子??

'a'.localeCompare('c') // 返回的值是 -1 'check'.localeCompare('against')  // 返回的值是 1  'a'.localeCompare('a') // 返回的值是 0 

掌握了基本的使用方法,排序數組就很簡單了??

const strList = ['a','d','f','h','e'] strList.sort((a, b) => a.localeCompare(b)) console.log(strList)  // ["a", "d", "e", "f", "h"] 

是不是get一個小技巧呢

在條件中使用邏輯與或

最近項目中,學會得一個小技巧,就是邏輯與或去渲染對應的場景,通過state中的isRight來更新答錯答錯的效果。

render() {     const {         _gameContainer,         _optionStyle,         _mode,         state: {             isRight         }     } = this     let style = {}          return (         <div style = {style}>             { _mode === MODE.NORMAL && this._renderFourOptionsBg()}             {/* 正確錯誤,提示的效果顯示 */}             {isRight && this._renderCorrectBg()}         </div>     ) } 

哈哈哈,get一個小技巧??

合理布局樣式

最近在用react開發中,又get到一個小技巧,這里分享一下,我們經常會遇到布局,那么如何優雅的布局呢??

舉個例子??,拿到UI時,有三個按鈕樣式基本上一樣,就是定位不同,那么我們可以這樣子來寫??

// 三個按鈕的基本樣式 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%',   } })  // 每個不同按鈕的具體信息 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中,我們定義好了這些數據后,應該如何去渲染呢??

_renderBottomEleBg() {   const {       _threeBaseStyle,       _threeOptionsStyle,       state: {           isRight,           userAnswer       }   } = this   const _index = this._options.findIndex(e => e === userAnswer)   return (       <div>           {               _threeBaseStyle.map((el,i) => {                   return (                       <div                           key = {i}                           style = { {...el,..._threeOptionsStyle,backgroundImage:((isRight && _index === i) ? `url(${BOTTOM_CORRECT_BG})` : `url(${BOTTOM_PROMPT_BG})`)} }                       >                       </div>                   )               })           }       </div>   ) } 

合理的減少代碼量,也算是開發中的一個小技巧吧??

產生隨機不重復id

當你有這個需求的時候,希望產生隨機且不同的id時,這時,我們應該使用什么方式呢??

有個不錯的方式??「隨機數+時間戳」

1.首先使用Math.random() 產生0~1之間的約16~17位的浮點數,再通過toString(36)方法縮短其位數。

// 通常而言,這個n是自己定的 Math.random().toString(36).substr(2,n)   

2.使用Date.now() 獲取目前毫秒數,一共13位,同樣可以通過這個toString(36)的方法縮短其位數。

// n自己來規定大小  Date.now().toString(36).substr(0,n)  //Date.now().toString(36).substr(0,4) 

那么他們兩個組合在一起的話,應該就不可能有重復的啦??

Date.now().toString(36).substr(0,n) + Math.random().toString(36).substr(2,n)   

字符串xml的轉換

你是不是遇到過在JavaScript中獲取XML,但是得到的東西又不是你想要的東西呢,那么有沒有更加簡單的方法呢?接下來我們看看下面所提到的??

「XML轉字符串String??

xmlToString = (new XMLSerializer()).serializeToString(xmlObject) 

字符串轉XML

stringToXML = (new DOMParser()).parseFromString(xmlString, "text/xml") 




責任編輯:姜華 來源: 前端UpUp
相關推薦

2022-03-10 13:11:11

DDD領域驅動設計

2011-10-26 20:55:43

ssh 安全

2022-12-02 14:58:27

JavaScript技巧編程

2020-09-09 09:15:58

Nginx體系進程

2022-02-17 13:58:38

Linux技巧文件

2024-03-11 15:08:26

Linux操作系統進程

2020-02-26 13:38:44

數據結構JavaScript人生第一份工作

2015-08-17 15:53:58

Linux桌面

2016-09-12 17:19:51

JavaScriptArray操作技巧

2021-04-16 08:49:55

JavaScript技巧參數

2011-07-19 18:11:09

iPhone 開發

2022-08-28 23:51:04

編輯器vim代碼

2011-06-01 16:50:21

JAVA

2013-03-29 13:17:53

XCode調試技巧iOS開發

2012-05-21 10:13:05

XCode調試技巧

2011-07-12 09:47:53

WebService

2011-05-23 18:06:24

站內優化SEO

2021-10-12 23:10:58

UnsafeJavaJDK

2021-02-16 09:02:59

Python代碼技巧

2019-11-22 10:10:46

IT工具技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产美女一区二区 | 国产在线一区二区 | 黄色成人在线观看 | 亚洲精品一区二区三区在线 | 久久99深爱久久99精品 | 欧美一区免费 | 天堂va在线观看 | 午夜精品久久久久久久久久久久 | 精品一区二区观看 | 亚洲品质自拍视频网站 | 99久久婷婷国产综合精品电影 | 色婷婷久久久亚洲一区二区三区 | 青青草视频免费观看 | 国产成人免费视频网站视频社区 | 国产一区二区三区 | 毛片区| 日韩欧美一区二区三区四区 | 国产福利在线播放 | 国产精品污www在线观看 | 国产精品无码永久免费888 | 国产视频91在线 | 日韩视频区| 国产精品精品久久久 | 国产精品视频一二三区 | 日韩午夜场| 久久久久久久久久爱 | 精品一区二区三区在线观看 | 中文字幕成人免费视频 | 网色 | 久国产精品 | 小草久久久久久久久爱六 | 午夜免费观看 | 国产精品精品视频一区二区三区 | 久久精品黄色 | 成人国产免费视频 | 美女久久久久 | 欧美日韩国产一区 | 亚洲永久免费观看 | 视频在线一区二区 | 大象视频一区二区 | 九九热免费视频在线观看 |