起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > Web前端 > Web前端开发工程师要掌握的JavaScript代码片段(二)

Web前端开发工程师要掌握的JavaScript代码片段(二)

时间:2021-07-11 09:11:03来源:Web培训机构 作者:Web前端开发网 已有: 名学员访问该课程

  快捷搜索:JavaScript代码片段

前言: 今天小T要跟大家分享的文章是关于Web前端开发工程师要掌握的JavaScript代码片段(二)。正在从事Web前端开发工作的小伙

今天小T要跟大家分享的文章是关于Web前端开发工程师要掌握的JavaScript代码片段(二)。正在从事Web前端开发工作的小伙伴们来和小T一起看一看吧,希望本篇文章能够对正在从事Web前端开发工作的小伙伴们有所帮助。

25、用range初始化数组

使用Array(end-start)创建所需长度的数组,使用map()来填充范围中的所需值,可以省略start使用默认值0。

const initializeArrayRange = (end, start = 0) =>

Array.apply(null, Array(end - start)).map((v, i) => i + start);

// initializeArrayRange(5) -> [0,1,2,3,4]

26、用值初始化数组

使用Array(n)创建所需长度的数组,fill(v)以填充所需的值,可以忽略value使用默认值0。

const initializeArray = (n, value = 0) => Array(n).fill(value);

// initializeArray(5, 2) -> [2,2,2,2,2]

27、列表的最后

返回arr.slice(-1)[0]

const last = arr => arr.slice(-1)[0];

// last([1,2,3]) -> 3

28、测试功能所花费的时间

使用performance.now()获取函数的开始和结束时间,console.log()所花费的时间。第一个参数是函数名,随后的参数传递给函数。

const timeTaken = callback => {

console.time('timeTaken');

const r = callback();

console.timeEnd('timeTaken');

return r;

};

// timeTaken(() => Math.pow(2, 10)) -> 1024

// (logged): timeTaken: 0.02099609375ms

29、来自键值对的对象

使用Array.reduce()来创建和组合键值对。

const objectFromPairs = arr => arr.reduce((a, v) => (a[v[0]] = v[1], a), {});

// objectFromPairs([['a',1],['b',2]]) -> {a: 1, b: 2}

30、管道

使用Array.reduce()通过函数传递值。

const pipe = (...funcs) => arg => funcs.reduce((acc, func) => func(acc), arg);

// pipe(btoa, x => x.toUpperCase())("Test") -> "VGVZDA=="

31、Powerset

使用reduce()与map()结合来遍历元素,并将其组合成包含所有组合的数组。

const powerset = arr =>

arr.reduce((a, v) => a.concat(a.map(r => [v].concat(r))), [[]]);

// powerset([1,2]) -> [[], [1], [2], [2,1]]

32、范围内的随机整数

使用Math.random()生成一个随机数并将其映射到所需的范围,使用Math.floor()使其成为一个整数。

const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

// randomIntegerInRange(0, 5) -> 2

33、范围内的随机数

使用Math.random()生成一个随机值,使用乘法将其映射到所需的范围。

const randomInRange = (min, max) => Math.random() * (max - min) + min;

// randomInRange(2,10) -> 6.0211363285087005

34、随机化数组的顺序

使用sort()重新排序元素,利用Math.random()来随机排序。

const shuffle = arr => arr.sort(() => Math.random() - 0.5);

// shuffle([1,2,3]) -> [2,3,1]

35、重定向到URL

使用window.location.href或window.location.replace()重定向到url。传递第二个参数来模拟链接点击(true - default)或HTTP重定向(false)。

const redirect = (url, asLink = true) =>

asLink ? window.location.href = url : window.location.replace(url);

// redirect('https://google.com')

36、反转一个字符串

使用数组解构和Array.reverse()来颠倒字符串中的字符顺序。合并字符以使用join('')获取字符串。

const reverseString = str => [...str].reverse().join('');

// reverseString('foobar') -> 'raboof'

37、RGB到十六进制

使用按位左移运算符(<<)和toString(16),然后padStart(6,“0”)将给定的RGB参数转换为十六进制字符串以获得6位十六进制值。

const rgbToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');

// rgbToHex(255, 165, 1) -> 'ffa501'

38、滚动到顶部

使用document.documentElement.scrollTop或document.body.scrollTop获取到顶部的距离。

从顶部滚动一小部分距离。

使用window.requestAnimationFrame()来滚动。

const scrollToTop = _ => {

const c = document.documentElement.scrollTop || document.body.scrollTop;

if (c > 0) {

window.requestAnimationFrame(scrollToTop);

window.scrollTo(0, c - c / 8);

}

};

// scrollToTop()

39、随机数组值

使用Array.map()和Math.random()创建一个随机值的数组。使用Array.sort()根据随机值对原始数组的元素进行排序。

40、 数组之间的相似性

使用filter()移除不是values的一部分值,使用includes()确定。

const similarity = (arr, values) => arr.filter(v => values.includes(v));

// similarity([1,2,3], [1,2,4]) -> [1,2]

41、 按字符串排序(按字母顺序排列)

使用split('')分割字符串,sort()使用localeCompare(),使用join('')重新组合。

const sortCharactersInString = str =>

str.split('').sort((a, b) => a.localeCompare(b)).join('');

// sortCharactersInString('cabbage') -> 'aabbceg'

42、数组总和

使用reduce()将每个值添加到累加器,初始化值为0。

const sum = arr => arr.reduce((acc, val) => acc + val, 0);

// sum([1,2,3,4]) -> 10

43、交换两个变量的值

使用数组解构来交换两个变量之间的值。

[varA, varB] = [varB, varA];

// [x, y] = [y, x]

44、列表的tail

返回arr.slice(1)

const tail = arr => arr.length > 1 ? arr.slice(1) : arr;

// tail([1,2,3]) -> [2,3]

// tail([1]) -> [1]

45、数组唯一值

使用ES6 Set和... rest操作符去掉所有重复值。

const unique = arr => [...new Set(arr)];

// unique([1,2,2,3,4,4,5]) -> [1,2,3,4,5]

46、URL参数

使用match() 与适当的正则表达式来获得所有键值对,适当的map() 。使用Object.assign()和spread运算符(...)将所有键值对组合到一个对象中,将location.search作为参数传递给当前url。

const getUrlParameters = url =>

url.match(/([^?=&]+)(=([^&]*))/g).reduce(

(a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a), {}

);

// getUrlParameters('http://url.com/page?name=Adam&surname=Smith') -> {name: 'Adam', surname: 'Smith'}

47、UUID生成器

使用crypto API生成符合RFC4122版本4的UUID。

const uuid = _ =>

([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>

(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)

);

// uuid() -> '7982fcfe-5721-4632-bede-6000885be57d'

48、验证数字

使用!isNaN和parseFloat()来检查参数是否是一个数字,使用isFinite()来检查数字是否是有限的。

const validateNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;

// validateNumber('10') -> true

以上就是小T今天为大家分享的关于Web前端开发工程师要掌握的JavaScript代码片段(二)的文章,希望本篇文章能够对正在从事Web前端开发工作的小伙伴们有所帮助。想要了解更多Web前端开发相关知识,记得关注IT培训网Web培训官网。

作者:Chalarangelo

译者:IT168

【免责声明:本文图片及文字信息均由小T转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

Web前端开发工程师,是从事Web前端开发工作的工程师。主要进行网站的开发、优化、完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。

一位好的Web前端开发工程师在知识体系上既要有广度,又要有深度,所以很多大公司即使出高薪也很难招聘到理想的Web前端开发工程师。现在说的重点不在于讲解技术,而是更侧重于对技巧的讲解。技术非黑即白,只有对和错,而技巧则见仁见智。以前会Photoshop和Dreamweaver就可以制作网页,现在只掌握这些已经远远不够了。无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后端开发,所以现在不再叫网页制作,而是叫Web前端开发。Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的Web前端开发工程师才能做好,这方面的专业人才近两年来备受青睐。Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。

文章出自:http://qh.itpxw.cn/peixun/web/202186301.html

文章标题:Web前端开发工程师要掌握的JavaScript代码片段(二)



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02