括号

深入理解js立即执行函数

点点圈 提交于 2020-03-03 16:00:31
看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。 1.什么是立即执行函数(IIFE) 在了解立即执行函数之前先明确一下函数声明、函数表达式及匿名函数的形式,如下图: 接下来看立即执行函数的两种常见形式:( function(){…} )()和( function (){…} () ),一个是一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号,另一个是一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中,这两种写法是等价的。要想立即执行函数能做到立即执行,要注意两点,一是函数体后面要有小括号(),二是函数体必须是函数表达式而不能是函数声明。先看下图: 从图中可以看出,除了使用()运算符之外,!,+,-,=等运算符都能起到立即执行的作用。这些运算符的作用就是将匿名函数或函数声明转换为函数表达式,如下图所示,函数体是函数声明的形式,使用运算符将其转换为函数表达式之后就可达到立即执行效果: 2.使用立即执行函数的好处 通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象

关于vscode粘贴时如果圆括号内内容太长会自动换行的问题

喜夏-厌秋 提交于 2020-03-03 03:14:07
最近在用python+selenium写一个刷课脚本,在用vscode编辑的时候发现粘贴代码的时候会把原括号内的内容自动换行,感觉特别不适应,把一段代码拉得很长 一开始以为是插件的问题,排除了几个发现不是;然后目标转移到vscode配置上,最后发现是设置里 editor.formatOnPaste 的问题,该设置打勾会自动格式化粘贴的内容,取消后再粘贴就不会自动换行了 来源: CSDN 作者: rambler_w 链接: https://blog.csdn.net/xirenwang/article/details/104616280

Sublime Text 3 应用技巧和诀窍

