![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
快乐的前端小菜鸟
To be, or not to be, that is the question
展开
-
javaScript之了解面向对象
面向对象编程是一种编程范式,它的核心思想是将数据和操作它们的方法组织成对象。在JavaScript中,对象是一个键值对集合,其中每个键都是一个字符串,而每个值可以是任何JavaScript数据类型(包括数字、字符串、布尔值、对象和函数)。继承允许我们创建一个新的对象,该对象具有一个现有对象的所有属性和方法。这对于创建可扩展和灵活的代码非常有用,因为它允许我们在不修改现有代码的情况下添加新的对象类型。对象字面量是一种非常方便的创建对象的方法,它允许我们使用一组大括号来定义对象的属性和方法。原创 2023-03-30 18:14:34 · 114 阅读 · 0 评论 -
前端JS算法之打印星星
第一种(左直角)function theOutputOne(n) { let star = ''; for(let i = 0; i < n; i++) { star += '*' console.log(star) }}theOutputOne(11)第二种(右直角)function theOutputTwo(n) { let star = ''; for(let i = 0; i < n; i++) {.原创 2021-02-02 17:36:02 · 1457 阅读 · 0 评论 -
前端JS算法之数组排序
数组排序一直是前端面试中经常出现的问题,而大家可能经常用的就是sort排序,所以我又总结两种排序方式,加上sort排序,一并写了下来。第一种方法:冒泡排序逻辑步骤:1、使用双层for循环加if判断2、依次拿数组里面的一项去跟数组里面的每一项做比较运算,符合判断条件的,交换两项的位置。let arr = [9, 5, 1, 4, 8, 6, 2, 7, 3, 0, '2', '3'];function sorting(a) { // 判断数组是否存在,如果存在就获得数组长度 var a.原创 2020-12-18 16:12:53 · 3407 阅读 · 1 评论 -
前端JS算法之字符串去重和字符串反转
一、字符串去重说起字符串去重,第一时间就会想起数组去重,所以我们可以把字符串转换为数组,然后对数组去重,去重完毕后在拼接成字符串,下面就简单罗列两种字符串去重的方法,数组去重大家可以去看我之前的文章《前端JS算法之数组去重》,接下来我们看代码。第一种方法:逻辑步骤:1、使用split或者ES6的展开运算符...把字符串切割成数组2、使用ES6的Set数据解构,它类似于数组,但是它成员的值都是唯一的,使用new创建3、对去重后的数组使用join拼接let str = '11223344aabb.原创 2020-12-14 11:57:24 · 691 阅读 · 2 评论 -
前端JS算法之数组去重
第一种方法:使用双重for循环,分别去拿数组里面的元素去跟数组里面的每一项去比较var arr1 = [1, 1, 2, 3, 3, 4, 5, 6, 7, {}, {}, [], [], 'a', 'b', 'c', 'a', 'c', true, false, true, null, NaN, null, NaN];function separate(arr) { for(let i = 0; i < arr.length; i++) { for(let j = i.原创 2020-12-02 17:48:01 · 276 阅读 · 0 评论 -
前端JS算法之最大公因数
概念:最大公因数:也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。约数:又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。逻辑步骤:第一种算法逻辑:1、最大公因数,就是两个数都能整除的最大除数。2、整除就代表着余数为0,js运算中我们可以使用求余符号%。3、分别让两个整数循环求余,两个整数余数都为0的时候,把这个除数保存到一个变量里面,循环完成时,这个变量保存的就是最大公约数。funct.原创 2020-11-30 16:14:20 · 1559 阅读 · 2 评论 -
前端JS算法之斐波那契
斐波那契:由0和1开始,之后的斐波那契数列每一项都等于前两项之和。斐波那契数列示例:1、1、2、3、5、8、13、21、34逻辑步骤:1、求第n项的斐波那契数,就是就n项的前两项相加,前一项是n-1,前两项就是n-2。2、第n项斐波那契数就是(n-1) + (n-2),这样我们就可以使用递归。3、递归是什么?递归就是函数自己调用自己。4、自己调用自己,那我们就可以用arguments.callee。(PS:arguments是一个类数组对象,它包含着传入函数的所有参数。arguments有一个.原创 2020-11-26 19:10:13 · 1572 阅读 · 3 评论 -
前端JS算法之素数
在看代码之前,我们先梳理一下逻辑,什么是素数,百度百科上写到,素数又称质数,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。那我们可以理解为只能被1和它本身整除的数就是素数。逻辑步骤:1、整除余数肯定为0。2、JS里面有求余符号 %,我们可以判断余数是否为0。3、一个质数只能被1和它本身整除2次,也就是余数为0的次数只能是2次4、使用for循环,对这个整数从1和它本身之间的整数(包括1和它本身)求余。5、声明一个变量num,记录余数为0的次数6、根据步骤3,判断num(余原创 2020-11-25 18:01:02 · 3529 阅读 · 0 评论 -
H5页面点击遮罩层背景关闭遮罩层
今天团队同事接到一个需求,需求是这样的,点击页面按钮弹出红包弹窗,显示黑色遮罩层,点击遮罩层背景和弹窗关闭按钮要关闭弹窗,于是我就做了一个Demo出来,方便以后下次自己再遇到这种需求,上代码。html代码页面上只有一个展示的按钮,一个ID为bg的div作为灰色背景遮罩层使用,ID为popup的div作为红包弹窗,ID为close的div作为关闭按钮。<body> <div class="btn" id="btn">展示</div> <div .原创 2020-10-30 16:56:51 · 1316 阅读 · 0 评论 -
前端实现字符串GBK与GB2312的编解码
前言在开发项目的时候遇到的一个比较坑的问题,产品要求从浏览器拿到浏览器地址栏里面的搜索词进行判断,我们一般使用的都是UTF-8的编码格式,但是百度和谷歌在对搜索词编码的时候都是使用的GBK编码,这就导致,解码失败,于是就在网上找解决方法,最终找到了一位前辈整理出来的方法,通过iframe解决了这个问题,所以特此总结一下,方便自己以后使用,也希望能帮助到更多的人,最后会放上前端文章的链接。1、编码(支持GBK和GB2312)为了避免麻烦,我们可以将表单的请求页面设定为当前页面,将回调函数放在页面JS的.原创 2020-09-21 14:26:44 · 2854 阅读 · 0 评论 -
js基本类型和引用类型的检测、复制
1、js的基本类型和引用类型(1)认识一下基本类型和引用类型js的基本类型包括 Undefined、Null、Boolean、Number、String 这五种类型,基本类型是按值访问的,因为可以操作保存在变量中的实际的值。js的引用类型常用的包括 Object、Array、RegExp,因为在操作对象时,实际上在操作对象的引用而不是实际的对象,因此,引用类型的值是按引用访问的。定义基本类型和引用类型的方式是差不多的:都是创建一个变量并为该变量赋值,但是当这个值保存到变量中后,不同类型的值可以进行.原创 2020-07-24 15:51:17 · 201 阅读 · 0 评论 -
原生js封装http请求,get、post请求
let origin = 'http://www.baidu.com' // 后端接口域名const address = { // info: origin + '/template/getinfo', // 后端接口}export default function httpApi(type, _url, params = {}) { let object = { method: type || 'GET', // 请求类型 .原创 2020-07-20 19:05:08 · 5068 阅读 · 0 评论 -
String类型的charAt、charCodeAt、slice、substr、substring方法
一、String的字符方法charAt()和charCodeAt()/**charAt():接收一个参数,返回参数给定位置的那个字符。**/var str = 'abcdefghijklmn';console.log(str.charAt(3)) // d;console.log(str.charAt(-3)) // '' 返回空,charAt的参数不支持负数/**charCod...原创 2019-11-15 17:56:33 · 709 阅读 · 0 评论 -
函数的属性和方法this、arguments、call、apply、bind、
一、函数的内部属性1.arguments:它是一个类数组对象,包含着传入函数中的所有参数。function color(col1, col2, col3) { //因为是类数组对象,检测类型为object,用下标获得传入的值 console.log(typeof arguments);// object console.log(arguments[0]);// red console...原创 2019-11-14 14:43:14 · 268 阅读 · 1 评论 -
快速记住Date的使用方法
如何获取时间日期的毫秒,因王之前的文章学过,就不在这里描述了,有不知道的请看这个篇文章《+new Date()》只要记住3句话,快速记住Date类型的方法1. 8个单位FullYear // 年份Month // 月份Date // 天数Day // 星期几Hours // 小时Minutes // 分钟数Seconds // 秒数Mill...原创 2019-11-01 16:33:20 · 756 阅读 · 0 评论 -
js数组的迭代方法every、filter、forEach、map、some
1.迭代方法ES5为数组定义了5个迭代方法,这五个迭代函数分别是:every()、filter()、forEach()、map()、some()。每个方法都接收两个参数:在数组里面的每一项上运行的函数和(可选)运行该函数的作用域对象——影响this的指向。传入这些方法中的函数会接收三个参数:数组每一项的值(必需)、该项在数组中的位置(可选)、数组对象本身(可选)。/**我们这边使用forEa...原创 2019-10-31 16:15:32 · 413 阅读 · 0 评论 -
js数组的操作方法,concat、slice、splice、join、indexOf、lastIndexOf
1.操作方法(1)concat(): 基于当前数组当中的所有项创建一个新的数组。简单的说在不传参的情况下,就是复制当前数组创建副本,如果传参,会先创建副本,然后将接收到的参数添加到这个副本的末尾,如果传递的参数是一个或者多个数组,concat()方法会将这些数组的每一项都添加到副本数组中。如果传递的是其他值,则会直接添加到副本数组的末尾。var arr = [1, 2, 3];var ar...原创 2019-10-29 17:27:21 · 452 阅读 · 0 评论 -
数组的方法栈方法和排序方法,pop、push、shift、sort
1.数组的栈方法push():可以接收任意数量的参数,把它们添加到数组的末尾,并返回修改后数组的长度var color = [];var count = color.push('red', 'green');console.log(color); // ['red', 'green'];console.log(count); // 2pop():从数组末尾移出最后一项,减少数组的l...原创 2019-10-28 15:52:29 · 619 阅读 · 0 评论 -
JS的垃圾回收机制是什么
JS为什么需要垃圾回收机制程序的运行需要内存,只要程序提出要求,操作系统或者运行是就必须供给内存。对于持续运行的服务进程,必须及时释放内存,否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。JS垃圾回收常用的两种方式环境的定义:《JavaScript高级程序设计第三版》定义执行环境(为简单起见,有时也称环境)是JavaScript中最为重要的一个概念。执行环境定义了变量或函数有权......原创 2019-10-25 15:41:51 · 1619 阅读 · 0 评论 -
如何理解JS中的数据属性和访问器属性
数据属性1. 数据属性:数据属性包含一个数据值的位置。在这个位置可以读取和写入值。(JavaScript高级程序设计第三版)2.数据属性包含的四个特性configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,默认值:true。enumerable:表示是否可以通过for-in循环返回属性,默认值:true。writable:表示能否修改属性的值,默认...原创 2019-10-18 17:21:31 · 724 阅读 · 0 评论 -
时间戳转日期格式 +new Date
在看前辈的代码的时候看到了const jsonp = +new Date,当时就不明白了,+new Date是怎么回事,啥情况不懂啊,本着求知欲的情况下,就去网上查了一下。做了如下总结:js在某个数据类型前使用+,这个操作目的是为了将该数据类型转换为Number类型,如果转换失败,则返回NaN+new Date() 会调用Date.prototype 上面的 valueOf方法,根据MDN ......原创 2019-10-16 11:50:18 · 5618 阅读 · 2 评论