![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
文章平均质量分 89
老班老班
这个作者很懒,什么都没留下…
展开
-
执行上下文
三个属性:变量对象 作用域链 和this在ES5中只有两种上下文,就是全局上下文和函数上下文全局上下文的变量对象初始化是全局变量函数上下文的变量对象初始化就只有arguments对象在进入执行上下文时,会给变量对象添加变量声明,函数声明和形式参数当函数执行时,会再次去修改变量对象的值举个例子来说吧:function foo(a){ var b=3; functi...原创 2018-10-28 20:42:07 · 177 阅读 · 0 评论 -
js中的同步函数,异步函数及其具体应用
1.同步函数:当一个函数同步调用时,该函数不会被调用时不会立即返回,直到该函数所要做的事情全部做完了才返回2.异步函数:当一个异步函数被调用时,该函数会立即返回,尽管这个函数规定的操作任务还没有完成javascript是异步编程的,这是js的一个优点,但是也是它的一个缺点,因为当我们想要使用函数执行完成的结果来进行下一步操作时,会有一些麻烦,解决这种问题的方法是回调,因为回调的代码的层次很深不...原创 2019-03-12 11:06:07 · 8683 阅读 · 0 评论 -
关于promise
我们知道js是异步执行的。那么什么是异步呢?我理解的异步就是事件完成的顺序与和交付他们的时间顺序无关。举个例子来说:你去一家餐厅吃饭,并且找到一个位置坐下,然后你想让服务员给你拿个菜单,但是这个时候服务员站在另一桌吃饭的人旁边等待服务,向你说对不起我不是异步的服务员,我只能服务完这桌人才能来为您服务。你的内心肯定很痛苦吧!!!所以如果这个服务员是异步的,他应该就是给你拿来菜单。此时,你比那桌...原创 2019-03-26 21:47:44 · 163 阅读 · 0 评论 -
async/await
前面我们说到了promise,那么接下来我们应该更容易理解async/await 一些。async:async表示函数是一个异步函数,它的返回值是一个promise ,因此我们可以使用then方法来给它添加回调。await:await会使async函数暂停执行,等待promise的结果出来,然后恢复async函数的执行并返回解析值。await就是then的一个语法糖,这样将resolve的值直...原创 2019-03-27 14:35:27 · 167 阅读 · 0 评论 -
关于this
1.普通函数普通函数的this,是与它的调用环境相关的。我们不妨举个例子来看看。function globleTest(){ console.log(this); //window }globleTest(); 这个时候函数的this是指向window的,那我们再来看一个例子var test ={ a:1, b:function(){ console....原创 2019-03-27 15:56:33 · 91 阅读 · 0 评论 -
实现垂直居中的几种方式
使用绝对定位加负外边距,具体的代码为<div class="box"> <div class="child"> </div></div>.box { width: 300px; height: 300px; background: lightblue; position:...原创 2019-03-27 19:10:24 · 1207 阅读 · 0 评论 -
leetcode 求两数之和的优化 javascript
首先我们在不考虑效率的情况下最可能想到的是暴力的二重循环,但是我们肯定是要想一些办法的。在js中我们可能在外层使用一次循环来遍历数组,然后可能会用到indexOf来判定相减之后的值是不是在数组当中,其实indexOf也是将数组循环了一次,所以其实算法的时间复杂度就是 O(n^2)就像下面这样:var twoSum = function(nums, target) { for(let ...原创 2019-04-10 16:50:25 · 204 阅读 · 0 评论 -
generator
我们知道generator函数是es6引入的一种异步编程解决方案,那么问题就来了,我们前面知道promise对象也是用于解决异步问题的,那他们两个有什么区别呢?什么情况下应该用哪种方案呢?普通函数与generator函数首先我们知道普通的函数在执行的过程当中是一路走到底的,这就像是你坐飞机,在路上你不可能跟乘务长说停一下,你要下去,这是不可能的。但是generator函数可以,它中间能停!这就...原创 2019-03-27 22:24:27 · 1419 阅读 · 0 评论 -
使用ant-design 上传文件组件Upload时的beforeUpload返回false,文件仍然上传的问题
在使用Upload这个组件的时候,我们会发现它其实又许多的小坑坑。如果我们在beforeUpload中直接返回true或者是false,那么它其实也是会上传文件的,因为它也会触发onChange函数。我这里是采用在对应的函数中返回一个promise来解决的,就像下面这样:export function checkBeforeFileUpload(file){ return new Pro...原创 2019-04-11 12:56:46 · 15581 阅读 · 4 评论 -
nginx配置伪静态以及nginx开启PHP及pathinfo支持的方法
我这里的文件名是index.php配置伪静态:location / { if (!-e $request_filename){ rewrite ^/(.*)$ /index.php/$1 last; }}nginx开启PHP及pathinfo支持的方法location ~ \.php(.*)$ { root D:/wwwroot; #你的网站目录 f...原创 2019-04-08 13:30:33 · 1750 阅读 · 0 评论 -
ubuntu 16.04彻底卸载nginx
nginx很顽强,单独的删除它的文件是不够的,这会导致你再次安装时出现一系列的问题。卸载nginx,及其配置文件sudo apt-get --purge remove nginx2.自动全部移除不使用的软件包sudo apt-get autoremove3.列出与nginx相关的软件dpkg --get-selections|grep nginx4.删除查询出来的与ngin...转载 2019-04-03 09:41:24 · 2901 阅读 · 0 评论 -
Median of Two Sorted Arrays(leetcode)
1.js将两个数组合为一个数组的方法可以使用concat(),也可以使用扩展运算符,所以方法就有两种var arr = nums1.concat(nums2).sort((a,b)=>a-b); var a = (nums1.length + nums2.length)%2; var b = (nums1.length + nums2.length)/2; if(a...原创 2019-04-15 20:40:32 · 113 阅读 · 0 评论 -
leetCode Add Two Number
这道题是两个链表相加,我们需要注意的是在js中进行除法的时候,int有可能会被转换成float,所以这里我们需要使用Math.floor。然后还需要知道的就是链表的基本操作:新生成一个链表 const target = new ListNode(0); 我们通常使用一个变量来保存当前的节点,然后再移动的时候通过这个当前节点来进行移动var addTwoNumbers = function(l1...原创 2019-04-12 16:41:29 · 141 阅读 · 0 评论 -
leetcode Longest Substring Without Repeating Characters
var lengthOfLongestSubstring = function(s) { let curr = 0; let valuePos = new Map(); const len = s.length; if(len==0) { return 0; } for(let i=0,j=0;i&l...原创 2019-04-14 22:59:18 · 335 阅读 · 0 评论 -
react onClick回调
return( <List.Item actions={[<a onClick={()=>{this.downLoadFile(item)}}>下载</a>] }> <List.Item.Meta classNa...原创 2019-03-12 09:54:41 · 923 阅读 · 0 评论 -
antDesign Drawer
1.一个drawer其实就是一个Drawer控件当中又包含了一个组件就像下面这样<Drawer title={drawerTitle} placement="right" closable onClose={this.onCloseDrawer} visible={drawerVisibl...原创 2019-03-12 09:49:37 · 9642 阅读 · 0 评论 -
作用域链
在了解作用域链之前,我们应该需要先了解执行上下文,和执行上下文栈。当一个函数执行的时候,它会被压入一个执行上下文栈,在函数执行完成之后,又会被弹栈写这篇文章主要是写在看过文档之后,函数在创建和执行这两个过程当中是如何变化的。我们知道我们找一个变量的时候,如果在本函数内找不到,就会去父级去找,直至global,这是因为函数在被创建的时候,它的内部属性[[scope]]中就会保存有父级我们来看...原创 2018-10-28 21:16:27 · 132 阅读 · 0 评论 -
使用ajax上传文件
在使用ajax上传文件时,我们必须要将contentType设置成false,否则将会报出错误function postFileData(_data){ return $.ajax({ url:GLOBAL_URL + gApi, data:_data, type: "POST", p...原创 2018-12-05 11:21:55 · 69 阅读 · 0 评论 -
高水二期项目总结
1.在dataGrid中,如果我们需要对后台传过来的数据进行修饰,我们可以采用formatter,这里需要注意的是,我们最好不要直接把值放在formatter中,而是设置专门的对象去存储所有的值,就像下面这样:{ field : 'type', title : '审核类型', width : '25%...原创 2018-12-05 11:58:50 · 128 阅读 · 0 评论 -
js 字符串转化为整型
在实际编码过程当中我们经常需要将字符串转化成一个整型变量我们经常不带基数参数的使用parseInt,但是这有可能会产生问题,比如当字符串的第一个字符为“o”时,parseInt会将字符串转化成8进制数所以我们可以使用这两种方法,而且通常这比parseInt方法要快1.var str1 = "234";var digit= +str1;2.var str1 = "234";var ...原创 2019-01-10 20:48:20 · 4394 阅读 · 0 评论 -
easuyi editDataGrid的实现 优化版
如果你想用easyui的button,你需要注意引用它的图片和css文件&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;link&gt; &lt;meta charset="UTF-8"&gt; &lt;link rel=&am原创 2019-01-10 20:51:40 · 159 阅读 · 0 评论 -
箭头函数与解构赋值
箭头函数可以与解构赋值一起用的const firts =({one,two})=&gt;{return one+two};这就等同于function first(all){ return all.one + all.two;}为认为最为典型的列子是dva中connect的写法@connect(({ classesmanage, loading }) =&gt; ({ cl...原创 2019-01-17 10:58:08 · 724 阅读 · 0 评论 -
使用Hbuilder时,引入js文件一直不成功
因为我在request.js中定义了一个对象,对象中又有一个对象和一个方法,但是我在对象和方法之间没有写逗号,导致这个js文件一直引入不到index.js中,但是request.js中并没有报错,所有我也一直没有检查其中的内容,一直以为是路径错了var RequestUrl={ baseURL : GLOBAL_URL, API:{ PROCLAMATION:'/api/procl...原创 2019-01-18 12:17:29 · 9076 阅读 · 0 评论 -
CSS关于文本溢出
单行文本溢出 overflow: hidden; text-overflow: ellipsis; white-space: nowrap;我们只需要这3个属性就好了overflow:hidden 表示的是将超出的部分隐藏text-overflow:ellipsis超出的部分显示为省略号white-space:nowrap表示的是规定段落的文本不进行换行...原创 2019-01-18 12:41:54 · 223 阅读 · 0 评论 -
在create-react-app中使用装饰器
npm run eject安装相关插件针对reactnpm install babel-preset-stage-2 npm install babel-preset-react-native-stage-0在根目录下创建.babelrc{"presets":["react-native-stage-0/decorator-support"]}...原创 2019-01-18 14:48:37 · 453 阅读 · 0 评论 -
js 纯函数
什么是纯函数?函数的结果只依赖于函数的参数没有产生副作用所谓副作用就是指对外部产生了可观察到的变化const obj = {x:1};foo = (obj,b)=>{ obj.x = 99; return obj.x;}foo(obj,2); //让obj发生了变化,所以这个函数不是一个纯函数...原创 2019-01-15 15:02:47 · 525 阅读 · 0 评论 -
js检测变量类型
typeoftypeof一般用于鉴定基本的数据类型,因为:我们可以通过函数来实现:function toType (obj) { return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); }著作原文: https://www.w3cplus.com/javascript/comparing-type...原创 2019-02-15 17:36:04 · 757 阅读 · 0 评论 -
关于前端的工作细节
1.不管你觉得你的boss给你布置了一个怎样简单的问题,你都尽可能的把问题想的全面一些2.如果你的页面与前一个页面有关,那么不要偷懒,顺便把前一个页面也一起考虑一下吧3.这是关于今天的教训,如果你想要更加优秀,被赏识,那么级应该付出更多的努力4.前端的细节很多,特别是前台的展示信息,在经验不够多的情况下,你应该参考其他的比较成熟的网页看看别人是怎么做的,比如关于新闻或者是发布信息的展示,你应...原创 2019-02-16 10:12:44 · 315 阅读 · 0 评论 -
使用ant design,react做教育厅申报项目的总结
不可改动的数据如果比较多的话应该使用规整对齐的文字类似于表格来显示,这样的话比使用input设置为disabled要好一些。在使用input时,注意增加palceholder和rules的验证会有更加良好的用户体验在componentDidMount获取列表数据时,以及新增页面点击保存按钮时增加loading,避免用户多次操作对list中的数据title进行一定的考量,一般的list最好是...原创 2019-02-22 10:41:59 · 252 阅读 · 0 评论 -
react ,ant design中下载文件的方法,后台传送过来的数据是一个二进制流
这里我们介绍的是先上传再下载的情况1.首先我们需要一个Upload组件<Upload {...props}> <Button> <Icon type="upload"/> Click to Upload </Button> <...原创 2019-03-08 19:38:09 · 9544 阅读 · 1 评论 -
react ant Design手动设置表单的值
1.设置表单的值this.props.form.setFieldsValue({ name:&quot;张三&quot;, });2.清空表单的值form.resetFields();多看官方文档就知道这些东西了原创 2019-03-10 09:18:09 · 4301 阅读 · 1 评论 -
ant Design 自定义表单验证规则
如果你不想最后提交表单的时候才给出用户错误的提示,那么你可以这么写这个例子是验证你输入的新密码是否一致的问题<Row> <Col span={24}> <FormItem {...formItemLayout} label={'新密码'}> {getFieldDecorato...原创 2019-03-10 09:49:56 · 4462 阅读 · 0 评论 -
antDesign表单双向绑定
<Row type="flex" justify="center"> <Col span={24}> <FormItem {...formItemLayout} label={'旧密码'}> {getFieldDecorator('oldPassword', { ...原创 2019-03-10 09:57:49 · 6912 阅读 · 0 评论 -
leetCode Longest Palindromic Substring
我最开始想到的可能就是采用动态规划的方式,那么我们先来分析一下:1⃣️如果输入字符串为空,那么返回空2⃣️如果输入串的长度为1,那么直接返回这个字符串3⃣️然后我们使用arr[i][j]来表示s[i]......s[j是一个回文4⃣️要使s[i]......s[j]是一个回文的先行条件是s[i]==s[j]&&arr[i+1][j-1]排除了长度为0和1的情况,那么剩下的...原创 2019-04-22 17:06:39 · 137 阅读 · 0 评论