
js
little little
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
获取当前时间
function dateFormat(){ let date = new Date(); let str = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + ((date.getHours()).toString().padStart(2,'0')) + ':' + ((date.getMinutes()).toString().padStart(2,'0')) + ':' +.原创 2021-10-19 17:10:34 · 100 阅读 · 0 评论 -
瀑布流布局和滚动加载更多
...html <div id="box"> <div class="item"><img src="./images/1.jpg"></div> <div class="item"><img src="./images/2.jpg"></div> <div class="item"><img src="./images/3.jpg"><.原创 2021-10-15 19:39:31 · 206 阅读 · 0 评论 -
es6中的Map类型
var obj1 = { name:'zs'}var obj2 = { name:'ls'}var obj3 = { [obj1]:'ww', [obj2]:'ll'}console.log(obj3) // {[object Object]:'ll'}// es5 中,形如 obj3中的键key,会调用toString(),隐式转换为字符串,[obj1]和[obj2]调用toString()转换为 [object Object] ,俩个相同的key,第.原创 2021-10-15 18:17:28 · 361 阅读 · 0 评论 -
js中的继承
1、原型链继承 子类的原型指向父类的实例,缺点:子类有多个实例,一个实例改变值是引用类型的属性的值会改变其他实例的相同属性的值;无法对父类进行传参function Person(){ this.name = ['张三']}Person.prototype.getName = function(){ return this.name}function Child(){}Child.prototype = new Person();Child.pr...原创 2021-10-15 16:20:56 · 113 阅读 · 0 评论 -
数组的拼接
var arr1 = [1,2,3,4,5]var arr2 = [6,7,8,9,10]var arra = arr1.concat(arr2) //不改变arr1和arr2的值,返回拼接后的新数组Array.prototype.push.apply(arr1,arr2) console.log(arr1) // [1,2,3,4,5,6,7,8,9,10]原创 2021-10-15 11:26:25 · 153 阅读 · 0 评论 -
理解伪数组
一、特点 含有length属性,无法直接使用数组的方法,可以通过索引获取内部数据的数据结构二、常见的伪数组 arguments document.getElementByTagName、document.getElementByClassName等获取的dom元素的集合 等等三、伪数组转换为数组...html <div class='div1'></div> <div cla...原创 2021-10-15 11:17:33 · 172 阅读 · 0 评论 -
数组的reduce方法
一、reduce的理解 arr.reduce(function(pre,cur,index,arr){},init)或者 arr.reduce(function(pre,cur,index,arr){})-- arr 表示原数组--pre 表示上一次调用回调函数后的返回值,或者原始值 init。如果init设置的值,那么第一次调用回调时,pre值就是init的值,如果没有设置init的值,那么第一次调用回调时,pre值就是arr第一项元素的值--...原创 2021-10-14 18:37:59 · 337 阅读 · 0 评论 -
数组的扁平化处理
将多维数组转换为一维数组示例数组: const arr = [1,[2,[3,[4,5]]]6]方法一:使用 flatconst arr1 = arr.flat(Infinity) // [1,2,3,4,5,6]方法二:利用正则const arr2 =JSON.parse('['+JSON.stringify(arr).replace(/\[|\]/g,'')+']')方法三:使用reduceconst flatten = arr => {...原创 2021-10-14 15:44:26 · 108 阅读 · 0 评论 -
js的设计模式
一、单例模式1、定义 只有一个实例,可以全局访问。 主要解决:一个全局使用的类,频繁的创建和销毁 何时使用:当想控制实例的数目,节省系统化资源的时候 如何实现:判断系统是否已经有这个单例,如果有则返回,没有则创建 单例模式优点:内存中只有一个实例,减少了内存的开销,尤其是频繁地创建和销毁实例,比如首页页面的缓存2、案例 实现一个登陆的弹窗<html> <but...原创 2021-10-14 14:08:47 · 149 阅读 · 0 评论 -
js中的event-loop
事件循环机制由三部分组成,调用栈、微任务队列、消息队列,1、event-loop开始的时候,会从全局一行一行地执行,遇到函数调用,会压入到调用栈中,被压入的函数被称之为帧,当函数返回后,会从调用栈中弹出。<script> function fun1(){ console.log(1) } function fun2(){ console.log(2) fun1() console.log(3...原创 2021-10-13 18:49:11 · 413 阅读 · 0 评论 -
手写实现map
<script> var arr = [1,2,3]; var newArr = arr.map((item,index)=>{ return item*2 }) console.log(newArr) // [2,4,6] // 手写实现Map function map(arr,mapCallback){ if(!Array.isArray(arr) || !arr.length || typeof m.原创 2021-10-13 17:24:01 · 227 阅读 · 0 评论 -
什么是高阶函数?
将函数作为参数或者返回值的函数原创 2021-10-13 16:35:49 · 161 阅读 · 0 评论 -
哪些会引起内存泄漏
哪些操作会引起内存泄漏?闭包意外的全局变量被遗忘的定时器脱离dom的引用原创 2021-10-13 16:31:20 · 105 阅读 · 0 评论 -
面试题:预解析和作用域
1002原创 2021-07-01 12:46:00 · 88 阅读 · 0 评论 -
数组的sort方法
数组的sort方法排序:var arr = [12,4,16,5,7,14,23,20]arr.sort() 是将arr中每个值转换为字符串,原创 2021-06-17 10:32:32 · 309 阅读 · 0 评论 -
javscript运行机制
一、javascript是单线程 JavaScript在同一时间执行一件事,是单线程的。这与它的用途有关。它是一门浏览器脚本语言,主要与用户互动,操作DOM。这决定了它只能是单线程,不然会出现复杂的同步问题。比如,假设js有两个线程,一个线程是在某个DOM节点上添加内容,另一个线程是删除这个节点,这时浏览器应该以哪个线程为准?所以为了避免矛盾,javascript是以单线程的身份诞生的,这是js的核心特征。 为了利用多核CPU的计算能力,html5提出了web worke...转载 2021-04-14 15:47:22 · 190 阅读 · 0 评论 -
TypeScript和javascript的区别
1. Javascript特点 JavaScript是一种轻量级的解释性脚本语言,可嵌入到html中,在浏览器端运行,实现浏览器端丰富的交互功能。 Javascript是基于对象和事件驱动的,无需特定的语言环境,只需要在支持的浏览器上运行。 特点:(1)JavaScript 是一种脚本编写语言,无需编译,只要嵌入 HTML 代码中,就能由浏览器逐行加载解释执行。(2)JavaScript 是一种基于对象的语言,可以创建对象同时使用现有对象。但是 ...转载 2021-04-08 10:54:53 · 1310 阅读 · 0 评论 -
map和object
1. Map对象 Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。2.Maps 和 Objects 的区别一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。 Map 中的键值是有序的(FIFO先进先出 原则),而添加到对象中的键则不是。 Map的键值对个数可以从 size 属性获取,而Object的键值对个数只能手动计算。 Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键...翻译 2021-04-02 12:50:57 · 579 阅读 · 0 评论 -
let、var和const的区别
var、let和const都是声明变量的。它们的区别是: var声明的变量会提升到函数的最顶部,let和 const不会; console.log(a); console.log(b); //报错 console.log(c); //报错 let b = 2; const c = 3; var a = 1;2....原创 2021-04-01 14:23:49 · 94 阅读 · 0 评论 -
闭包
闭包,是可以实现从函数外部访问函数内部变量的代码书写方式。 function f1(){ var a = 1; function f2(){ return a; } return f2; } var b = f1(); // b=f2 var c = b(); // c=1原创 2021-04-01 13:41:51 · 84 阅读 · 0 评论 -
js判断数据类型
可以判断数据类型的方式有:typeof、instanceof、Object.prototype.toString.call(需要判断的值),其中Object.prototype.toString是完美的判断数据类型的方法1. typeoftypeof(1) // "number"typeof(Number) // "function"typeof("") // "string"typeof(String) // "function"typeof(true) // "bo原创 2021-03-30 09:56:22 · 95 阅读 · 0 评论 -
函数的防抖和节流
在实际开发中,会遇到一些操作,如浏览器的onresize、mousemove等会频繁触发的事情。为了防止被频繁触发,造成频繁请求服务器的压力。需要限制一下触发的事件。这时候,我们考虑使用防抖和节流来控制触发事件的频次。1. 函数防抖(debounce)防抖函数:一个需要频繁触发器函数,在规定事件内,只让最后一次生效,前面的不生效。代码如下://html<button id="btn">点击按钮</button>//js fun...翻译 2021-03-29 15:11:51 · 99 阅读 · 0 评论 -
javascript的继承方式
面向对象编程,很重要的一点,就是对象的继承,一个对象继承另一个对象的方法。在实际中,对于减少重复代码的使用,了解对象的继承是有用的。下面介绍几种对象的继承方式:(下面的案例描述中,子类child要继承父类persion的方法)1. 原型链继承 子类的原型是通过父类构造函数创建出来的,如下代码: //1.原型链继承 //父类 function Persion(name,age){ this.na...翻译 2021-03-29 12:49:51 · 79 阅读 · 0 评论 -
Promise
1. Promise对象 Promise对象代表了未来将要发生的事件,用来传递异步操作的信息。1.1 特点(1)对象的状态不受外界影响,Promise对象代表一个异步操作,有三种状态:* pending:待定,初始状态,不是成功也不是失败* fulfilled: 操作完成成功* rejected:操作失败只有异步操作的结果,可以决定当前是哪一状态,任何其他操作都无法改变这个状态。这也是Promise名字的由来,意思是承诺 ,表示其他手段无法改变(2)一旦状...翻译 2021-03-25 15:10:40 · 101 阅读 · 1 评论 -
angular组件生命周期
1. 生命周期钩子 当angular实例化组件类并渲染组件视图及其子视图时,组件实例的生命周期就开始了。生命周期一直伴随着生命检测,angular会检查数据绑定属性何时发生变化,并按需更新视图和组件实例。当angular销毁组件实例并从dom中移除塔渲染的模板时,生命周期就结束了。当angular在执行过程中创建、更新和销毁实例时,指令就有了类似的生命周期。 在应用中,可以使用生命周期钩子方法来触发组件或生命周期中的关键事件,以初始化新实例,需要时启动变更检测,在变更检测过程...翻译 2021-03-23 16:32:01 · 813 阅读 · 0 评论 -
Vue\React\Angular的区别
1. 基本概念Angular 是一个应用设计框架与开发平台,用于创建高效、复杂、精致的单页面应用。React是一个用于构建用户界面的 JavaScript 库Vue (读音 /vjuː/,类似于view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。2. 三者比..原创 2021-03-18 16:19:48 · 6893 阅读 · 1 评论 -
tsconfig常用设置
在前端开发中有时会遇到需要配置下tsconfig文件,下面整理了一些配置详解。{ "compilerOptions": { "target": "ES2015", "module": "commonjs", "lib":["ES6","DOM"], "allowJs": true, "checkJs": true, "jsx":"preserve", "declara...翻译 2021-03-17 11:55:20 · 3617 阅读 · 0 评论 -
Weex使用特殊几点
1. Weex Weex 致力于使开发者能基于通用跨平台的 Web 开发语言和开发经验,来构建 Android、iOS 和 Web 应用。简单来说,在集成了 WeexSDK 之后,你可以使用 JavaScript 语言和前端开发经验来开发移动应用。 Weex 致力于使开发者能基于通用跨平台的 Web 开发语言和开发经验,来构建 Android、iOS 和 Web 应用。简单来说,在集成了 WeexSDK 之后,你可以使用 JavaScript 语言和前端开发经验来开发移...原创 2021-03-14 11:56:01 · 645 阅读 · 0 评论 -
堆和栈
引言 经常提起堆和栈,堆和栈的区别和联系是什么,数据结构中存在堆和栈,java虚拟机中也有堆和栈的概念,这两者是不同的。 简略说一下java虚拟机中的堆和栈。java虚拟机运行时在内存中开辟一片内存区域,JVM内存区域分为5片:寄存器、本地方法区、方法区、栈内存和堆内存。...翻译 2021-01-30 20:34:07 · 449 阅读 · 0 评论 -
获取Date某一天
1. 获取当前北京时间let dt = new Date();2. 获取当月某一天let dt = new Date();dt.setDate(n) // n为某日, 取值范围整数,负无穷到正无穷注意: n 在当前月的范围内,获取的是当前月的第 n 天;n 超出当前月,则获取的是下个月或者下下个月......的某天;n为负整数时,获取的是上个月或者上上个月......的某天3....原创 2021-01-29 15:38:46 · 1098 阅读 · 0 评论 -
vue中的共享数据管理---vuex
引言 vuex是关于对vue中一些多个组件共享的数据进行统一集中式管理的方法。翻译 2020-12-26 10:04:22 · 637 阅读 · 0 评论 -
彻底理解base64
1. base64概念 Base64是用于传输8bite字节码的编码方式之一,是一种基于"A-Z、a-z、0-9、+、/"64个可打印字符来表示二进制数据的方法,可能加上垫字字符'='。 Base64应用在计算机各个领域,由于输出内容包括两个以上符号类字符(+ / =)为满足不同场景,base64也在不断地进行变种。比较统一和规范的是,Base62X是无符号化的改进版本。 Base64不适合在URL里传输,URL标准会把标准的base64中的 / 和 +...原创 2020-12-18 17:25:52 · 1185 阅读 · 0 评论 -
Math以及方法
1. Math对象 Math对象用于执行数学任务,使用Math的属性或者方法的语法如: Math.PI(获取圆周率PI值) ,Math.pow(2,3) ( 获取2的3次方的值)。 Math对象并不像Date和String那样是对象的类,它没有构造函数Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法,无法创建它。通过把 Math作为对象就可以调用其所有属性和方法。相关数学知识科普:(1)对数:是对求幂的逆运算。例如:如果...原创 2020-12-14 16:00:23 · 1218 阅读 · 0 评论 -
前端面试中的一些算法题
前端的一些算法原创 2020-12-11 11:32:12 · 295 阅读 · 0 评论 -
this指向,响应式布局和自适应布局...
this指向 响应式和自适应 MVC原创 2017-01-12 16:34:08 · 261 阅读 · 0 评论 -
对象的深拷贝和浅拷贝
对象的深拷贝和浅拷贝,以及高级解决方案原创 2017-01-18 14:22:26 · 435 阅读 · 0 评论 -
es5 严格模式
一、概念从es5开始,javscript有两种运行模式:正常模式和严格模式('use strict')。它的作用是:1、消除javascript语法的一些不合理、不严谨之处,减少一些怪异行为; 2、消除代码运行的一些不安全性,促进代码运行的安全; 3、提高编译器效率,增加运行速度; 4、为未来新版本的javascript做好铺垫 IE10\翻译 2017-02-17 19:23:36 · 2199 阅读 · 0 评论 -
Promise概念和常用api
1、概念:Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。通俗讲,Promise是一个许诺、承诺,是对未来事情的承诺,承诺不一定能完成,但是无论是否能完成都会有一个结果。Pending 正在做。。。Resolved 完成这个承翻译 2017-02-18 21:16:34 · 8379 阅读 · 1 评论 -
js创建函数3种方式
javascript创建对象3种方式原创 2017-02-19 20:02:45 · 6545 阅读 · 1 评论 -
Babel转码工具使es6\es7向es5转码
详见,阮一峰es6入门 ‘1.ECMAScript 6简介’部分原创 2017-02-19 20:35:10 · 5852 阅读 · 1 评论