Angular.JS出了什么问题? 应用逻辑和结构通过HTML实现,这对于初学者来说非常方便(看看这里不需要JS,非常神奇!),但是对于实际开发来说有点可怕。我们是程序员,我们要写代码并调试程序。我真的不希望在基于字符串解析的框架上调试我的代码。HTML应该用来呈现APP,而不是展现源代码。
使用Javascript开发OS X应用程序 译者按:Javascript快要统一所有端了呢,骚年们快去创造奇迹吧~
本文译自tylergaw.com。
OS X Yosemite为Automation引入了Javascript的支持。这让在原生OS X框架中使用Javascript成为可能。过去一段时间我一直在探索这个新领域,并收集了一些示例。在这篇文章里我想解释一下基本用法并且搭建一个小的示例应用。
保卫AngularJS 你的有些观点是对的,Angular无法适用所有的场合,但你的分析有很多缺失和不足。
在HTML中写逻辑 - 你可以(而且很多人这样做)在你的HTML写大量的逻辑,这是反模式的。好的Angular HTML只会将逻辑绑定到你的控制器和服务,你应该在这里写大量的逻辑代码。在我的脑海里,一个Angular HTML属性DIV上的一个JavaScript使用样式类是一样的东西(大多数其他JS框架直接绑定到DOM上)。我更喜欢Angular的方式,因为它更明确,但我认为,最好的做法跟被周围的环境所影响的,这跟个人品味有关系,而不是事情本身不妥。
合并JavaScript数组的N种方法 这是一篇简单的文章,关于JavaScript数组使用的一些技巧。我们将使用不同的方法结合/合并两个JS数组,以及讨论每个方法的优点/缺点。
第一个主要的问题是,内存使用量增长了一倍(当然只是暂时的!)被追加内容基本上是通过函数调用将元素复制到堆栈中。此外,不同的JS引擎都有拷贝数据长度的限制。
内存管理技巧:如何避免JavaScript的内存泄露 高效的JavaScript Web应用必须流畅,快速。与用户交互的任何应用程序,都需要考虑如何确保内存有效使用,因为如果消耗过多,页面就会崩溃,迫使用户重新加载。而你只能躲在角落哭泣。
自动垃圾收集是不能代替有效的内存管理的,特别是在大型,长时间运行的Web应用程序中。在这次讲座中,我们将演示如何通过Chrome的DevTools对内存进行有效的管理。
并了解如何解决性能问题,如内存泄漏,频繁的垃圾收集暂停,和整体内存膨胀,那些真正让你耗费精力的东西。
JavaScript中匿名函数和命名函数的性能差异 我们经常通过匿名函数(Anonymous function)来随手写一个回调。
简单来讲匿名即没有名字的函数,一般都立即执行。但是它与命名函数(有名字的函数)的性能如何呢?
我们可以比较一下,我们随便找一台可以执行Shell命令的计算机来使用大量函数调用看一看二者执行消耗时间:
Chrome V8将实现ES6的类语法(class) 注* JavaScript中终于可以用class来声明一个类了,不过这个功能目前应该不会很快进入正式发布的浏览器中,而会像其他ES6语法那样通过harmony标签来启用中。
实现的ES6类实现包括:
- class 声明语法
- 加强对象语法(object)
- 添加'super'关键字和Function.prototype.toMethod方法
为JavaScript设计一个指数操作(运算)符 在本文中,我将探讨如何为JavaScript设计一个新的幂运算符,我已经在提交了TC39的审议,并考虑加入ES7的语法规范。
在许多编程语言中,幂通过一个
算术运算符来表达; 最常见的为x** y(Python和F#,Ruby,Perl等等),或 X^Y(BASIC,Lua中,MATLAB,R等)。其他语言包括JavaScript和C#依靠内置对象提供的一个函数来实现:Math.pow 和 Math.Pow。
在JavaScript中通过一个特定的符号实现一个求幂运算,这是有道理的,这将更加有利于这种语言的教学和学习,因为它更加符合现代人的思维习惯。从上段所描述的两种设计中,我选择了**的形式,因为字符^已经被JavaScript用在
按位异或运算中。该**形式可以更好的兼容复合赋值运算格式:**=,而且这种语义等价于内置函数Math.pow
JavaScript中的继承,构造函数以及new关键字的作用 通常一个构造函数是这样子的,它带有一个area的原型方法,在构造函数中传入长、宽并计算面积。
var Shape = function(width, height) {
this.width = width;
this.height = height;
};
Shape.prototype.area = function() {
return this.width * this.height
};
var shape = new Shape(20, 30);
shape.area();
> 600输出很完美,这也是经典JavaScript实现继承的方法,通过prototype添加对另外一个对象的引用。
不过一部分JavaScript程序是非常讨厌new关键字的,这个关键字有太浓烈的Java烙印了,而且掩盖了JavaScript基于原型的本质,降低了程序员使用JS语言的效率,因此你想把它省了,看看结果?