js
文章平均质量分 53
想上天的小鱼
这个作者很懒,什么都没留下…
展开
-
【JS】数组去重的几种方式
数组去重的方法有很多,接下来,讲几种常见的方式:一、includes方法 + for循环includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false.const array = [1,2,3,2,4,6,3,1, undefined, NaN, 'NAN', null, true, 'true', false, 'false', NaN, undefined];const unique = (arr) => { ...原创 2022-01-27 14:16:13 · 1518 阅读 · 0 评论 -
【JS】非非(两个感叹号)的使用场景
简单来讲,逻辑 "非非"就是在逻辑 "非"(!)的基础上再 "非" 一次。先来说一下逻辑 "非" ,可以理解为就是取反,返回的是一个布尔值。那么,什么时候我们会用到 !! 呢?一般是需要将其他类型强制转换成boolean类型的情况下,比如以下四种场景:null 和 undefined 为 false 空字符串为 false,非字符串为 true 数值 0 返回 false,其他为 true 任意数组、对象返回 true(包括空数组、空对象)以第一种情况为例:let a;..原创 2021-11-27 11:32:01 · 475 阅读 · 0 评论 -
【JS】数组和字符串之间的转换
最近,我算是和数组杠上了,今天来说说数组和字符串之间的相互转换。你知道的都有哪些方法呢?下面说一说比较常见的几种,嘿嘿(不常见的我也不一定知道啊)。一、数组转字符串1、toString()返回一个字符串,表示指定的数组及其元素举个栗子,看下效果:const arr = [1,2,3,4];arr.toString(); // "1,2,3,4"现在确实是个字符串了,但问题又来了,有什么办法可以把中间的逗号去掉吗?简单点,直接使用replace或者replaceA原创 2021-09-04 23:11:09 · 2398 阅读 · 0 评论 -
【JS】数组的新增(插入)、修改、删除
最近欠了太多账了(头秃),趁着周末,总结一波(我实在是太容易混淆了)。对数组进行增删改的操作,项目中还是比较常见的。奈何脑容量有限,思来想去,还是写写更能加深印象。先说明一下,方法的定义是参考的MDN上面的。1、push方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。语法:arr.push(element1, ..., elementN)elementN:被添加到数组末尾的元素let arr = [1,2];let count = arr.push(3);原创 2021-09-04 18:16:51 · 3192 阅读 · 0 评论 -
【JS】toString和toLocaleString的区别
toString的方法相信小伙伴们都不陌生,转字符串常用的方法嘛。toLocaleString和toString基本上没有什么不同,在使用过程中注意两者的区别就可以啦!让我们先来看一些小栗子:const str = [1,2,3];str.toString(); // "1,2,3"str.toLocaleString(); // "1,2,3"const str = 123;str.toString(); // "123"str.toLocaleString();原创 2021-08-31 12:04:38 · 572 阅读 · 0 评论 -
Moment.js 常见用法总结
Moment.js是一个时间日期库,它方便了日常开发中对时间的操作,提高了开发效率。结合官网,对Moment.原创 2021-06-12 13:42:32 · 1319 阅读 · 1 评论 -
Big.js基本用法
1、加法plus2、减法minus3、乘法times4、除法div5、绝对值abs原创 2021-05-23 14:19:47 · 7965 阅读 · 0 评论 -
js实现复制文案到剪切板
原生js实现的复制功能简直比插件好用太多(仅代表个人观点),代码也是简简单单几行,轻松搞定。业务场景:点击按钮,将文案复制到粘贴板具体代码如下:const copyToClipboard = (value) => { const textarea = document.createElement('textarea'); textarea.value = value; document.body.appendChild(textarea); textarea.sele原创 2021-03-17 10:40:07 · 749 阅读 · 0 评论 -
深入浅出理解JS(5)-- 闭包
闭包的定义何为闭包?引用MDN里的定义:函数与对其状态即词法环境(lexical environment)的引用共同构成闭包(closure)。也就是说,闭包可以让你从内部函数访问外部函数作用域。在JavaScript,函数在每次创建时生成闭包。简单的讲,闭包就是能够读取其他函数内部变量的函数。在讲闭包之前,我们需要知道以下的一些概念:作用域作用域作用域无非分为两种:...原创 2019-11-29 14:30:52 · 141 阅读 · 0 评论 -
js小游戏之经典炸弹人(2)--玩家的移动
在js小游戏之经典炸弹人(1)--地图实现这篇文章中,我们已经实现了地图的绘制,接下来就来谈谈玩家是如何移动的呢?实现玩家的移动主要依靠的是键盘事件onkeypress,我们要通过操作键盘控制玩家的移动,例如常用的W,A,S,D键,操作的就是上、左、下、右。但实际上,它们是有对应的字符代码的。字符代码 - 表示 ASCII 字符的数字 键盘代码 - 表示键盘上真实键的数字那么,问题来了...原创 2018-08-29 20:06:27 · 1277 阅读 · 4 评论 -
js中的关键字和保留字
前两天面试官问了我一道题:你知道js有哪些保留字吗?当时自己就说了abstract,try,catch,this,其中最重要的就是this这个关键字了。然后面试官问,你说的this是关键字,我问的是保留字。这下,我马上反应过来,我说的是关键字。此时的我才意识到,对于关键字和保留字,我好像并没有区分的那么清楚,而是把两者混淆了。为此,今天特意整理了一下关键字和保留字,避免下次犯同样的错误...原创 2018-10-01 19:08:23 · 3296 阅读 · 0 评论 -
es5和es6的区别
最近在看阮一峰的《ECMAScript6入门》,讲真,这本书对初学者真的很有帮助,在这里也推荐给大家。接下来,我要说的一些例子也大多来源于这本书,如果对这本书感兴趣的小伙伴,也可以戳这里哦!想必大家都对es有所了解,对于es5和es6之间的区别还是知道一部分的,但为了更好的帮助我们理解,我决定还是整理一下两者的区别,也算是对之前面试的一个交代吧!1.新增let命令在es6之前,我们声明...原创 2018-12-11 15:14:31 · 4254 阅读 · 0 评论 -
深入浅出理解JS(1)--对象和函数
一、什么是对象想必大家应该都听过“一切皆对象”这句话,我们先不论这句话正确与否,重点是对象这个东东到底是个啥?在javascript中,一个对象可以是一个单独的拥有属性和类型的实体。我们拿它和一个杯子做下类比。一个杯子是一个对象(物体),拥有属性。杯子有颜色,图案,重量,由什么材质构成等等。要搞懂对象,就不得不提到typeof这个操作符了,具体干嘛的呢?其实就是判断变量类型的。...原创 2019-04-25 13:32:22 · 269 阅读 · 0 评论 -
深入浅出理解JS(2)-- prototype原型
在上一节中我们重点讲了对象和函数,得出的结论是:函数也是一种对象,对象都是通过函数创建的。还记得上一节留下的问题吗?回顾一下:var obj = new Object();obj.a = 10;obj.b = 20; var arr = new Array();arr[0] = 5;arr[1] = 'x'; console.log(typeof obj); //o...原创 2019-05-21 23:09:23 · 200 阅读 · 0 评论 -
深入浅出理解JS(4)-- this机制
this是什么简单说,this就是JavaScript中的一个关键字。它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。this具体指向什么,取决于我们对函数的调用是怎样的。this的四种绑定规则默认绑定 隐式绑定 显式绑定 new绑定这四种绑定规则分别对应函数的四种调用方式:独立调用、方法调用、间接调用和函数调用。绑定规则的优先级判断绑定规则的...原创 2019-07-23 20:26:11 · 155 阅读 · 0 评论 -
js小游戏之经典炸弹人(1)--地图实现
前段时间,写了一款js小游戏--经典炸弹人,因为这是第一次写游戏,对很多东西都不是很熟悉。于是,疯狂的上网找资料,结果发现,关于经典炸弹人的js资料少的可怜。所以,很是头疼了一段时间。在写完经典炸弹人大概逻辑后,觉得有必要分享出来,方便更多的小伙伴学习。 首先,想必这款游戏大家都不陌生,玩家通过相应按键实现上下左右移动,这里我是使用的是W、A、S、D四个键控制玩家方向,空格键放置...原创 2018-07-19 13:28:55 · 5237 阅读 · 4 评论