首页 > 前端开发 > 正文

web前端开发递归 Web前端工程师要掌握的JavaScript代码片段(一)

2023-08-29 13:59:08 | 我爱编程网

今天我爱编程网小编整理了web前端开发递归 Web前端工程师要掌握的JavaScript代码片段(一)相关信息,希望在这方面能够更好帮助到大家。

web前端开发递归 Web前端工程师要掌握的JavaScript代码片段(一)

前端需要学什么

前端需要学HTML、CSS、JavaScript、jQuery、Ajax、前端框架。

前端要了解每个浏览器中的各个版本的兼容性、Web标准、移动设备、多终端适配等知识。前端开发是创建WEB页面或APP等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。

浏览器展示页面的时候,会把前端的代码转化(解析和渲染)成用户看到的网页。不过渲染引擎不同,导致解析相同代码时的速度、性能、效果也不同的。

前端技术内容

HTML全称Hyper Text Markup Language(超文本标记语言),简单来说HTML是一门描述性语言,网页的基础就是通过HTML语言来写的。JS高级特征是正则表达式、排序算法、递归算法、闭包、函数节流、作用域链、基于距离运动框架、面向对象基础。

CSS称为层叠样式表,是用来表现HTML文件样式的计算机语言,它不仅可以静态修饰网页,也可以配合各种脚本语言来实现动态化效果。JavaScript是一种直译式脚本语言,非常灵活,可以在任何浏览器上开发与调试的一种动态类型、弱类型、基于原型的语言。

web前端开发递归 Web前端工程师要掌握的JavaScript代码片段(一)我爱编程网

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

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





1、Anagramsofstring(带有重复项)


使用递归。对于给定字符串中的每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。


constanagrams=str=>{


if(str.length<=2)returnstr.length===2?[str,str[1]+str[0]]:
[str];


returnstr.split('').reduce((acc,letter,i)=>


acc.concat(anagrams(str.slice(0,i)+str.slice(i+1)).map(val=>
letter+val)),[]);


};


//anagrams('abc')->['abc','acb','bac','bca','cab','cba']


2、数组平均数


使用reduce()将每个值添加到累加器,初始值为0,总和除以数组长度。


constaverage=arr=>arr.reduce((acc,val)=>acc+val,0)/
arr.length;


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


3、大写每个单词的首字母


使用replace()匹配每个单词的第一个字符,并使用toUpperCase()来将其大写。


constcapitalizeEveryWord=str=>str.replace(/\b[a-z]/g,char=>
char.toUpperCase());


//capitalizeEveryWord('helloworld!')->'HelloWorld!'


4、首字母大写


使用slice(0,1)和toUpperCase()大写第一个字母,slice(1)获取字符串的其余部分。省略lowerRest参数以保持字符串的其余部分不变,或将其设置为true以转换为小写。(注意:这和上一个示例不是同一件事情)


constcapitalize=(str,lowerRest=false)=>


str.slice(0,1).toUpperCase()+(lowerRest?str.slice(1).toLowerCase():
str.slice(1));


//capitalize('myName',true)->'Myname'


5、检查回文


将字符串转换为toLowerCase(),并使用replace()从中删除非字母的字符。然后,将其转换为tolowerCase(),将('')拆分为单独字符,reverse(),join(''),与原始的非反转字符串进行比较,然后将其转换为tolowerCase()。


constpalindrome=str=>{


consts=str.toLowerCase().replace(/[\W_]/g,'');


returns===s.split('').reverse().join('');


}


//palindrome('tacocat')->true


6、计数数组中值的出现次数


每次遇到数组中的特定值时,使用reduce()来递增计数器。


constcountOccurrences=(arr,value)=>arr.reduce((a,v)=>v===
value?a+1:a+0,0);


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


7、当前URL


使用window.location.href来获取当前URL。


constcurrentUrl=_=>window.location.href;


//currentUrl()->'


8、Curry


使用递归。如果提供的参数(args)数量足够,则调用传递函数f,否则返回一个curried函数f。


constcurry=(fn,arity=fn.length,...args)=>


arity<=args.length


?fn(...args)


:curry.bind(null,fn,arity,...args);


//curry(Math.pow)(2)(10)->1024


//curry(Math.min,3)(10)(50)(2)->2


9、Deepflattenarray


使用递归,使用reduce()来获取所有不是数组的元素,flatten每个元素都是数组。


constdeepFlatten=arr=>


arr.reduce((a,v)=>a.concat(Array.isArray(v)?deepFlatten(v):v),
[]);


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


10、数组之间的区别


从b创建一个Set,然后在a上使用Array.filter(),只保留b中不包含的值。


constdifference=(a,b)=>{consts=newSet(b);returna.filter(x
=>!s.has(x));};


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


11、两点之间的距离


使用Math.hypot()计算两点之间的欧几里德距离。


