![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 67
guoxu0416
这个作者很懒,什么都没留下…
展开
-
javaScript实战之数组
数组避坑indexOfincludeindexOf此方法判断数组中是否存在某个值,如果存在,则返回数组元素的下标,否则返回-1。include此方法判断数组中是否存在某个值,如果存在返回true,否则返回false在数组中查找对象,Array.includes像obj === obj2一样按对象标识进行比较,除非这两项是对同一对象的引用,否则此方法不起作用。用some判断...原创 2021-07-09 14:33:13 · 539 阅读 · 0 评论 -
JavaScript 之 Object.create()方法使用
Object.create()方法Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。语法:Object.create(proto, [propertiesObject])proto:新创建对象的原型对象。propertiesObject:可选。若没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而...原创 2019-06-05 11:12:15 · 227 阅读 · 0 评论 -
JavaScript session和cookies和localstorage和sessionstorage
session和cookies相同点:cookies和session都是用来跟踪浏览器用户身份的会话方式不同点:cookies保存在客户端,session保存在服务端cookies保存在客户端,没有那么安全,别人可以在客户端分析cookies进行cookies诈骗,考虑到安全应该用sessionsession保存在服务端,访问增多时对服务器会造成压力,考虑到服务器性能问题应该用cook...原创 2019-06-14 21:01:15 · 302 阅读 · 0 评论 -
JavaScript 宏任务和微任务
JavaScript 宏观任务和微观任务概念宏观任务:宿主发起的任务为宏观任务,如setTimeout、setInterval、setImmediate,I/O微观任务:JavaScript引擎发起的任务为微观任务,如PromiseJavaScript引擎等待宿主环境分配宏观任务,宏观任务的队列可以理解为一个事件循环:while(TRUE) { r = wait(); exec...原创 2019-06-17 15:12:04 · 3474 阅读 · 1 评论 -
JavaScript 事件循环
JavaScript 事件循环一、JS单线程、异步、同步概念众所周知,JS是单线程(如果一个线程删DOM,一个线程增DOM,浏览器傻逼了~所以只能单着了),虽然有webworker酱紫的多线程出现,但也是在主线程的控制下。webworker仅仅能进行计算任务,不能操作DOM,所以本质上还是单线程。单线程即任务是串行的,后一个任务需要等待前一个任务的执行,这就可能出现长时间的等待。但由于类似a...转载 2019-06-17 16:12:01 · 82 阅读 · 0 评论 -
JavaScript 小数相加小数点后面多出很多位
javascript浮点运算的一个bug.解决办法:使用toFixed(2)函数把结果保留小数点后两位!或后几位原创 2019-06-17 16:16:31 · 2534 阅读 · 0 评论 -
JavaScript 纯函数
JavaScript 纯函数//纯函数 —> 不对外界产生副作用的函数就叫纯函数纯函数:const sum = function(value1, value2) { return value1 + value2 }只要每次给定相同的输入值,就一定会得到相同的输出值: 例如传入1与2,就一定会得到3不会改变原始输入参数,或是外部的环境,所以没有副作用不依頼其他外部的状态,变量或常量...转载 2019-06-17 16:18:57 · 107 阅读 · 0 评论 -
JavaScript 发布-订阅者模式
JavaScript 发布-订阅者模式概念比如一个商店,会员粉丝经常要询问有什么活动,员工每次都要做一遍解答,工作重复又麻烦,但是把所有会员的邮箱收集成名单,有活动时统一发送邮件。会员就是订阅者,商店就是发布者会在合适的时候遍历名单,依次给会员发布消息。发送邮件通知就是一个的发布—订阅模式多个订阅者(一般是注册的函数)同时监听同一个数据对象,当这个数据对象发生变化的时候会执行一个发布事件,通...转载 2019-06-17 20:53:03 · 94 阅读 · 0 评论 -
JavaScript 标准日期、中国标准时间、时间戳、毫秒数互转
JavaScript 标准日期、中国标准时间、时间戳、毫秒数互转概念标准日期:2017-09-19 或 2017-09-19 20:00:00中国标准时间:Mon Oct 23 2017 17:20:13 GMT+0800 (中国标准时间)时间戳:1508750413毫秒数:1508750413000注意:时间戳*1000就是毫秒数日期或中国标准时间转毫秒数://变量let my...转载 2019-06-21 20:26:42 · 3376 阅读 · 0 评论 -
JavaScript之 typeof
typeoftypeof 运算符把类型信息当作字符串返回。typeof 返回值有七种可能: “number,” “string,” “boolean,” “object,” “function,” “undefined"和"symbol”运算数为数字 typeof(x) = “number”字符串 typeof(x) = “string”布尔值 typeof(x) = “boolea...原创 2019-06-28 21:01:45 · 97 阅读 · 0 评论 -
在浏览器地址栏输入URL,按下回车后究竟发生了什么?
在浏览器地址栏输入URL,按下回车后究竟发生了什么?这是一道面试会经常问的问题,平时虽然很常见的操作,但是探究其底层原理,可能并不是一件简单的事情,于是我从各处搜罗整理下全过程,在这里做分享。第一步:浏览器输入域名例如输入:www.csdn.net/第二步:浏览器查找域名的IP地址浏览器会把输入的域名解析成对应的IP,其过程如下:查找浏览器缓存:因为浏览器一般会缓存DNS记录一段...转载 2019-07-04 20:36:36 · 165 阅读 · 0 评论 -
JavaScript之call、apply、bind方法
JavaScript之call、apply、bind方法JavaScript中的call(), apply()和bind()是Function.prototype下的方法,都是用于改变函数运行时上下文,最终的返回值是你调用的方法的返回值,若该方法没有返回值,则返回undefined。这几个方法很好地体现了JavaScript函数式语言特性,在JavaScript中几乎每一次编写函数式语言风格的代...原创 2019-05-16 10:32:18 · 87 阅读 · 0 评论 -
JavaScript 内存泄漏和内存溢出
JavaScript 内存泄漏和内存溢出内存泄漏内存泄露是每个开发者最终都要面对的问题,它是许多问题的根源:反应迟缓,崩溃,高延迟,以及其他应用问题。概念应用程序不再需要占用内存的时候,由于某些原因,内存没有被操作系统或可用内存池回收。JavaScript内存管理JavaScript 是一种垃圾回收语言。垃圾回收语言通过周期性地检查先前分配的内存是否可达,帮助开发者管理内存。三种类型...原创 2019-05-10 15:59:14 · 723 阅读 · 0 评论 -
JavaScript之字符串和数组方法
JavaScript之字符串和数组方法字符串方法数组方法***JavaScript中常用的数组方法总结(含ES6)https://blog.csdn.net/hjhfreshman/article/details/88869598转载 2019-05-15 10:59:11 · 151 阅读 · 0 评论 -
JavaScript事件的防抖和节流
JavaScript事件的防抖和节流原创 2019-04-11 15:56:49 · 1411 阅读 · 0 评论 -
JavaScript之继承
JavaScript之继承继承:类与类之间的关系,js中没有类的概念,js中有构造函数的概念,是可以有继承的,基于原型首先创建一个父类一、原型链继承将构造函数的原型设置为另一个构造函数的实例对象,这样就可以继承另一个原型对象的所有属性和方法,可以继续往上,最终形成原型链。原型链:将父类型的实例作为子类型的原型对象,以此构成的链式关系。就是一种关系,实例对象和原型对象之间的关系,...原创 2019-04-08 20:27:33 · 92 阅读 · 0 评论 -
JavaScript 函数中的隐式参数
函数中的隐式参数在函数调用的时候,浏览器每次都会传递进两个隐式参数:函数的上下文对象this(待完成)封装实参的对象arguments例子:function fun(){ console.log(arguments);}fun('tom',[1,2,3],{name:'guixi'}); 可以通过arguments来调用传递给函数fun的实参。arguments还有...原创 2019-04-11 16:47:02 · 1219 阅读 · 1 评论 -
JavaScript 打乱一组数组
打乱一组数组用sort方法function randomsort(a, b) { return Math.random()>.5 ? -1 : 1; //用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1}var arr = [1, 2, 3, 4, 5];arr.sort(randomsort);首先了解sort这个方法:在Ar...原创 2019-04-08 22:34:53 · 249 阅读 · 0 评论 -
JavaScript 实现每次调用一个函数自动加1
JavaScript 实现每次调用一个函数自动加1用闭包函数var getId = (function () { // "use strict"; var i = 0; return function () { return ++i; }; })();console.log(getId()); //1console.log...原创 2019-04-09 14:17:29 · 6475 阅读 · 1 评论 -
JavaScript之闭包
JavaScript之闭包js 中作用域链的概念,即子作用域可以根据作用域链访问父作用域中的变量,那如果相反呢,在父作用域想访问子作用域中的变量呢?——这就需要通过闭包来实现。什么是闭包?红宝书上:闭包是指有权访问另一个函数作用域中的变量的函数。简单来说,闭包是指可以访问另一个函数作用域变量的函数,一般是定义在外层函数中的内层函数。创建闭包的常用方式,就是在一个函数内部创建另一个函...原创 2019-04-09 16:20:03 · 103 阅读 · 0 评论 -
JavaScript之深拷贝和浅拷贝
JavaScript 深拷贝和浅拷贝JavaScript有两种数据类型,基础数据类型和引用数据类型。基础数据类型都是按值访问的,我们可以直接操作保存在变量中的实际的值。而引用类型如Array,我们不能直接操作对象的堆内存空间。引用类型的值都是按引用访问的,即保存在变量对象中的一个地址,该地址与堆内存的实际值相关联。一、深拷贝和浅拷贝的区别js深拷贝和浅拷贝浅拷贝是拷贝一层,深层次的对象级别...原创 2019-04-28 16:48:15 · 254 阅读 · 0 评论 -
JavaScript中var、let、const区别
JavaScript中var、let、const区别一、前言ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。ES6中增加了块级作用域的概念JavaScript中var、let、const区别二、var如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。举...原创 2019-05-08 15:32:17 · 322 阅读 · 0 评论 -
JavaScript之事件机制
JavaScript之事件机制转:事件机制一、事件机制环节事件机制分为四个环节:事件流(冒泡、捕获)事件处理程序事件对象事件委托二、事件流事件流:指从页面中接收事件的顺序,有冒泡流和捕获流。当页面中发生某种事件(比如鼠标点击,鼠标滑过等)时,毫无疑问子元素和父元素都会接收到该事件,可具体顺序是怎样的呢?冒泡和捕获则描述了两种不同的顺序。那么冒泡和捕获十一什么样的形式发...转载 2019-05-08 19:35:40 · 109 阅读 · 0 评论 -
JavaScript 之 类数组(伪数组)
伪数组对象一、类(伪)数组对象类(伪)数组定义:具有length属性按索引方式存储数据没有数组中方法var fakeArray = { length: 3, "0": "first", "1": "second", "2": "third"};for (var i = 0; i < fakeArray.length; i++) { c...原创 2019-04-04 16:07:54 · 1233 阅读 · 0 评论