- 博客(19)
- 收藏
- 关注
原创 AntDesign DatePicker双向限制禁用日期
Ant Design日期选择框只有单一方向的限制,想要设置双向的禁用日期范围,可用如下方法:const disabledDate = date => { return date > moment() || date < moment().subtract('days', 14);};<DatePicker disabledDate={disa...
2019-12-22 17:20:16
904
原创 美团前端四面面经
一面:手写ajax,手写防抖函数手写倒计时函数作用域都有哪些基础的原型链,闭包问题读代码题,大概读了三四道,涉及到变量提升,和event loop(promise,setTimeout)解释eventloopvue数据双向绑定原理观察者模式箭头函数vue生命周期,都干了啥BFC(尽量多说,原理,作用)定位哪几种手写算法二分查找还是快排,有些忘...
2018-09-21 10:31:57
4749
转载 从一个简单例子来理解js引用类型指针的工作方式
<script> var a = {n:1}; var b = a; a.x = a = {n:2}; console.log(a.x);// --> undefined console.log(b.x);// --> [object Object] </script> 上面的例子...
2018-09-10 23:25:31
268
原创 节流和防抖
节流和防抖的目的都是防止某一时间频繁触发,但是原理不一样函数防抖是某一段时间内只执行一次,而函数节流是间隔时间执行防抖:在事件被触发n秒后再进行回调,如果这期间又被触发,则重新计时代码实现:function debounce(fn, wait) { var timeout = null; return function() { if(ti...
2018-09-04 16:57:56
250
转载 javascript学习图谱大全
总共9张图,分别归类为:javascript变量 javascript运算符 javascript数组 javascript流程语句 javascript字符串函数 javascript函数基础 javascript基础DOM操作 文档对象模型DOM javascript正则表达式能够认真看完就是一次对javascript的回顾与提升,可以很好的检验基础。javascri...
2018-08-24 14:24:40
784
原创 百度提前批一二面
1.vue怎么检测数组的变化2.v-model实现原理3.数组的浅拷贝,深拷贝(给出具体情况,判断)4.闭包,实现闭包5.页面上数据的变化,vue怎么检测到并赋值给js里的变量6.移动端开发和pc端开发的区别,除了样式上面区别还有什么7.ajax状态码01234都代表什么;上传一个很大的视频,状态码是什么8.一个函数里面有个ajax,ajax的success:funct...
2018-08-24 12:04:29
494
原创 360面试
一面:1.css动画怎么写,有哪些属性,除了animation还有哪些可以写动画2.js原生如何实现动画3.jquery如何实现动画4.js事件有哪些,键盘事件,如何判断敲的是哪个键,keycode都知道哪些5.跨域,jsonp原理,如何知道jsonp请求成功还是失败了6.如何判断滚动条到底7.如何获取get里的内容8.懒加载,怎么判断什么时候要加载9.水平垂直...
2018-08-24 11:59:13
329
原创 如何生成随机字符串
function randomString(len) { len = len || 32; var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhijklmnoprstuvwxyz1234567890"; var maxPos = chars.length; var pwd = ''; ...
2018-08-23 16:04:51
248
原创 洗牌算法
在写项目过程中,要实现一些和随机有关的功能(如随机播放歌单等),此时需要用到洗牌算法主要思路: 在数组中随机取一项和遍历顺序随机的某一项进行交换 function getRandomInt(min,max){ return Math.floor(Math.random()*(max-min+1)+min) } function shuffle(arr)...
2018-08-23 15:58:45
134
原创 new Vue 发生了什么
new Vue 发生了什么从入口代码开始分析,我们都知道,new 关键字在 Javascript 语言中代表实例化是一个对象,而 Vue 实际上是一个类,类在 Javascript 中是用 Function 来实现的,来看一下源码,在src/core/instance/index.js 中。function Vue (options) { if (process.env.NODE_E...
2018-07-30 17:24:01
1937
转载 Vue入口
从入口开始我们之前提到过 Vue.js 构建过程,在 web 应用下,我们来分析 Runtime + Compiler 构建出来的 Vue.js,它的入口是 src/platforms/web/entry-runtime-with-compiler.js:/* @flow */ import config from 'core/config'import { warn, cached } from...
2018-07-03 17:11:38
1674
原创 Vue.js 源码构建
Vue.js 源码是基于 Rollup 构建的,它的构建相关配置都在 scripts 目录下。构建脚本通常一个基于 NPM 托管的项目都会有一个 package.json 文件,它是对项目的描述文件,它的内容实际上是一个标准的 JSON 对象。我们通常会配置 script 字段作为 NPM 的执行脚本,Vue.js 源码构建的脚本如下:{ "script": { "build": "nod...
2018-07-03 15:51:37
470
原创 Vue.js 源码目录设计
Vue.js 源码目录设计Vue.js 的源码都在 src 目录下,其目录结构如下。src├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持├── server # 服务端渲染├── sfc # .vue 文件解析├── shared ...
2018-06-17 19:53:57
275
原创 什么是Flow
认识 Flow认识 FlowFlow 是 facebook 出品的 JavaScript 静态类型检查工具。Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码。为什么用 FlowJavaScript 是动态类型语言,它的灵活性有目共睹,但是过于灵活的副作用是很容易就写出非常隐蔽的隐患代码,在编译期甚至看上去都不会报错,但在运行阶段就可能出现各种奇怪的 b...
2018-06-16 17:45:55
863
原创 移动端调试工具--vConsole
Github地址:https://github.com/Tencent/vConsole平时Web端调试时,我们一般习惯用console来让控制台输出信息,但是在移动端,我们无法再用console来观察控制台输出的信息,可以用alert代替console.log,但是alert会阻断JS线程,导致后面的线程都执行不了,另外如果有大量的alert,也会影响我们的调试体验。利用vConsole插件可以...
2018-06-04 19:11:02
2036
原创 js实现二分查找
非递归:function BinarySearch(arr,item) { var left = 0, right = arr.length-1 while(left<=right){ var mid = Math.floor((left+right)/2) if(arr[mid] == ...
2018-05-21 23:08:50
3591
原创 js实现排序算法
1.冒泡排序function BubbleSort(arr) { var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j+1...
2018-05-17 21:45:36
127
转载 JS中的Promise的then方法
Promise.prototype.then回调里面的返回值,是通过一个变量/私有API保存的,不是return出来的,想接收/包装返回值得在Promise状态完成了之后通知执行回调函数。我再简单的举例,一个简单的异步任务如何拿到值:var foo = (callback) => { //通过回调函数拿值 setTimeout(function () {
2017-04-26 11:19:26
3621
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人