constdistance=(x0,y0,x1,y1)=>Math.hypot(x1-x0,y1-y0);


//distance(1,1,2,3)->2.23606797749979


12、可以按数字整除


使用模运算符(%)来检查余数是否等于0。


constisDivisible=(dividend,divisor)=>dividend%divisor===0;


//isDivisible(6,3)->true


13、转义正则表达式


使用replace()来转义特殊字符。


constescapeRegExp=str=>str.replace(/[.*+?^${}()|[\]\\]/g,
'\\$&');


//escapeRegExp('(test)')->\\(test\\)


14、偶数或奇数


使用Math.abs()将逻辑扩展为负数,使用模(%)运算符进行检查。如果数字是偶数,则返回true;如果数字是奇数,则返回false。


constisEven=num=>num%2===0;


//isEven(3)->false


15、阶乘


使用递归。如果n小于或等于1,则返回1。否则返回n和n-1的阶乘的乘积。


constfactorial=n=>n<=1?1:n*factorial(n-1);


//factorial(6)->720


16、斐波那契数组生成器


创建一个特定长度的空数组,初始化前两个值(0和1)。使用Array.reduce()向数组中添加值,后面的一个数等于前面两个数相加之和(前两个除外)。


constfibonacci=n=>


Array(n).fill(0).reduce((acc,val,i)=>acc.concat(i>1?acc[i-
1]+acc[i-2]:i),[]);


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


17、过滤数组中的非唯一值


将Array.filter()用于仅包含唯一值的数组。


constfilterNonUnique=arr=>arr.filter(i=>arr.indexOf(i)===
arr.lastIndexOf(i));


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


18、Flatten数组


使用reduce()来获取数组中的所有元素,并使用concat()来使它们flatten。


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


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


19、从数组中获取最大值


使用Math.max()与spread运算符(...)结合得到数组中的最大值。


constarrayMax=arr=>Math.max(...arr);


//arrayMax([10,1,5])->10


20、从数组中获取最小值


使用Math.min()与spread运算符(...)结合得到数组中的最小值。


constarrayMin=arr=>Math.min(...arr);


//arrayMin([10,1,5])->1


21、获取滚动位置


如果已定义,请使用pageXOffset和pageYOffset,否则使用scrollLeft和scrollTop,可以省略el来使用window的默认值。


constgetScrollPos=(el=window)=>


({x:(el.pageXOffset!==undefined)?el.pageXOffset:el.scrollLeft,


y:(el.pageYOffset!==undefined)?el.pageYOffset:el.scrollTop});


//getScrollPos()->{x:0,y:200}


22、最大公约数(GCD)


使用递归。基本情况是当y等于0时。在这种情况下,返回x。否则,返回y的GCD和x/y的其余部分。


constgcd=(x,y)=>!y?x:gcd(y,x%y);


//gcd(8,36)->4


23、Headoflist


返回ARR[0]


consthead=arr=>arr[0];


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


24、list初始化


返回arr.slice(0,-1)


constinitial=arr=>arr.slice(0,-1);


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


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


web前端开发递归 Web前端工程师要掌握的JavaScript代码片段(一)

web程序设计学什么

web程序设计学习HTML、学习CSS、五月前学JS、学习jQuery相当于封装一组JS插件的JS。

1。学习HTML,这是最简单,最基本的是要掌握div,formtable、Ulli、P、跨度、字体这些标签,这些都是最常用的,尤其是DIV和表格,DIV,表也可以用于布局,但不灵活,和用于基本表处理数据。

2。学习CSS,CSS这里说的不包括CSS3 Web前端开发工程师里面我们看到的,一个可以使用HTML或CSS + CSS+DIV的界面布局,所以CSS是用来协助HTML布局和显示。

我们称之为“ CSS样式 ”,为什么说DIV+CSS?因为我说div是HTML主要用于布局的,所以div是这个东西的核心!CSS必须配合部。CSS必须掌握浮、位置、宽度和高度,以及最大值和最小值,以100%,溢出,边缘、填充等。这些都是与布局相关的样式。

3.五月前学JS。你觉得还过的去,看看JS是可怕的,事实上,JS入门很简单,不需要很多东西,只要根据ID或名称DOM或”风格,或价值,然后以一个ID或名称元标签,或额外的数据。

在HTML,这是对数据的操作有关系,那么数据逻辑的影响,无非是一个跳跃,弹框,隐藏什么,这一切都是结合其他应用,代码一点都不难,将这些基本的JS。百度其他好。然后多看一些,不是什么问题。

4、学习jQuery相当于封装一组JS插件的JS。其目的是操作更方便,编写更少的代码,jQuery条目也非常简单。这些都是切入点,要学会像JS,只是改变了JQ代码。剩下的就跟百度一样。

