delete 操作符用于删除对象的属性。
似乎很多同学(包括我)对 delete 操作符都是似是而非,为什么有的属性可以被删除,有的却不能被删除?为什么能够删除对象的属性却不能删除变量或函数?在 eval 和 严格模式下,delete 操作符又有哪些特性?等等。。
本文将从基本概念到 ECMPScript 内部原理来学习 delete 操作符。
语法
表达式
javascript
delete object.property // 点操作符方式,常用方式
delete object['property'] // 字符串属性名方式
参数
object - 对象名称,或者返回一个对象的表达式
property -
继续阅读 »
我们今天要讨论的主题是,大型 JavaScript 应用中一些有效的设计模式。本文基于我最近发布在 LondonJS 上同名演讲,灵感则来自于 Nicholas Zakas 之前的研究成果。
我是谁以及我为什么要撰写这个主题?
我目前是 AOL 的一名 JavaScript 和 UI 开发人员,负责规划和编写下一代面向用户的应用的前端架构。这些应用不仅复杂,而且需要一种可扩展和高复用的架构,我的职责之一就是确保这类应用中的设计模式尽可能是可持续的。
尽管在这个领域有许多比我知识渊博的专家,我也认为自己是设计模式的狂热者。先前,我基于 Creative Commons 许可写了 《Essential JavaScript Des
继续阅读 »
做了一张思维导图。总结这几个月对 JavaScript 的学习吧,也是一个复习。也是我目前的技能树。
继续阅读 »
阅读前,希望你了解javascript的原型链
P.js
项目地址
基础用法:
var Animal = P(function(animal){
animal.init = function(name){
this.name = name;
};
animal.move = function(meters){
console.log(this.name + " moved " + meters + " m.");
}
});
继续阅读 »
content
{:toc}
本文将介绍如何使用 JavaScript 创建文件,并自动/手动将文件下载。这在导出原始数据时会比较方便。
先上代码
js
/**
* 创建并下载文件
* @param {String} fileName 文件名
* @param {String} content 文件内容
*/
function createAndDownloadFile(fileName, content) {
var aTag = document.createElement('a');
var blob = new Blob([content]);
aTag.download = fil
继续阅读 »
承接上篇 44个 Javascript 变态题解析 (上)
第23题
[1 < 2 < 3, 3 < 2 < 1]
这个题也还可以.
这个题会让人误以为是 2 > 1 && 2 < 3 其实不是的.
这个题等价于
1 < 2 => true;
true < 3 => 1 < 3 => true;
3 < 2 => false;
false < 1 => 0 < 1 => true;
答案是 [true, true]
第24题
// the most classic wtf
2 == [[[2]]]
这个题我是猜的. 我猜的 true, 至于为什么.....
both objects get converte
继续阅读 »
JavaScript 作用域和作用域链学习笔记。
继续阅读 »
参考原文:7 Essential JavaScript Functions 以下是意译。
早期,由于浏览器厂商对 JavaScript 实现不同,我们通常需要一些简单的函数来实现某些边缘特性,甚至某些基本特性,比如 addEventListener 和 attachEvent。现在,虽然时代进步了,但仍有一些函数需要开发者掌握,以便于性能优化和快速开发。
more
去抖 Debounce
去抖(debounce)函数可以提高某些事件绑定的性能,如果你没有为 scroll、resize 和 key* 事件使用去抖函数,你的代码很可能是性能低下的,下面是一个 debounce 函数的实现:
```javascript
// 返回
继续阅读 »
原题来自: javascript-puzzlers
读者可以先去做一下感受感受. 当初笔者的成绩是 21/44...
当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了....
不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧!
第1题
["1", "2", "3"].map(parseInt)
知识点:
Array/map
Number/parseInt
Global_Objects/parseInt
JavaScript parseInt
首先, map接受两个参数, 一个回调函数 callback, 一个回调函数的this值
其中回调函数接受三个参数 currentV
继续阅读 »
语法
区分大小写、变量弱类型、行尾分号可有可无、注释为双斜线、括号表明代码块
变量
变量用var声明,变量的命名规则:第一个字符必须是字母、下划线或美元符号;余下的字符可以是下划线、美元符号或任何字母或数字字符。
变量命名规范:
Camel标记法:首字母小写,接下来的单词都以大写字母开头。例如:var **m**y**T**est**V**alue=0,**m**y**S**econd**T**est**V**alue="hi";
Pascal标记法:首字母大写,接下来的单词都以大写字母开头。例如:var **M**y**T**est**V**alue=0,**M**y**S**econd**T**est**V**alu
继续阅读 »