JavaScript 解构赋值默认值误区 问题还原 这是最近 CR 的时候在业务代码中发现了一个问题,先来看一下问题代码: // data 为接口返回的数据 const { bizObject = {}, total = 0 } = data.result || {}; const list = bizObject.lis...
JavaScript ECMAScript 2016、2017、2018 新 API 回顾一下 ECMAScript 的发展历程: 1997 年 6 月,ES1 发布 1998 年 6 月,ES2 发布 1999 年 12 月,ES3 发布 然后,ES4 胎死腹中 2009 年 12 月,ES5 发布 2015 年 6 月,ES6(ES2015)发布 ES2016...
Babel Babel 6 松散模式 想必每个写 JavaScript 的都或多或少了解过 ES5 引入的严格模式,Babel 6 在把 ES6+ 代码转换为 ES5 时,也提供了「松散模式」(loose mode)的选项。Babel 的松散模式和 ES5 没有任何关系,这里提 ES5 严格模式只是在概念上作一个比对,方...
JavaScript Babel 配置技巧 当下,每个写 JavaScript 的猿可能都在或多或少地使用 Babel。借助 Babel,我们可以使用最新的 ECMAScript 特性,而不用太关注浏览器支持。Babel 在背后进行了许多复杂的转换,我们要做的,就是写配置文件,告诉 Babel 我们想要什么。下面就来看看一些配...
JavaScript 纯粹的 JavaScript 对象 最近在 EventEmitter3 源码 中看到了 Object.create(null),做一下考证。 传统的 JavaScript 对象 在 JavaScript 中,通常使用对象字面量语法来创建空对象。 var foo = {}; // create...
JavaScript ESLint 使用入门 在团队协作中,为避免低级 Bug、产出风格统一的代码,会预先制定编码规范。使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。 在以前的项目中,我们选择 JSHint 和 JSCS 结合使用,WebStorm 等开发环境已经支持这些工具,使用起来很顺手...
JavaScript ES6 箭头函数语法及词法作用域 ES6 引入了「箭头函数」(arrow function),以简化输入、节约时间。 但是,箭头函数不是用来取代 function 关键字的。如果掌握了 JavaScript 词法作用域、this 关键字、.call()/.apply()/.bind() 等原型方法,就比较容易理解箭...
JavaScript 使用 JavaScript 获取绝对 URL JavaScript 开发中有时需要获取绝对 URL,图片可以使用 img.src 返回绝对路径,一些以字符串形式存储的 URL 的则处理起来会比较繁琐,比如: 以 / 或者不以 / 开头的; // 相对协议的; 以 ? 开头的; 以 # 开头的; …… 借助 a 元素可以很方便的...
JavaScript 2014 年 JavaScript 回顾 8月底,Yahoo 宣布 YUI 终止开发,2005年 Yahoo 内部使用,2006 年 2 月 13 日对外开放的第一代 UI 库 8 年之后陨落。 基于 Node.js Stream 的构建工具 Gulp 取代 Grunt。 Node.js 在年初经历了项目负责人变更的巨变,...
JavaScript 鼠标滚轮事件 浏览器前端兼容问题无处不在…… // Firefox $('#elem').bind('DOMMouseScroll', function(e) { if (e.originalEvent.detail > 0) { // scroll down...
JavaScript JavaScript 中 "this" 的工作原理和一些坑 JavaScript 中,this 是一个相对难懂的特殊变量。因为它随处可用,不局限于面向对象编程中。本文介绍 this 的工作原理,以及使用中可能会遇到的坑,以总结出最佳编程实践。 为了方便理解 ,将 this 使用场景分为三类: 在函数内部: this 是一个隐含的参数。...
classList 五种鲜为人知的 CSS / JS 交互方式 使用 JavaScript 获取伪元素样式属性 众所周知,JS 可以使用 style 属性获取普通元素的 CSS 样式,那伪元素呢?也是可以的。 // Get the color value of .element:before var color = window.getCompu...
AJAX AJAX 及其跨域实现 Ajax 概念始于 2005 年的一篇文章,此前这种技术叫远程脚本(Remote Scripting)。早在 1998 年就有人用不同的手段实现了类似的技术(比如借助隐藏框架或内嵌框架)。再往前推,JavaScript 需要借助 Java applet 或者 Flash 等中间层向服...
Browser Detection 用户代理检测 用户代理检测(User-agent Dtection)通过检测用来代理字符串来确定实际使用的浏览器。每一次 HTTP 请求过程中,用户代理字符串作为首部发送的,该字符串可以通过 JS 的 navigator.userAgent 访问。 在服务器端,通过检测用户代理来确定用户使用的浏...
JavaScript JavaScript 变量要点 ECMAScript(下文简称 ES)的变量类型是松散类型,可以用来保存任何类型的数据。 变量基本点 变量声明 定义变量时使用 var 关键字,后面跟变量名(即一个标识符)。 var message; //定义一个名为message的变量,变量未初始化时,其值为undefined...
Array JavaScript清空数组的方法 方法1:将数组 length 赋值为0 var arr= [1,2,3,4]; arr.length = 0; console.log(arr); // 输出 [],数组被清空 Prototype 中数组的 clear 方法和 mootools 库中数组的 empty() 方...
JavaScript 腾讯数码首页的模态窗口bug 今晚浏览腾讯数码首页时发现一个bug。 点击右上角的【一键登录】或者点右侧的向码客提问,会弹出如下图所示的登录窗口: 这时,如果用户突然改变主意,不想登录了,那就点击登录窗口右上角的【X】把它关闭吧。可是关闭登录窗口后,模态窗口的半透明覆盖层并没有随着登录窗口移除,页面上的所...
JavaScript 轻量级移动JavaScript框架 Zepto.js Zepto是一个极简的、面向现代浏览器的JavaScript库,大部分API兼容jQuery。Zepto的致力于创建一个5-10k模块化的库,下载、执行快速,API熟悉通用,让用户专注于开发。 下载Zepto 默认版本包含以下模块:Core, Ajax, Event, Form,...
JavaScript 用javascript替换URL中的参数 //分析url function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, protocol...
CSS 那些让 Web开发者们深感意外的事情 作为 Web 开发者,对自己的行业前景,人人都有自己的看法,然而,任何行业都有出人意料的地方。著名的 Web 开发设计博客 Nope.com 曾向他们的读者做了一个调查,请他们列举 Web 开发领域那些让他们感到意外的事情,收到了各种各样的反馈,本文就是这次调查的结果与分析。 一个...