前端算法入门:刷算法题常用的 JS 基础扫盲

前端算法入门:刷算法题常用的 JS 基础扫盲,第1张

此篇属于前端算法入门系列的第一篇,主要介绍常用的 数组方法 、 字符串方法 、 遍历方法 、 高阶函数 、 正则表达式 以及相关 数学知识 。

在尾部追加,类似于压栈,原数组会变。

在尾部d出,类似于出栈,原数组会变。数组的 push & pop 可以模拟常见数据结构之一:栈。

在头部压入数据,类似于入队,原数组会变。

在头部d出数据,原数组会变。数组的 push (入队) & shift (出队) 可以模拟常见数据结构之一:队列。

concat 会在当前数组尾部拼接传入的数组,然后返回一个新数组,原数组不变。

在数组中寻找该值,找到则返回其下标,找不到则返回 -1 。

在数组中寻找该值,找到则返回 true ,找不到则返回 false 。

将数组转化成字符串,并返回该字符串,不传值则默认逗号隔开,原数组不变。

翻转原数组,并返回已完成翻转的数组,原数组改变。

从 start 开始截取到 end ,但是不包括 end

可参考 MDN:Sort [5]

将数组转化成字符串,并返回该字符串,逗号隔开,原数组不变。

返回指定索引位置处的字符。类似于数组用中括号获取相应下标位置的数据。

类似数组的concat(),用来返回一个合并拼接两个或两个以上字符串。原字符串不变。

indexOf ,返回一个字符在字符串中首次出现的位置, lastIndexOf 返回一个字符在字符串中最后一次出现的位置。

提取字符串的片断,并把提取的字符串作为新的字符串返回出来。原字符串不变。

使用指定的分隔符将一个字符串拆分为多个子字符串数组并返回,原字符串不变。

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,并返回一个包含该搜索结果的数组。

注意事项 :如果 match 方法没有找到匹配,将返回 null 。如果找到匹配,则 match 方法会把匹配到以数组形式返回,如果正则规则未设置全局修饰符 g ,则 match 方法返回的数组有两个特性: input 和 index 。 input 属性包含整个被搜索的字符串。 index 属性包含了在整个被搜索字符串中匹配的子字符串的位置。

replace 接收两个参数,参数一是需要替换掉的字符或者一个正则的匹配规则,参数二,需要替换进去的字符,仔实际的原理当中,参数二,你可以换成一个回调函数。

在目标字符串中搜索与正则规则相匹配的字符,搜索到,则返回第一个匹配项在目标字符串当中的位置,没有搜索到则返回一个 -1 。

toLowerCase 把字母转换成小写, toUpperCase() 则是把字母转换成大写。

includes 、 startsWith 、 endsWith , es6 的新增方法, includes 用来检测目标字符串对象是否包含某个字符,返回一个布尔值, startsWith 用来检测当前字符是否是目标字符串的起始部分,相对的 endwith 是用来检测是否是目标字符串的结尾部分。

返回一个新的字符串对象,新字符串等于重复了指定次数的原始字符串。接收一个参数,就是指定重复的次数。原字符串不变。

最常用的 for 循环,经常用的数组遍历,也可以遍历字符串。

while 、 do while 主要的功能是,当满足 while 后边所跟的条件时,来执行相关业务。这两个的区别是, while 会先判断是否满足条件,然后再去执行花括号里面的任务,而 do while 则是先执行一次花括号中的任务,再去执行 while 条件,判断下次还是否再去执行 do 里面的 *** 作。也就是说 do while 至少会执行一次 *** 作

拷贝一份遍历原数组。

for…of 是 ES6 新增的方法,但是 for…of 不能去遍历普通的对象, for…of 的好处是可以使用 break 跳出循环。

面试官:说一下 forin 和 forof 区别?

返回一个布尔值 。当我们需要判定数组中的元素是否满足某些条件时,可以使用 every / some 。这两个的区别是, every 会去判断判断数组中的每一项,而 some 则是当某一项满足条件时返回。