以上,就是我爱编程网小编给大家带来的web前端开发递归 Web前端工程师要掌握的JavaScript代码片段(一)全部内容,希望对大家有所帮助!
与“web前端开发递归 Web前端工程师要掌握的JavaScript代码片段(一)”相关推荐
web前端开发css代码 Web前端工程师要掌握的CSS技巧
web前端开发css代码 Web前端工程师要掌握的CSS技巧

Web前端工程师要掌握的CSS技巧今天小编要跟大家分享的文章是关于Web前端工程师要掌握的CSS技巧。正在从事web前端工作的小伙伴们快来和小编一起看一看吧,希望本篇文章能够对正在从事web前端工作的小伙伴们有所帮助。1、元素的margin的top、bottom及padding的top、bottom使用百分比作为单位时,其是相对父元素的宽度width的而不是我们想象的高度height

2023-09-19 06:55:08
web前端开发实践居中代码 Web前端工程师要掌握的CSS技巧
web前端开发实践居中代码 Web前端工程师要掌握的CSS技巧

Web前端开发知识点之CSS的使用方式今天小编要跟大家分享的文章是关于Web前端开发知识点之CSS的使用方式。本文章小编从与HTML的结合方式、CSS语法、选择器以及盒子模型四个方面进行讲解。下面来和小编一起看一看吧!一、与HTML的结合方式CSS与HTML的结合方式一共有三种,分别是:外部样式、内部样式和内联样式。①外部样式当样式需要应用于很多页面时,外部样

2023-10-14 02:04:09
低级web前端开发工程师 Web前端工程师初级阶段需要掌握的内容
低级web前端开发工程师 Web前端工程师初级阶段需要掌握的内容

web前端开发工程师简介web前端开发工程师简介Web前端一直是占有重要的地位。尤其是近年来HTML5技术的突飞猛进,使Web前端技术有了更好的发展。Web前端开发人员的薪资也是一路猛涨。下面我们一起了解一些web前端开发工程师简介,欢迎大家参考!Web前端和后端的差异职能上的差异首先,我们要分清Webdesigner(网页设计师)和Webdeveloper

2023-10-09 08:39:35
web前端开发工程师函数 Web前端工程师初级阶段需要掌握的内容
web前端开发工程师函数 Web前端工程师初级阶段需要掌握的内容

Web前端工程师应该知道的JavaScript创建对象的方式今天小编要跟大家分享的文章是关于Web前端工程师应该知道的JavaScript创建对象的方式。JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产。下面小编为大家介绍一些非常经典的创建对象的方式,他们也各有优缺点。我们一起来看一看

2023-10-12 04:07:29
web前端开发师掌握 web前端工程师需要掌握的技能
web前端开发师掌握 web前端工程师需要掌握的技能

web前端工程师需要掌握的技能web前端工程师需要掌握的技能有HTML、CSS和JavaScript、框架和库、编辑器等。一、HTML、CSS和JavaScript。HTML、CSS和JavaScript可以说是Web前端工程师最基本的技能,这三种技能是开发网站必可少的工具。HTML(超文本标记语言)是网页的基础,Web前端工程师需要掌握的内容包括HTML标签的语法、使用表

2023-09-19 14:08:22
web前端开发初级下 Web前端工程师初级阶段需要掌握的内容
web前端开发初级下 Web前端工程师初级阶段需要掌握的内容

零基础开始学Web前端开发,有什么建议吗前端工程师,也叫Web前端开发工程师。他是随着web发展,细分出来的行业。Web前端开发技术主要包括三个要素:HTML、CSS和JavaScript!它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层

2023-09-16 08:58:12
web前端开发初级项目 Web前端工程师初级阶段需要掌握的内容
web前端开发初级项目 Web前端工程师初级阶段需要掌握的内容

Web前端开发主要学哪些课程?老实说,前端经过这几年的快速发展,网上的文章和教程还是蛮多的,有经验的人能够根据资料制定出属于自己的学习方法和路径,但对于小白来说,还是有些难度。知了姐来给大家分享前端学习路径。针对0基础,非科班,没有编程经验,想学前端,但是不知道如何入门的人群。基础部分:1、HTML+CSS这部分学习,可以模仿一些网站做些页面,在实践中积累经验。做

2023-09-11 12:37:56
Web前端开发初级模拟 Web前端工程师初级阶段需要掌握的内容
Web前端开发初级模拟 Web前端工程师初级阶段需要掌握的内容

Web前端工程师初级阶段需要掌握的内容今天小编给大家整理出来了Web前端工程师初级阶段需要掌握的内容,很全面,希望大家好好阅读,看看自己掌握的知识点和文章里面写的还相差多少。下面来和小编一起看一看吧!一、什么是初级Web前端工程师?按照我的想法,我把前端工程师分为了入门、初级、中级、高级这四个级别,入门级别指的是了解什么是前端(前端到底是什么其实很多人还是不清楚

2023-09-14 23:57:00