![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS编程
文章平均质量分 65
Judy_dada
干一行爱一行,专一行精一行。
展开
-
NaN、一元操作符、散列函数、undefined、null、Object.assign()、H5的Input新类型、Node.js的process模块
1、NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。提示:请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。2、一元操作符(1)前置递增和递减操作符:变量的值在语句被求值以前改变;var age = 29;++age; //30var num1 = 2;var num2 = 20;var num3...原创 2018-09-17 13:35:36 · 281 阅读 · 0 评论 -
关于作用域、防止作用域污染、作用域链和闭包的理解
参考博客:https://blog.csdn.net/whd526/article/details/70990994作用域变量的作用域无非就是两种:全局作用域和局部作用域。 全局作用域: 最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的: <script> var outerVar = "outer"; functi...转载 2018-09-27 16:29:39 · 2084 阅读 · 0 评论 -
Math.ceil()、Math.floor()和Math.round()、转换为数字、转换为字符串
1、 舍入方法 如:返回0-100的整数var num = Math.floor(Math.random() * 100 + 1);alert(num); Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数; Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数; Math.round()执行标准舍入,即它总是将数值四舍五入...原创 2018-09-23 09:11:14 · 1405 阅读 · 0 评论 -
JS创建对象的三种方法
一、工厂模式通过函数来封装,用object方式来创建function creatPerson(name,age,job){ var o = new Object(); //先通过object构造器new一个对象,再往里丰富成员信息。 o.name = name; o.age = age; o.job = job; o.sayName = funct...原创 2019-02-22 16:04:30 · 1045 阅读 · 0 评论 -
写一个eventEmitter类,包括on()、off()、once()、emit()方法
1、on(event,fn):监听event事件,事件触发时调用fn函数;2、once(event,fn):为指定事件注册一个单次监听器,单次监听器最多只触发一次,触发后立即解除监听器;3、emit(event,arg1,arg2,arg3...):触发event事件,并把参数arg1,arg2,arg3....传给事件处理函数;4、off(event,fn):停止监听某个事件。...转载 2018-09-15 16:47:58 · 14942 阅读 · 1 评论 -
字符串和数组的常用方法
一、字符串string常用方法1、substring(start开始位置索引,end结束位置索引) 字符串截取从0开始索取,不包含结束位置的字符;只写一个参数表示重开始位置截取到最后;输入负值将变成0,那个较小就作为开始。var str = 'abcdefg';str.substring(2); //cdefgstr.substring(1,-3); // => str....原创 2019-03-12 13:50:44 · 2393 阅读 · 0 评论 -
js实现随机选取10–100之间的10个数字,存入一个数组,并排序
Math.random()返回[0,1)之间的随机数<script type="text/javascript"> function sortNumber(a,b){ return a-b;//升序 // return b-a;//降序}//JS实现随机选取10-100之间的10个数字,存入一个数组,并排序var iArray = [];functio...原创 2019-03-12 19:41:37 · 7821 阅读 · 0 评论 -
数组、字符串去重(优解)
参考文章:https://blog.csdn.net/qq_41713692/article/details/80619292数组去重定义一个空数组,用来存放遍历过程中第一次出现的值;定义一个对象,用来比较是否重复。Array.prototype.unique = function(){ var arr = [], obj ={}, len = this.length; f...原创 2019-03-12 20:39:22 · 290 阅读 · 0 评论 -
JS两种定时器,setTimeout和setInterval的区别$用定时器切换元素背景颜色
一、setTimeout只在指定时间后执行一次,用于延迟执行某方法或功能//只执行一次var t1 = window.setTimeout(function hello(){ alert("你好");},2000);//去掉定时器的方法window.clearTimeout(t1);二、setInterval以指定时间为周期循环执行//按周期循环执行var t2 =...原创 2019-03-12 20:59:51 · 872 阅读 · 0 评论 -
深拷贝和浅拷贝
参考文章:https://blog.csdn.net/qq_39207948/article/details/81067482https://blog.csdn.net/u014628388/article/details/77489400深拷贝和浅拷贝的区别1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用2.深拷贝: 创建一个新的对象和...原创 2019-03-28 13:52:42 · 127 阅读 · 0 评论 -
maps对象和objects的比较
1、Map对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。2、Objects 和 maps 的比较Objects和Maps类似的是,它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值。因此(并且也没有其他内建的替代方式了)过去我们一直都把对象当成Maps使用。不过Maps和Objects有一些重要的区别,在下列情况里使用Map会是更好的选...原创 2019-03-28 15:01:38 · 449 阅读 · 0 评论 -
ES6 Promise 用法(看懂)
多次看了promise构造函数和all、then、reject、resolve、catch后,终于看懂了。参考文章:https://blog.csdn.net/shan1991fei/article/details/78966297原创 2019-04-03 15:49:37 · 206 阅读 · 0 评论 -
ES6 数组的扩展
扩展运算符 Array.from() Array.of() 数组实例的 copyWithin() 数组实例的 find() 和 findIndex() 数组实例的 fill() 数组实例的 entries(),keys() 和 values() 数组实例的 includes() 数组实例的 flat(),flatMap() 数组的空位1. Array.from()1.1 A...原创 2019-04-03 17:47:28 · 135 阅读 · 0 评论 -
正则验证车牌号码(包括新能源车牌)
摘引文章:https://blog.csdn.net/xjun0812/article/details/81806118正则验证:new RegExp(/^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵...原创 2019-07-29 16:19:15 · 1274 阅读 · 0 评论 -
移动端前端常见的触摸相关的事件touch、tap、swipe等
一、click事件单击事件,类似于PC端的click,但在移动端中,连续click的触发有200ms ~ 300ms的延迟 二、touch类事件(即触摸事件)touchstart:手指触碰到屏幕会触发;touchmove:手指在屏幕上移动会触发;touchend:手指离开屏幕会触发;touchcancel:可由系统进行的触发,比如手指触摸屏幕的时候,突然alert了一下...原创 2018-09-26 09:54:16 · 1148 阅读 · 0 评论 -
js事件流&事件委托
一、什么是JavaScript事件流?原文博客:https://www.cnblogs.com/st-leslie/p/5907556.html(写得非常好)//举例<body> <div style="width:200px;height:200px;background:lightblue" id="content"> <di...原创 2018-09-26 09:31:07 · 289 阅读 · 0 评论 -
CSS浏览器兼容性写法、JS浏览器兼容性写法
一、浏览器的内核IE:trident内核Firefox(火狐):gecko内核Chrome:Blink(基于Webkit)Safari:Webkit内核Oprea:现用Blink,以前是presto内核二、CSS浏览器兼容性-moz- 火狐-o- opera早期-webkit- 谷歌、safari-ms- IE三、JS浏览...原创 2018-09-25 21:13:06 · 654 阅读 · 0 评论 -
正则表达式
0、replace() 方法定义和用法replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串<script type="text/javascript">var str="Visit Microsoft!"document.write( str.replace(/Microsoft/, "W3School"))&...原创 2018-09-13 11:07:38 · 1126 阅读 · 0 评论 -
slice、splice、filter、map、forEach、concat方法
第一题 查找数组元素的位置1.indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。语法:stringObject.indexOf(item) //stringObject为数组或字符串;item为要检测的字母或子字符串第二题 数组求和1、不考虑算法复杂度,递归slice() 方法可从已有的数组中返回...原创 2018-08-30 16:32:54 · 1428 阅读 · 0 评论 -
JS判断各种数据类型的方法&判断一个变量是否为数组类型
一、js中判断数据类型的方法js的七种数据类型:number、string、boolean、undefined、object、null、symbol和函数类型function。方法一:typeof ,无法检验出数组、对象或nulltypeof 2 // numbertypeof null // object...转载 2018-09-23 15:19:30 · 8958 阅读 · 0 评论 -
addEventListener第三个参数作用
DOM方法 addEventListener() 和 removeEventListener()是用来分配和删除事件的函数。 这两个方法都需要三个参数,分别为:事件名称(String)、要触发的事件处理函数(Function)、指定事件处理函数的时期或阶段(boolean)。DOM事件流如图: 当第三个参数设置为true就在捕获过程中执行,反之就在冒泡过程中执行处理函数。do...转载 2018-09-19 10:20:05 · 570 阅读 · 0 评论 -
setTimeout与console.log、promise.then之间执行先后顺序
1、setTimeout与console.log、promise.then、await之间执行先后顺序(1)setTimeout延时为0时: setTimeout(function(){ console.log(2); },0); console.log(1); //输出顺序:1,2(2)先后顺序:函数调用栈 ——>setTimeou...原创 2018-09-19 11:28:57 · 6510 阅读 · 4 评论 -
call()和apply()、bind()方法的区别;对Array.prototype.slice.call()方法的理解
1、call()和apply()就是改变函数的执行上下文,也就是this值。他们两个是Function对象的方法,每个函数都能调用。function apply1(num1, num2){ return sum.apply(this, [num1, num2]);}function call1(num1, num2){ return sum.call(this, num1...原创 2018-09-14 10:22:21 · 355 阅读 · 0 评论 -
Promise对象的几种方法
Promise,就是一个对象,用来传递异步操作的信息。1、Promise对象有两个特点:一是对象的状态不受外界影响,有3种状态:Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejectd(已失败)。只有异步操作的结果可以决定当前是哪一种状态,任何其他操作都无法改变这个状态;二是一旦状态改变(从Pending变为Rsolved和从Pending变为Rej...原创 2018-09-24 16:34:03 · 5253 阅读 · 0 评论 -
闭包、匿名函数、函数声明
1、简单的描述闭包:如果在函数func内部声明函数inner,然后在函数外部调用inner,这个过程即产生了一个闭包。(1)闭包是指:有权访问另一个函数作用域中的变量的函数。创建闭包的方式:在一个函数内部创建另一个函数。 (2)闭包与变量作用域链引出的一个副作用:闭包只能取得包含函数中任何变量的最后一个值。闭包所保存的是整个变量对象,而不是某个特殊的变量。function c...原创 2018-09-14 15:28:39 · 314 阅读 · 0 评论 -
push()、pop()、unshift()、shift()
1、push()定义和用法push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。注释:该方法会改变数组的长度。push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。2、pop()定义和用法pop() 方法用于删除...原创 2018-09-14 10:45:55 · 172 阅读 · 0 评论 -
node.js 6个常用核心模块介绍
一、HTTP模块作用:处理网络客户端的请求二、URL模块 作用:处理客户端请求过来的url三、Query Strings模块作用:处理客户端通过get/post请求传递过来的参数 四、File System模块作用:在服务端操作文件,可能是需要将浏览器上传的图片保存到服务器,也可能是需要将服务器的资源读取之后返回给浏览器。五、Path模块作用:操作文件的路径,为...原创 2018-09-19 14:38:48 · 3099 阅读 · 0 评论 -
定时器、一二三个等号
1、 "=" "==" "===" 的区别(1)“===”为等同符,数值和类型都相同是为true;(2)“==”为等值符,先转换类型在比较;(3)“=”为赋值操作。2、setInterval()与setTimeout()计时器setInterval(function,time)方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不...原创 2018-08-31 15:26:21 · 350 阅读 · 0 评论 -
jq的四种绑定事件的方法
参考博客:https://blog.csdn.net/ditto_zhou/article/details/62042670一、jquery的几种事件绑定方式: bind(),on(),live(),delegate()1.bind()函数只能针对已经存在的元素进行事件的设置;但是live(),on(),delegate()均支持未来新添加元素的事件设置;2.bind()函数在jqu...原创 2018-09-25 16:56:30 · 5321 阅读 · 0 评论 -
JS三大对象、JS单线程运行机制
一、JavaScript有3大对象,分别是本地对象、内置对象和宿主对象。参考文章:https://segmentfault.com/a/1190000011467723 本地对象 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象。 简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。 这些引用类型在运行过程中需要通过new来创建所需的实例对象。 ...转载 2018-09-20 08:51:49 · 271 阅读 · 0 评论 -
定时器和事件监听器
一、定时器setTimeout&clearTimeout1、t=setTimeout(code, time) 方法用于在指定的毫秒数后调用函数或计算表达式,setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()2、clearTimeout(t) 方法可取消由 setTime...原创 2019-08-05 19:32:07 · 927 阅读 · 0 评论