reduce 从左到右将数组元素做“叠加”处理,返回一个值。 reduceRight 从右到左。

Objectkeys 方法的参数是一个对象,返回一个数组。该数组的成员都是该对象自身的(而不是继承的)所有属性名,且只返回可枚举的属性。

ObjectgetOwnPropertyNames 方法与 Objectkeys 类似,也是接受一个对象作为参数,返回一个数组,包含了该对象自身的所有属性名。但它能返回不可枚举的属性。

这里罗列一些我在刷算法题中遇到的正则表达式,如果有时间可认真学一下 正则表达式不要背 [7]

持续更新,敬请期待……

若一个正整数无法被除了 1 和它自身之外的任何自然数整除,则称该数为质数(或素数),否则称该正整数为合数。

 静态方法属于整个类所有,因此调用它不用实例化,可以直接调用------ 类静态方法() ====>Arrayfrom()/Array of(),Objectis(),Mathceil(),不难发现这些 静态方法都是类作为调用对象使用的

 实例方法必须先实例化,创建一个对象,才能进行调用------ 对象实例方法()

①Objectis()

用来比较两个值是 否严格相等 ,与严格比较运算符(===)的行为基本一致。

②Objectassign()

用于对象的 合并 ,将多个对象的所有可枚举属性复制到目标对象。

newObject:目标对象

object1,object2,object3…:源对象

添加属性

添加方法

③Objectkeys()

返回值为对象的所有属性名组成的数组

④Objectvalues()

返回值为对象的所有值组成的数组

⑤Objectentries()

成员是参数对象自身的(不含继承的)所有可遍历属性的 键值对数组 。

①Arrayfrom()

用于将两类对象转化为真正的数组: 类数组对象,和可遍历的对象

②ArrayisArray()

用于判断一个对象是否为数组,如果是返回true,否则返回false

③Arrayof()

用于将一组 数据 装进一个 数组 中。

Array();              // [  ]

Array(7);            // [ , , , , , , ] 相当于数组长度为7

Array(1, 2, 3);    // [1, 2, 3]

Arrayof();          // [  ]

Arrayof(7);        // [7] 这里写7那就是数组中有一个7

Arrayof(1, 2, 3);  // [1, 2, 3]

Arrayof() 方法不存在 Array() 由于参数个数不同而导致的重载,它的行为很稳定,所以一般用前者代替后者。

①NumberisFinite(), NumberisNaN()

NumberisFinite()用来检查一个 数值 是否为有限的(finite)

NumberisNaN()用来检查一个值是否为NaN 。

NumberisFinite()对于非数值一律返回false, NumberisNaN()只有对于NaN才返回true,非NaN一律返回false。

①Mathtrunc()

Mathtrunc方法用于 去除一个数的小数部分 , 返回整数部分。

②Mathsign()

Mathsign方法用来判断一个数到底是正数、负数、还是零。 对于非数值,会先将其转换为数值 。

它会返回五种值。

参数为正数,返回+1;

参数为负数,返回-1;

参数为 0,返回0;

参数为-0,返回-0;

其他值,返回NaN。

1)PI 取圆周率

2)abs() 取绝对值

3)ceil() 向上取整

4)floor() 向下取整

5)round() 四舍五入

6)max() 取最大值

7)min() 取最小值

8)pow() 取X的y次幂

9)random() 取随机数 >=0 <1

跨语言的对象,是不能这样的传递。nodejs传一个 字符串(json格式,或者xml) 给java,

java端 把这个字符串 解析成 你所需要的枚举类型,然后再调用java方法。 如果nodejs的枚举对象 和 java对象的枚举对象可以通用,那为什么还需要 nodejs和java两种语言。

以上就是关于前端算法入门:刷算法题常用的 JS 基础扫盲全部的内容,包括:前端算法入门:刷算法题常用的 JS 基础扫盲、JS常用的静态方法、nodejs调用java代码 其中java写的方法要传入一个枚举类型的参数,nodejs有枚举类型吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10159004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存