ぐ巨炮叔叔 提交于 2020-03-02 10:01:48
1.选择 以下是一些Sublime Text选择文本的快捷键: Command + D 选中一个单词 Command + L 选中一行 Command + A 全选 Ctrl + Command + M` 选中括号内所有内容 (编写CSS或JS时非常实用) Sublime Text还支持一次选中多行的操作:Furthermore, Sublime Text brings lets us select multiple lines at once, which can significantly boost your productivity. There are several ways to perform this feature: Command 按住Command键再点击想选中的行 Command + Ctrl + G (选中部分文本时) 按此键选中所有相同文本 Command + D (选中部分文本时) 直接选中下一次出现的该文本 2.CSS排序 CSS属性的顺序一般不重要,因为无论何种顺序浏览器都能正确渲染。但排序所有的属性还是有助于代码的整洁。在Sublime Text中,选中CSS属性后按F5就可以按字母顺序排序。 也可以使用 CSSComb 等第三方插件,更详细的控制排序的方法。 3.命令面板(Command Palette) 使用命令面板可以快速完成多重任务

2020/03/01 03-Django模板DTL使用

…衆ロ難τιáo~ 提交于 2020-03-01 23:46:32
模板技术本质上就是静态的html,为了让里面的内容可以动态变化,把里面变成一些填空题,然后准备一下数据,通过特殊手段传进去,这样就可以通过问系统加载到模板,把里面的内容填充好。 在python中需要把这些写好的模板放在一个特殊的目录中,这就是模板目录 写个dirs,将这个目录作为整个模板的搜索路径,但是搜索完整个目录还搜索其他吗,就看你要不要用app_dirs了,如果写了,就会到你已经注册的应用当中搜索模板。 如果一般不需要为这个应用单独写模板的话,上面这个目录的模板也就基本够用了,大多数项目都是把模板集中放这里了 这是模板的搜索路径 模板的本质就是给html,掏空,往里面填数据,如何找数据,第一种是给个字典按key来找。 两个大括号表示其实是用正则,来把你要填写的内容插入进去,形成一个大的字符串,模板技术本质上是这样的。 PHP.JSP,ASP全是这样的开发方式,在这里叫模板技术。 这种有一个坏处就是前后端不分离 模板处理分两步,第一步跟文件系统打交道,找到模板。第二步渲染,所谓渲染就是把这些空填满,填满之后该response,response。本质上要return httpresponse response之前必须先告诉对方responseheader是什么,最后再发body,body有可能很大 快捷函数render,讲模板的时候可能会用到httpresponse,render

结队编程

空扰寡人 提交于 2020-03-01 06:05:05
结队编程作业 结对成员信息: 201521123063 林羽晴 201521123065 洪亚文 码云项目地址: https://gitee.com/jmulyq/CreateFormula.git 1.改进现有的代码 我们选择的是第四个项目 他/她的博客: http://www.cnblogs.com/shizhuangde git地址: https://coding.net/u/shizhuangde/p/Myapp/git?public=true 原题目要求: http://www.cnblogs.com/happyzm/p/6472120.html http://www.cnblogs.com/happyzm/p/6509116.html http://www.cnblogs.com/happyzm/p/6558307.html (1)源码分析及修改内容 fra_formula 这个类里面主要是一个output的方法,还有输出格式,我认为只需要将随机生成的式子用字符串的形式打印出来即可,那样一个一个判断条件,有点太繁琐了 Fraction parseFraction()方法中只考虑了用户输入结果为分数或者整数的情况,在此处添加了小数转为分数的功能,还有遇到负数的情况 而且在判断结果是否正确的equals()方法中只通过比较分子和分母是否一样,还不够严谨,如果输入的是假分数

正则基础教程一些冷门的知识

扶醉桌前 提交于 2020-02-29 19:30:41
正则基础教程一些冷门的知识 正则引擎 正则分几种引擎也从是本书获得的知识点之一。 DFA 传统型NFA POSIX NFA NFA范围更广,例如 JAVA, PHP, Ruby, .NET... 你是看不起我javascript所以才不列入的吗? 使用DFA的是flex, MySQL, lex, awk大部分版本… 实话说,除了mysql,都没听过。不过不用在意! 两个引擎的区: NFA 更注重表达式 DFA 文本主导   通过书中里例子说,NFA 用表达式来匹配文本,而 DFA 是文本来匹配文表达式。当写好一个正则之后,NFA 是先检查表达式,同时检查文本是否匹配这个表达式。而 DFA 则是先扫描文本,然后处理表达式中的所有匹配可能,如果匹配失败,就将这条可能的线,淘汰。所以这里衍生一个概念就是回溯,NFA 有回溯,而 DFA 没有。 知识点   作为一个菜鸟,正则表达式一直是书到用时方恨少的角色。平时都是能抄则抄,不能抄的时候干着急,只能用 substr, indexOf, chatAt等等的方法实现功能,既不优雅也不够装逼。上网学习也都是菜鸟教程,W3school。然后下面说一下以上两个基础教程里没说到的知识点。   括号捕获与反向引用   当你在正则表达式里使用了 (),在表达式匹配时,它能记住或者说缓存括号内匹配的结果,从而可以拿到括号内的结果

JAVA实现简易计算器

和自甴很熟 提交于 2020-02-29 15:41:02
简易计算器,可实现任意长度带括号带优先级的 ‘加减乘除幂’ 运算 还未加入报错机制,需要求表达式书写正确,不能存在左右括号数目不等或右括号前没有数字或除数为0等情况 /* 科学计算器,可实现任意长度带括号带优先级的 '加减乘除幂' 运算 还未加入报错机制,需要求表达式书写正确,不能存在左右括号数目不等或右括号前没有数字或除数为0等情况 */ import java . util . Hashtable ; import java . util . Stack ; public class ScientificCalculator { public static double calc ( double a , double b , char operator ) { switch ( operator ) { case '+' : return a + b ; case '-' : return a - b ; case '*' : return a * b ; case '/' : return a / b ; case '^' : return Math . pow ( a , b ) ; } return 0.0d ; } //出栈两个操作数,一个操作符,运算结果入操作数 需重复运算,所以写成一个函数 public static void calcTwo ( Stack <

有效的括号(力扣)——基于数组的栈

耗尽温柔 提交于 2020-02-28 06:11:41
题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 样例输入输出 思路 一看到这道题第一想法就是利用栈来实现 首先判断字符串长度,为奇数,就直接返回false。 然后来判断如果字符串第一个就是)}]这三个,也是直接返回false。 然后才开始栈的相关操作, 首先建立一个自己的栈 `stack<char> mystack;` 然后依次循环,如果是左边的(这个方向的三个,就进行入栈操作`mystack.push(s[i]);` 如果是右边的,就访问栈顶元素`mystack.top();`,进行匹配,如果匹配成功就弹出栈顶元素`mystack.pop();`。如果不成功就接着入栈。 最后来判断,栈是否为空,来判断是否匹配 `if(mystack.empty())`为空的情况,`if(!mystack.empty())`不为空的情况 代码实现 class Solution { public: bool isValid(string s) { stack<char>

Linux_正则表达式

廉价感情. 提交于 2020-02-27 14:18:05
Linux 文章目录 Linux 1. 正则表达式分类 2. 基本正则表达式 3. 扩展正则表达式 1. 正则表达式分类 正则表达式:REGEXP,REGular EXPression。 正则表达式分为两类: Basic REGEXP(基本正则表达式) Extended REGEXP(扩展正则表达式) 2. 基本正则表达式 //元字符 . //任意单个字符 [] //匹配指定范围内的任意单个字符 [^] //匹配指定范围外的任意单个字符 //匹配次数(贪婪模式) * //匹配其前面的任意单个字符任意次 .* //任意长度的任意字符 \? //匹配其前面的任意单个字符1次或0次 \+ //匹配其前面的任意单个字符至少1次 \{m,n\} //匹配其前面的任意单个字符至少m次,至多n次 //位置锚定 ^ //锚定行首,此字符后面的任意单个字符必须出现在行首 $ //锚定行尾,此字符前面的任意单个字符必须出现在行尾 ^$ //空白行 \<或\b //锚定词首,其后面的任意单个字符必须作为单词首部出现 \>或\b //锚定词尾,其前面的任意单个字符必须作为单词尾部出现 /分组 \(\) 例:\(ab\)* //后向引用 \1 //引用第一个左括号以及与之对应的右括号所包括的所有内容 \2 //引用第二个左括号以及与之对应的右括号所包括的所有内容 3. 扩展正则表达式 //字符匹配 . /