奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true? 在回答这个问题之前,我们先来看看int和Integer的对比,一步步揭开问题的答案。...,其内存地址不同 (2) Integer变量和int变量比较时,只要两个变量的值是相等的,则结果为true。...Integer i = new Integer(100); int j = 100; System.out.print(i == j); //true 因为包装类Integer和基本数据类型int比较时,java会自动拆包装为...int,然后进行比较,实际上就变为两个int变量的比较 (3) 非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。...而java API中对Integer类型的valueOf的定义如下,对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127
遇到这种情况,后端程序员通常的做法就是用正则表达式、或用XML解析器。这些做法非常的笨拙,不方便,效率低下。所以,对于在服务器端解析HTML,每个后端程序员都极力避免。...相反,像SimpleHtmlDom这样也是分析HTML/XML的程序库,但没有基于PHP原生DOM对象,当分析大数据量时,很容易产生性能问题,所以不推荐使用。...我在解决phpQuery的中文乱码问题也是反复尝试才最后搞定的,没有任何理论依据。就像是有个程序员的笑话:这段代码不好用,我不知道为什么。这段代码好用,我也不知道为什么。...奇怪的是,两个同样是gb2312字符集的不同页面,用phpQuery解析后,一个会有乱码,一个没有乱码。同样,两个同样是UTF-8字符集的不同页面,也会出现这种情况。所有,对我来说,没有规律可言。...还有一点很重要,在使用iconv函数转码是,一定要使用GBK,而不是使用gb2312,如果使用gb2312,iconv函数会很容易发生非法字符的报错,使得转码失败。
在 jQuery 中,只有全局都会用到的变量、正则表达式定义在了代码最开头,而每个模块一开始,又会定义一些只在本模块会使用到的变量、正则、方法等。...很有可能一开始你在一个奇怪的方法或者变量处卡壳了,很想知道这个方法或变量的作用,然而可能它要到几千行处才被调用到。如果去追求这种逐字逐句弄清楚的方式,很有可能在碰壁几次之后阅读的积极性大受打击。 ...,是否是重载,为什么要这样写,一定会有不一样的收获。...结果集合 3)当我们在链式调用 end() 方法后,内部就返回当前 jQuery 对象的 prevObject 属性,完成回溯。 ...然后想谈谈正则表达式,jQuery 当中用了大量的正则表达式,我觉得如果研读 jQuery ,正则水平一定能够大大提升,如果是个正则小白,我建议在阅读之前先去了解以下几点: 1)了解并尝试使用 Javascript
这段代码总结起来就是一句话:用正则表达式匹配预置模板中的语法规则,将其转换、拼接为可执行HTML代码,作为可执行语句,通过new Function()创建的新方法返回。...代码解析重点1:正则替换 正则替换是doT.js的核心设计思路,本文不对正则表达式做扩充讲解,仅分析doT.js的设计思路。...具体关于new Fcuntion的定义和用法,详细请阅读Function详细介绍。 性能之因 读到这里可能会产生一个疑问:doT.js的性能为什么在众多引擎如此突出?...with语句为什么对性能有这么大的影响?...通过源码分析之后发现jQuery-tmpl的模板缓存并不是对模板编译结果进行缓存,并且会造成多次执行渲染时产生多次编译,再加上代码with性能消耗,严重拖慢整个渲染过程。
然后有一天你意识到你的程序产生了一些很奇怪的结果,但只是在老版本 IE浏览器才出现:你的程序认为 ’2014-10-08’的下一天是’2014-10-01’,而不是 ’2014-10-09’。...随着你不断地编程,你会不断地遇到类似的场景。比困境更加让人沮丧的是不知道如何脱离困境。 parseInt解释 为什么老版本 IE的 parseInt会做如此奇怪的事情呢?...如果你在找一些针对某个编程语言的东西,就在搜索中包含这个编程语言的名字。然后想象其他遇到同样问题的人会如何描述这个问题。...在这样的例子中,你会想要用类似“ why use Python”(为什么使用 Python)和“Python features”(Python特性)这样的搜索关键字。...这时,你要搜索一些类似 “Python tutorial”(Python教程)这样的东西。在你用 Python工作一段时间后,你也许会遇到一个问题,需要使用正则表达式。
奇怪,formData是父组件传过来的值怎么会改变呢? 经过一番挣扎,才发现formDataCopy使用的是简单的赋值,导致formDataCopy和formData指向相同的对象。...= jQuery.extend({}, originalObject) 如果改变了originalObject,copiedObject 也会变。...对于字符串、数字及布尔值来说(不是 String、Number 或者 Boolean 对象),slice 会拷贝这些值到新的数组里。...也就是说,如果原数组改变的是基本数据类型,比如String,Boolean,Number的数据,不会影响到新数组; 但是如果改变的是对象或者数组中的数据,是会影响到新数组的,也也就是对于对象或者数组,...,可以满足基本的深拷贝需求,而且能够处理JSON格式能表示的所有数据类型,但是对于正则表达式类型、函数类型等无法进行深拷贝(而且会直接丢失相应的值)。
正则表达式是处理文本解析的万金油,什么情况都可以应对。...但可惜掌握它需要一定的学习成本,原本我们有一个网页提取的问题,用了正则表达式,现在我们有了两个问题。 HTML 文档本身是结构化的文本,有一定的规则,通过它的结构可以简化信息提取。...其中,lxml 有很高的解析效率,支持 xPath 语法(一种可以在 HTML 中查找信息的规则语法);pyquery 得名于 jQuery(知名的前端 js 库),可以用类似 jQuery 的语法解析网页...BeautifulSoup(下文简称 bs)翻译成中文就是“美丽的汤”,这个奇特的名字来源于《爱丽丝梦游仙境》(这也是为何在其官网会配上奇怪的插图,以及用《爱丽丝》的片段作为测试文本)。...如果有多个满足的结果,find只返回第一个;如果没有,返回 None。
更通用的做法是使用正则表达式: import res = '价格:15.7 元'r = re.search('[\d.]+', s)print(r.group())# 15.7 正则表达式是处理文本解析的万金油...但可惜掌握它需要一定的学习成本,原本我们有一个网页提取的问题,用了正则表达式,现在我们有了两个问题。 ? HTML 文档本身是结构化的文本,有一定的规则,通过它的结构可以简化信息提取。...其中,lxml 有很高的解析效率,支持 xPath 语法(一种可以在 HTML 中查找信息的规则语法);pyquery 得名于 jQuery(知名的前端 js 库),可以用类似 jQuery 的语法解析网页...BeautifulSoup(下文简称 bs)翻译成中文就是“美丽的汤”,这个奇特的名字来源于《爱丽丝梦游仙境》(这也是为何在其官网会配上奇怪的插图,以及用《爱丽丝》的片段作为测试文本)。...如果有多个满足的结果,find只返回第一个;如果没有,返回 None。
---- jQuery Validate 与正则表达式结合拓展验证 $(function(){ // 判断整数value是否等于0 jQuery.validator.addMethod...$ 24 备注:这就是最终结果了,别忘了"+"可以用"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)...[x|X][m|M][l|L]$ 26 中文字符的正则表达式:[\u4e00-\u9fa5] 27 双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计...2,ASCII字符计1)) 28 空白行的正则表达式:\n\s*\r (可以用来删除空白行) 29 HTML标记的正则表达式: (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力) 30 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符
jQuery中充斥着大量的正则表达式,在jQuery不断改良的过程中,正则表达式的用法也在发生着变化。 其中变化最大的就是(?:pattern)的使用,当然还有?家族的一系列表达式用法。...(/a/g, "abaca") //print 3 match() 提取字符串匹配到正则表达式的匹配项 语法:str.match(regexp) 返回值:一个包含匹配结果的数组,如果没有匹配项,则返回...描述: 如果正则表达式包含g标志,则该方法返回一个包含所有匹配结果的数组。 如果正则表达式没有g标志,返回和exec(str)相同的结果。...--a例子的输出结果。...:\s*()[^>]*|#([\w-]+))$/ 这个正则表达式是jQuery的入口。
文件操作 6、Python面向对象 7、设计模 8、异常处理 9、模块 10、Python高级编程 Linux基础与高级编程 1、Linux基本命令 2、Linux系统编程 3、Linux网络编程 4、正则表达式...5、shell脚本编程 6、实战案例 其中正则表达式特别重要,希望大家学习的时候,多花点时间和精力在正则表达式上面,这是应用领域最广泛的一个模块。...数据库开发 1、MySQL开发 2、MongoDB开发 3、Redis开发 4、数据库调优和部署 前端与移动开发 1 、html 2、css 3、ps基础应用 4、JavaScript 5、jquery...6、移动端框架和库 7、前端自动化、前端性能优化 有可能大家会觉得奇怪,怎么python还涉及到前端的知识,现在全栈程序员已经成为企业稀缺的人才,特别受重视,所以如果你也能成为一个全栈工程师,那么你将会是一个获得老板喜爱的...四:盲目看书 对于新手来说,学习一个技能肯定是买书看书,但是后来我才实践的证明,对于一个啥都不懂的初学者来说看书基本可以成为无用的,因为这样的结果就势必会造成大多数人的情况:能看懂,但是永远不会写,
为自定义分割符,maxsplit为最大分割次数,默认值-1进行全部分割 注意以下区别: str.split() 以空格分割,包括连续空格 str.split(‘ ‘) 同样以空格分割,但是不能识别连续空格,会返回两空格之间的空字符串...官方文档中举例以下几种: r’\W+’ 非单词字符的字符作为分割符 r'(\W+)’ 以括号包裹正则表达式则会在结果中保留用来分割的字符 ‘[a-f]+’ a-f组成的字符串作为分割符 输入 print...函数一样,只不过以0作为缺省值 flags:用来修改pattern表达式的功能re.IGNORECASE忽略大小写 其他的可用值更多 记录一个奇怪的现象: print(re.split(r'[a-f]+...此外这个测试用例表明分割符前后的内容都会包含在结果中,所以输出开头就有一个空字符串,这一点很古怪。...去除连续分割符之间的空字符串 以上两个函数的简单实用经常在结果中产生空字符串,解决办法解决如下,使用re.split()。
1.jQuery对象和DOM对象 DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象; var domObj = document.getElementById...("id"); //DOM对象 var $obj = $("#id"); //jQuery对象; jQuery对象就是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的。...同样,DOM对象也不能使用jQuery方法。学习jQuery开始就应当树立正确的观念,分清jQuery对象和DOM对象之间的区别,之后学习 jQuery就会轻松很多的。...2.jQuery对象和DOM对象的互相转换 在上面第一点说了,jquery对象和dom对象是不一样的!...可能有人会觉得奇怪,怎么是用下标呢,没错,jquery对象就是一个数组对象.
正文从这开始~ 1.1. jQuery 1.6.1 1.6.1版本的jQuery代码正则为: quickExpr = /^(?...:[^)[^>]*$|#([\w\-]*)$)/, 此处正则表达式存在缺陷,导致产生Dom型XSS 漏洞。 ?...1.3. jQuery 1.11.2 jQuery 1.11.3版本的jQuery代码正则为: rquickExpr = /^(?...结论 目前最新版本的jQuery有2个版本,分别是1.11.3和2.1.4,其中1.11.3支持低版本IE浏览器,2.1.4的不支持低版本IE浏览器,但这2个版本的jQuery目前的正则表达式都无法完善的过滤危险字符...正式解决方案: 等待jQuery发布新的修复版本后升级。
而浏览器中提示的错误确实在第一行,所以如果代码很复杂的情况下,我们就无法找到出错的具体位置 devtool 常见的有 6 种配置: 1、source-map: 这种模式会产生一个.map文件,出错了会提示具体的行和列...凡是带 eval 的模式都不能用于生产环境,因为其不会产生 .map 文件,会导致打包后的文件变得非常大。...为什么 webpack 会存在跨域问题?...,属性值为正则表达式,如: 3、使用 IgnorePlugin 来忽略某个模块中某些目录中的模块引用,比如在引入某个模块的时候,该模块会引入大量的语言包,而我们不会用到那么多语言包,如果都打包进项目中...jquery,如果按以上配置,那么 jquery 也会被打包进 foo.js 中,会导致代码混乱,所以我们希望将 jquery 单独抽出来,即与 foo.js 分开,我们可以复制一份以上配置,并通过设置抽离代码权重的方式来实现
,所以我们在进行复制变量时,基本数据类型复制后会产生两个独立不会互相影响的变量,而引用数据类型复制时,实际上是将这个引用类型在栈内存中的引用地址复制了一份给新的变量,其实就是一个指针。...因此当操作结束后,这两个变量实际上指向的是同一个在堆内存中的对象,改变其中任意一个对象,另一个对象也会跟着改变。于是在引用数据类型的复制过程中便出现了深浅拷贝的概念。...二、深浅拷贝的区别 浅拷贝,对于目标对象第一层为基本数据类型的数据,就是直接赋值,即传值;而对于目标对象第一层为引用数据类型的数据,就是直接赋存于栈内存中的堆内存地址,即传地址,并没有开辟新的栈,也就是复制的结果是两个对象指向同一个地址...,而且能够处理JSON格式能表示的所有数据类型,但是有以下几个缺点: (1)undefined、任意的函数、正则表达式类型以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时...也就是深拷贝之后,不管这个对象原来的构造函数是什么,在深拷贝之后都会变成Object; (3) 对于正则表达式类型、函数类型等无法进行深拷贝(而且会直接丢失相应的值) (4) 如果对象中存在循环引用的情况无法正确处理
上一个版本主要是测试一下我的想法,也是熟悉一下jQuery,代码这个东东不动手写一下是很难弄明白的。 有想法,写代码,出现错误,修改错误 = 不断进步。 带着问题去学习,动力就很大了。...咦奇怪了,页面怎么变形了?查看了一下页面代码,原来css的连接文件也是href的形式,把css文件也给干掉了。没有css那页面就不用说了。 那么就要准确识别a标签了,其他标签的不能替换。怎么办呢?...听说正则表达式可以。那具体怎么做呢,好像比较复杂。以前也没好好学正则,正好趁这个机会好好学习一下。找帮助,找代码,写代码,一点一点测试验证帮助里的例子。一点一点理解正则的思路、思维方式。 ...等属性(就是<a 和 href 之间的内容),把href的连接改成 # ,把原来的连接地址改成属性(myurl),最后在加上onclick事件。...完整代码 代码 用IE6看老赵的博客v1.1 <script src="aspnet_client/<em>jquery</em>/<em>jquery</em>-1.3.1.js"
然后我开始在 Kasta 工作,那里的 web 前端完全就是一团 jQuery 式的玩意儿。没人想要碰那些代码,因为你会花费数小时,甚至数天,来做一些最小的改动。...例如悬停用 JS(而不是用 CSS),下拉菜单用 JS,不渲染(在悬停时)隐藏的文本(谷歌对此会不高兴),奇怪的复杂逻辑等等。...你需要服务器的一些支持,这样你就可以渲染部分结果——虽然只是一个优化,但确实非常重要。 还有一个备选库——Unpoly。...当然,它与 Intercooler 有些不同之处,不然它为什么会存在?最值得一提的就是,它不依赖 jQuery。...:) 有趣的是,在对 TwinSpark 进行了一个月的尝试之后,Intercooler 的作者宣布它在做一个没有 jQuery 的现代版本:htmx。它有非常好的扩展点,而且可能会增加批处理...
hosts 文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。...,可以不包含正则表达式,也可以包含正则表达式,那么 Nginx 服务器在搜索匹配 location 的时候,是先使用不包含正则表达式进行匹配,找到一个匹配度最高的一个,然后在通过包含正则表达式的进行匹配...如果想知道为什么,请往下看。 # sendfile 该指令是用来开启高效的文件传输模式。默认关闭,建议开启。...请求静态资源的过程:客户端通过网络接口向服务端发送请求,操作系统将这些客户端的请求传递给服务器端应用程序,服务器端应用程序会处理这些请求,请求处理完成以后,操作系统还需要将处理得到的结果通过网络适配器传递回去...缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的 URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。
这个bug 会造成莫名其妙的结果。而我那里的结果就是:object数据对象,会在.each遍历之后被乱序了。然后就造成以上所描述的问题。...:这样搞,不行的;好奇怪的样子(得更努力的深入Js才行哇~)?...在chrome的console下比较两者转化的数组结果一模一样。然后以ipod机器(系统版本Ios8.4.1)alert数组的长度,得到的结果是一样的,都是9。额,奇怪啊。...从大到小呢,后来多次尝试,不是如此,也未发现规律);可见,Ios8 Safari上,以for..in方式遍历object对象会造成乱序;但是为何会造成这样子呢?...JQuery方面在 https://github.com/jquery/jquery/issues/2145 有过对此问题的叙述: There is a timing bug in iOS8 that
领取专属 10元无门槛券
手把手带您无忧上云