JavaScript的坑,缺陷】的更多相关文章

JavaScript 跳坑指南 坑0-String replace string的replace方法我们经常用,替换string中的某些字符,语法像这样子 string.replace(subStr/reg,replaceStr/function) 第一个参数是要查找的字符串或者一个正则表达式,第二个参数是想替换成的字符串或一个方法,我们可以这么使用 "I'm Byron".replace("B","b") // I'm byron 这个和我们想…
一.前言 本文的上一篇 JavaScript 踩坑心得- 为了高速(上) 主要和大家分享的是 JavaScript 使用过程中的基本原则以及编写过程中的心得分享,本文主要和大家聊聊在各个使用场景下的 JavaScript 使用,以及在性能优化方面的优化经验等 二.各种场景下的 JavaScript 1.用于 UI 应用的 JavaScript 与大多数服务器端语言一样,用于客户端应用的 JavaScript 框架从来就不缺少.然而,和用在后端应用与服务中一样,笔者偏好使用较小的模块,将这些小模块…
1. 设计阶段过于仓促 Javascript的设计,其实只用了十天.而且,设计师是为了向公司交差,本人并不愿意这样设计(参见<Javascript诞生记>). 另一方面,这种语言的设计初衷,是为了解决一些简单的网页互动(比如,检查"用户名"是否填写),并没有考虑复杂应用的需要.设计者做梦也想不到,Javascript将来可以写出像Gmail这种极其庞大复杂的网页. 2. 没有先例 Javascript同时结合了函数式编程和面向对象编程的特点,这很可能是历史上的第一例.而且直…
[技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是JavaScript作为脚本语言并没有严格地遵守面向对象的规则,而是兼容了多种语言特性. 面向对象编程 命令式编程 函数式编程 可想而知,在兼容这些特性之后JavaScript会有很多奇特的行为,而对面向对象的固有认识会使我们在编写JavaScript时犯下无数错误. 2. 忘记过去,从新学习 C++和Ja…
JavaScript的缺陷 1.在做判断的时候用=======而不是== 2.浮点预算有精度问题 通过差值去把这个精度锁定到一个范围 Math. Abs(A-B)<0.0001** 3.null和undefined null:表示当前值为空 undefined:主要用来判断函数参数是否传递 4.使用严格模式 在代码前方加上"use strict"…
说明:  这是笔者平时积累的一些觉得比较有意思或是比较有难度的JavaScript题目理解和心得,会保持长期更新. 1.setTimeout和setInterval深入理解 在setTimeout和setInterval深入理解这篇博客里笔者曾做过总结,我们知道JavaScript试单线程的产物,两个函数就是利用了插入代码的方式实现了伪异步,和AJAX的原理实际上是一样的.下面来看下这个例子: console.log("1"); setTimeout(function(){ conso…
一.前言 很多情况下,产品的设计与开发人员一直想打造一套高品质的解决方案,从而快速.平稳地适应产品迭代.速度是衡量产品适应性的真正且唯一的标准,而且,这并不是笔者的一家之言. 「速度是衡量适应能力的真正指标.」 --艾瑞克·埃利奥特 许多公司选择 JavaScript,就是看中了它灵活.快速的优点.尽管此言非虚,但如果你在构建 JavaScript 系统时考虑得不够周全,灵活与高速的特性反而可能将你带入歧途. 一些值得特别关注的问题包括: 代码重复 样式或风格不一致 无法随意扩展 工具与模块选择…
1. JavaScript事件属性 event.target 当目标事件发生span里面 当目标事件发生在main里面 e.target; // 目标节点DOM结构   e.target.id; // 目标节点DOM的id名   e.target.nodeName; // 目标节点DOM标签名字 大写 但是我们可转换成小写 e.target.nodeName.toLowerCase();   e.target.classList;   // 目标节点DOM 类列表集合   e.target.cl…
相信提到JavaScript语言,每一个程序员的心理状态都是不一样的,有的对此深恶痛绝,有的又觉得其可圈可点,造成这种两级分化态度的原因还是由于其自身类型约束上的缺陷,直到现如今依旧无法解决. 本文由JavaScript的痛点展开,简要论述了一下JavaScript这个痛点产生的原因,同时给大家介绍了一下解决这个痛点的另一个语言. 一. JavaScript的痛点 我始终坚信:任何新技术的出现都是为了解决之前某个技术的痛点. 1.1. 优秀的JavaScript JavaScript是一门优秀的…
1 for in循环:使用它时,要主要遍历的是所有可枚举的属性(实例以及原型中的属性) function Person(name){ this.name = name; } Person.prototype.getName=function(){ return this.name; } var p = new Person('mengxb'); for(prop in p) { //此时会遍历到原型上的getName,如果不想遍历原型上的属性和方法,可以用hasOwnProperty() if(…