![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
gnimgnot
这个作者很懒,什么都没留下…
展开
-
JavaScript Array-like 的对象集合
Array-like 的对象集合JavaScript 有一种“类似数组的对象”,它是一个对象的数组,并且带有一个length的属性。比如:var realArray = ['a', 'b', 'c'];var arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3};最普通的例子是html中的 document.getElementByTa翻译 2016-11-16 17:15:12 · 1040 阅读 · 1 评论 -
JavaScript import/export
定义模块ES6之后,使用模块语法(import/export)时,每个文件都会成为它自己的模块,带有一个私有全名空间。顶层的函数和变量不会污染全局全名空间。要为其他模块暴露函数,类,和变量以便import的话,可以用export关键字。// not exportedfunction somethingPrivate() { console.log('TOP SECRET')}expor翻译 2016-11-17 18:09:56 · 3493 阅读 · 0 评论 -
JavaScript 的closure 和 hoisting
闭包(closure)当声明一个函数时,其内部的变量的声明也在它的scope中被截获。比如下面的代码中,变量 x 绑定到了外部scope的值,然后对 x 的引用在bar的上下文中被截获。var x = 4; // declaration in outer scopefunction bar() { console.log(x); // outer scope is captured on d翻译 2016-11-17 17:27:05 · 1264 阅读 · 0 评论 -
JavaScript Class
构造方法构造函数是大多数类最基本的东西,用 new 创建实例时就调用它,名称必须是constructor。class MyClass { constructor(option) { console.log(`Creating instance using ${option} option.`); this.option = option; }}用法翻译 2016-11-17 16:51:54 · 1045 阅读 · 0 评论 -
JavaScript 函数的scope,currying
函数的scope当定义一个函数时,同时创建了一个scope。 函数内定义的任何东西都不能在函数外访问,只有函数内可以访问。function foo() { var a = 'hello'; console.log(a); // => 'hello'}console.log(a); // reference error内嵌函数也使用同样的规则。function foo() { va翻译 2016-11-17 16:23:03 · 925 阅读 · 0 评论 -
JavaScript 箭头函数(Lambda表达式)
简介JavaScript 中,函数可以用箭头语法(”=>”)定义,有时候也叫“lambda表达式”。这种语法主要意图是定义轻量级的内联回调函数。例如:// Arrow function:[5, 8, 9].map(item => item + 1); // -> [6, 9, 10]// Classic function equivalent:[5, 8, 9].map(function(ite翻译 2016-11-17 15:09:24 · 61151 阅读 · 4 评论 -
JavaScript 设计模式 - 单例模式
单例模式单例模式限制一个类只能实例化一个对象,当第一个对象被创建后,每次都返回这个对象的引用。var Singleton = (function () { // instance stores a reference to the Singleton var instance; function createInstance() {翻译 2016-11-17 11:36:30 · 503 阅读 · 0 评论 -
JavaScript 设计模式 - 模块模式
模块模式模块模式是一种创建型和结构型的设计模式,提供了一种生成公有接口的时候封装私有成员。可以通过闭包来完成,返回一个包含公有接口的对象。 这样我们就可以隐藏主要的逻辑,而只暴露一个接口:var Module = (function(/* pass initialization data if necessary */) { // Private data is stored within t翻译 2016-11-17 11:26:41 · 462 阅读 · 0 评论 -
JavaScript 设计模式 - 工厂方法,组合式工厂
工厂方法工厂方法是一个简化地返回对象的函数。它不需要像构造器那样用 new 关键字来初始化对象。 通常,工厂方法作为API封装,就像 jQuery 和 moment.js 中那样,不使用 new 。 下面是最简单的工厂方法:function cowFactory(name) { return { name: name, talk: function ()翻译 2016-11-17 11:10:45 · 528 阅读 · 0 评论 -
JavaScript - JSON
解析JSON使用一个函数:const jsonString = '[{"name":"John","score":51},{"name":"Jack","score":17}]';const data = JSON.parse(jsonString, (key, value) => key === 'name' ? value.toUpperCase() : value);结果为:[ {翻译 2016-11-16 18:55:03 · 458 阅读 · 0 评论 -
JavaScript 比较运算
抽象比较运算符 和 类型转换问题如果计算对象的类型不匹配,抽象比较运算符(== 和 !=)将转换其运算对象。这种强制转换是大多数计算结果的困惑问题的根源,通常,这些运算符并不总是像我们期待的那样转换类型:"" == 0; // true A 0 == "0"; // true A"" == "0"; // false Bfalse == 0; // truefals翻译 2016-11-16 18:12:25 · 476 阅读 · 0 评论 -
JavaScript promise 链,并行promise
Promise 链promise 的 then 方法返回一个新的 promise:const promise = new Promise(resolve => setTimeout(resolve, 5000));promise // 5 seconds later .then(() => 2) // returning a value from a then callbac翻译 2016-11-15 18:57:13 · 3866 阅读 · 0 评论