javascript
ChauncyWu
爱IT,爱这里
展开
-
经典面试题:JS常见的排序算法
1. 冒泡排序// 冒泡排序// 比较两个相邻的元素,将值大的元素交换至右端// N个数字要排序完成,总共进行N-1趟排序function bubbleSort(arr) { if (arr.length === 0) { return [] } for(let i = 0; i < arr.length; i++) { for(let j = 0; j<arr.length; j++) { if (arr[j] > arr[j+1]) { let原创 2020-10-11 13:03:10 · 864 阅读 · 0 评论 -
JS深层取值的方法
前端取后端数据的时候, 经常会遇到一些比较深层的结构。比如```const address = { province: { name: '江苏省', city: { name: '扬州市' district: { name: '邗江区' } } }}```这时...原创 2020-04-25 16:13:01 · 1966 阅读 · 1 评论 -
使用IntersectionObserver接口进行图片懒加载
参考文章:简书 文中图片来源:http://www.acgjc.com[MDN] IntersectionObserver接口 (从属于Intersection Observer API) 提供了一种异步观察目标元素与其祖先元素或顶级文档视窗(viewport)交叉状态的方法。祖先元素与视窗(viewport)被称为根(root)。也就是说, 这是用来监听页面中模块可见区域的。...原创 2019-08-10 14:29:02 · 1028 阅读 · 1 评论 -
js 吸顶 vue 吸顶
页面吸顶的效果, 实现有两种, 最快的一种是用position: sticky方法, 不过该方法尚存在兼容性问题, 使用的时候需加入兼容方法。使用方法跟position: fixed类似。 只要设定好吸顶时候的位置就行了。<div class="title title_sticky"> Title </div><style>.title { ...原创 2019-06-03 23:02:38 · 733 阅读 · 0 评论 -
add(1, 2, 3)与add(1)(2)(3)的写法
参考文章:https://segmentfault.com/a/1190000008610969add(1, 2, 3, ...)是对传入参数的求和方法function add (...args) { return args.reduce((prev, val) => { return prev + val })}let rs = add(...原创 2019-06-02 16:55:14 · 8081 阅读 · 1 评论 -
前端不改后台接口地址,也能获取假数据
原文来自:https://my.oschina.net/kalnkaya/blog/3047959, 感谢!大家都知道前端要想自己造假数据,可以使用mock.js。 如果你不想把假数据写在代码中,可以借助easymock。 但是即便你使用了easymock,依然需要修改代码中的后台接口基地址,使其暂时指向easymock的地址,这种方法存在如下弊端:你不得不修改你的baseUrl以便暂时...转载 2019-05-12 11:38:05 · 1858 阅读 · 0 评论 -
长度100的数组的多重写法
原文链接 [知乎]:https://www.zhihu.com/question/41493194 [简书]:https://www.jianshu.com/p/6c7d0b18d4ca今天在知乎看到一个问答贴, 题目是这样的:如何不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标?帖子作者是这样写的var a ...转载 2019-03-28 22:19:25 · 1189 阅读 · 0 评论 -
数组操作concat(), slice(), splice()方法记录
concat()方法concat()方法基于当前数组所有项创建一个新数组1. 在没有给concat()方法传递参数的情况下, 他复制当前数组并返回副本2. 如果传递给concat()方法的是一个或多个数组, 则该方法会将这些数组中的每一项都添加到结果数组中3. 如果传递的值不是数组, 这些值就会简单地添加到结果数组的末尾let colors = ['red', 'green...原创 2019-03-24 14:13:13 · 1112 阅读 · 0 评论 -
js函数去抖和函数节流测试
去抖(debounce)和节流(throttle)都是限制函数不会在短时间内被频繁触发执行的方法。两者的区别简单来说, 就是:去抖是频繁触发只会执行一次, 而节流则是频繁触发但是有间隔的执行模拟一个点击事件<div id="testDiv" onclick="testClick()"> 点击</div>去抖: //函数去抖//去抖debounc...原创 2019-02-15 18:45:19 · 522 阅读 · 0 评论 -
JS中find(), findIndex(), filter(), forEach(), some(), every(), map(), reduce()方法记录
1. find()与findIndex() find()方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。[1, 2, 5, -1, 9].find((n) => n < 0)//找出数组中第一个小于 0 的成员// -...原创 2018-10-07 20:52:47 · 23096 阅读 · 0 评论 -
关于setTimeOut和setInterval改变this指向的问题解决方法
在setTimeOut()或setInterval()这样的方法中,如果传入的函数包含this, 那么,默认情况下,函数中的this会指向window对象。这是由于setTimeout()调用的代码运行在与所在函数完全分离的执行环境上。这会导致这些代码中包含的 this 关键字会指向 window (或全局)对象。百度了网上的解决方法,如下1.将当前对象的this存为一个变量 ...转载 2018-09-09 18:02:33 · 2665 阅读 · 1 评论 -
关于new Date()方法在IE8下面无效的解决办法
1. 如果获取两个日期差是需要Date( )方法的,最近发现Date()方法在IE8下并不友好,存在一些兼容性的问题。下面介绍方法,计算两个日期差//计算日期差函数,兼容IE8 function getDays(strDateStart,strDateEnd){ var strSeparator = "."; //2017.08.08 这里以.为分隔符转载 2017-08-22 13:30:30 · 4217 阅读 · 0 评论 -
JS输出斜边递增正三角
今天看到一条JS题目,在页面上打印输出一个正三角形,斜边递增。如下。 1 2 1 23 2 1 2 3......思索出一个简单的想法,用for循环嵌套就好了代码如下,比较粗糙for(let i = 1; i<=3;i++){ for(let d = i;d <= 3+1-i;d++){ document.wri原创 2017-07-09 13:59:22 · 1013 阅读 · 0 评论 -
记录一下冒泡排序和sort()排序
今天有空,整理了一下写过的javascript排序方法。排序方法很多,我了解的不算多,这里记录下知道的冒泡排序和js自带的sort()排序。1. 冒泡排序function BubbleSort(arr) { var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < le原创 2017-03-28 23:58:43 · 3169 阅读 · 0 评论 -
JavaScript表单验证
用原生JS写一个简单的表单验证 首先,是html部分 新用户注册 基本信息 用户名: 请输入至少3位的用户名 密码: 请输入4到8位的密原创 2017-02-03 13:54:16 · 957 阅读 · 0 评论 -
JavaScript动态向表格添加数据
利用javascript ,动态向表格中添加数据1. 首先先写出表格的表头和主干部分 编号 姓名 职位 操作 2. 接下来就是网表格里面添加数据,这里用的是原生javascript //模拟一段JSON数据,实际要从数据库中读原创 2017-01-23 20:49:57 · 32376 阅读 · 9 评论 -
java和javascript 分别获取当前时间
javascript 方法: //获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS” function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var seperator2 = ":"; var month = date.getMonth() + 1;原创 2017-02-07 22:48:09 · 481 阅读 · 0 评论