
JS笔记
文章平均质量分 85
铁锚
系统架构师,Java性能调优专家。热爱程序开发和设计; 积极应对各种情境和挑战;
喜欢钻研新技术, 闲暇时喜欢翻译和分析英文文档/技术博客。
展开
-
JavaScript中判断原生函数的两个示例
原文链接: Detect if a Function is Native Code with JavaScript原文日期: 2014-08-17翻译日期: 2014-08-20翻译人员: 铁锚我总是经常碰到需要检查某个function是否是原生代码的情况 —— 这是功能测试中一个很重要的内容: 函数是浏览器内置支持的,还是通过第三方类库模拟的。要检测这一点,最简单的办法当然是判断函数的 toS翻译 2014-08-20 10:44:58 · 3926 阅读 · 5 评论 -
比较JS合并数组的各种方法及其优劣
Array#concat() 是久经考验的方法, 用于组合两个(或多个)数组. 但他创建了一个新的数组,而不是修改现有的一个. 有很多变通的手法,但他们都有不同的优缺点,需要根据实际情况来选择. 上面列出了各种 优点/缺点,也许最好的(包括没有列出的)方法是 reduce(..) 和 reduceRight(..) 无论你选择什么,都应该批判性地思考你的数组合并策略,而不是把它当作理所当然的事情.翻译 2014-09-18 18:09:43 · 47780 阅读 · 0 评论 -
JavaScript单线程的疑问与解答
问:JavaScript是单线程的,有任务队列,比如使用setTimeou(func,secs)来在secs毫秒后向任务队列添加func。但是,setTimeout后面跟一个死循环,那么死循环导致任务被阻塞,也就是说func不能执行。我想请教一下:死循环在执行的时候,secs毫秒过去的时候,func是否被添加到任务队列中?如果添加了,但JS是单线程的,不是在这个线程中添加的,那在哪里被添加的原创 2014-04-30 09:47:40 · 2434 阅读 · 0 评论 -
深入理解JS的delete
几周之前,我有幸拜读斯托诺夫(Stoyan Stefanov) 的 Object-Oriented Javascript 一书.(该书在亚马逊得到非常高的评分,12个五星评价.译注:亚马逊是最有节操的网上书店,评论基本上都很真实靠谱),所以我很好奇,想看看有哪些值得称赞的干货.我从 functions 一章开始读起,其行文非常流畅随意;示例非常实用,结构特别干净、爽利. 在我看来初学者也能很快上手并掌握要点.但很快我偶然就发现了一个小坑 —— 关于删除 function 的很有趣的误解.当然也还有一些其他的翻译 2014-02-07 17:58:36 · 31698 阅读 · 7 评论 -
JavaScript 中对变量和函数声明提前的示例
JavaScript 解析器将当前作用域内声明的所有变量和函数都会放到作用域的开始处,但是,只有变量的声明被提前到作用域的开始处了,而赋值操作被保留在原处。原创 2014-11-07 21:12:15 · 2950 阅读 · 0 评论 -
DOM中的动态NodeList与静态NodeList
getElementsByTagName() 速度比 querySelectorAll() 快的根本原因在于动态NodeList和静态NodeList对象的不同。 尽管我可以肯定地说有某种方法来优化这一点, 在获取NodeList时不需要执行很多前期处理操作的动态列表,总比获取静态的集合(返回之前完成各种处理)要快很多。 哪个方法更好用主要还是看你的需求, 如果只是要根据 tag name 来查找元素, 也不需要获取此一个快照, 那就应该使用 getElementsByTagName()方法; 如果需要快照翻译 2014-11-13 21:26:13 · 6255 阅读 · 0 评论 -
巧用JSON.stringify()生成漂亮格式的JSON字符串
巧用JSON.stringify()生成漂亮格式的JSON字符串使用JavaScript处理XML基本上就是一个杯具,这也是JSON在程序开发中广受欢迎的原因。我曾经写过一个 JavaScript函数来将XML转换为JSON,那种~duang~duang~的痛点简直是折腾得你欲死欲仙。如果要将现有的对象转换为JSON字符串, 则可以使用 JSON.stringify(obj)函数, 可能你已经用过这原创 2015-03-09 16:32:01 · 69880 阅读 · 2 评论 -
禁用JavaScript控制台调试
原文链接: Disable the User’s JavaScript Console原文日期: 2014年03月06日翻译日期: 2014年03月07日翻译人员: 铁锚有几个巨头公司,即Facebook和Netflix,决定禁止用户在控制台(console)执行JavaScript命令。最初这是 由Facebook开始的 ,用于防止恶意用户通过JavaScript控制台执翻译 2014-03-07 15:42:41 · 10854 阅读 · 1 评论 -
JavaScript中字符串与Unicode编码的互相转换
JavaScript中字符串与Unicode编码的互相转换这段代码演示了JavaScript中字符串与Unicode编码的转换原创 2015-08-03 16:32:28 · 25640 阅读 · 0 评论 -
如何检测 JavaScript 中的自定义全局变量
全局变量的滥用是一种很糟糕的程序设计。很容易造成依赖和状态混乱。 而在 Java 和 JavaScript 这种自动垃圾回收的语言里面,全局(可见的)变量一直是内存泄露的隐藏杀手。本文提供了一种靠谱的检测全局变量实现方式.在 JavaScript中随意设置全局变量并不是个好习惯。原文作者参与了 MooTools 项目, 据他所说, 已经有十年时间天天听到与此相关的谈论。翻译 2015-09-10 15:55:49 · 5012 阅读 · 1 评论 -
掌握JS中的“this” (一)
很多有经验的程序员对 `this` 在 JS 内部是如何运作的也是一头雾水。通俗点讲, `this` 只是一个引用别名(referencing alias) - 这个别名只知道当前指向的那个对象, 而这也是最棘手的地方。本文为你理清思路,并介绍 `this` 关键字的内部运作原理。翻译 2015-09-23 00:11:12 · 8799 阅读 · 4 评论 -
掌握JS中的“this” (二)
在上一篇文章 [掌握JS中的“`this`” (一)]里面, 我们学会了如何正确使用JavaScript中的 `this` 关键字及其基本原理。我们也知道决定 `this` 指向哪个对象的关键因素, 是找出当前的执行上下文(execution context)。但如果执行上下文不按正常的方式进行设置,问题可能就会变得很棘手。在本文中,我会着重提示在哪些地方会发生这种情况, 以及用什么方式可以弥补。翻译 2015-09-23 00:14:11 · 4063 阅读 · 3 评论 -
JavaScript: 取得 function 的所有参数名
在阅读 promisify-node 源码的时候, 想看看作者是如何将基本的函数和对象转换为对应的 promised-based API 的。我很快意识到他们通过函数的签名来查找通用的回调参数名称, 如 callback 或者 cb。代码看起来有点古怪但确实很有效。【注: 新一代的JS框架大多采用这种探测策略,如 AngularJS】我写了一个 JavaScrip t函数来解析函数的参数名称, 代码翻译 2015-10-29 18:16:07 · 7603 阅读 · 0 评论 -
cookie相关的函数
浏览器中,使用JavaScript操作cookie的两个工具函数。设置cookie值, 必须的参数是name和value,可选参数是过期天数和域名。// 设置cookie值(key,value,过期天数,域名)获取cookie值,只需要一个name,过期时间和域名浏览器会自己管理,有效的cookie也只能获取到名称和值。原创 2016-01-07 20:47:22 · 3352 阅读 · 0 评论 -
JS中比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选)
JS中比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选)我用来比较在2个Oracle数据库中导出的表有那些没导入成功.原创 2014-09-18 15:13:32 · 10946 阅读 · 0 评论 -
在JS数组指定位置插入元素
原文链接: Array: Insert an Item at a Specific Index with JavaScript原文日期: 2014年07月24日翻译日期: 2014年07月26日翻译人员: 铁锚很多与数组有关的任务听起来很简单,但实际情况并不总是如此,而开发人员在很多时候也用不到他。最近我碰到了这样一个需求: 将一个元素插入到现有数组的特定索引处。听起来很容易和常见,但需要一点时间翻译 2014-07-26 14:37:13 · 251966 阅读 · 5 评论 -
如何让 jQuery Mobile 不显示讨厌的 loading 界面
jQuery Mobile 的一个BUG: 当不采用 ajax 以及 他自己的 back 返回的时候,即: 点击浏览器后退按钮时,将会从缓存之中加载页面,此时,讨厌的 loading 动画出来了,而且一直不消失。 网上找了好多解决方法,搜索了好久都没有好用的,今天突然想起来个釜底抽薪,直接动jqeury-mobile 的类库.用编辑器打开,找到显示pageLoading的方法, showP原创 2013-07-25 17:59:42 · 2976 阅读 · 2 评论 -
jGestures: jQuery的手势事件插件
官网地址:http://jgestures.codeplex.com/文档版本号: v0.7,由neuedigitale编辑,2012年5月8日最新稳定版: jGestures v0.90 - shakejGestures简介jGestures插件允许你如同原生的jQuery事件一样监听以下事件:'pinch'(缩放手势), 'rotate'(旋转手势), 'swipe'翻译 2013-08-29 16:21:01 · 39281 阅读 · 3 评论 -
一个CSS+jQuery的放大缩小动画效果
日期: 2013年9月23日作者:铁锚// 今天帮朋友写了一些代码,自己觉得写着写着,好几个版本以后,有点满意,于是就贴出来。// 都是定死了的。因为需求就只有4个元素。如果是要用CSS的class来处理,那就需要用到CSS3动画了。// 功能 : 在上方的按钮上滑动,可以切换各个page,点击下方的各个page,也可以切换收缩还是展开状态。初始效果预览原创 2013-09-23 17:49:12 · 10757 阅读 · 0 评论 -
AngularJS 入门教程 $http is not defined 解决方案
采用从git下载的教程, www.angularjs.cn 版本的 入门教程,在第5步的时候签出文件:git checkout -f step-5运行将会提示: $http is not defined对比了一下,发现angular-phonecat/app/js/controllers.js 签出的文件有错误,PhoneListCtrl 的参数少了一个 $原创 2013-10-25 17:32:24 · 26073 阅读 · 0 评论 -
JSONP获取Twitter和Facebook文章数
原文链接: Retrieve Twitter and Facebook Counts with JSON翻译人员: 铁锚原文日期: 2014年02月19日翻译日期: 2014年02月22日!!! 原文是使用的Twitter和Facebook,因为国内被强,所以我觉得有用的是里面一个获取JSONP的那个工具类.我很头疼的是,许多流行的 APIs 已经要求身份验证才能获取信翻译 2014-02-22 14:13:00 · 2578 阅读 · 0 评论 -
jQuery 瀑布流插件: Wookmark
原文链接: jQuery Wookmark在线示例: jQuery Wookmark DemoWookmark官网: http://www.wookmark.com/jquery-plugin翻译人员: 铁锚原文日期: 2013年03月05日翻译日期: 2014年02月22日当你第一次打开 图片分享网站Pinterest 时,你可能会由衷地赞叹: "哇,每列图的宽度都是翻译 2014-02-22 17:06:47 · 8293 阅读 · 6 评论 -
短小强悍的JavaScript异步调用库
原文链接: 7 lines JavaScript library for calling asynchronous functions 翻译人员: 铁锚翻译时间: 2014年02月18日示例地址: 简短强悍的JavaScript异步调用库在线调试对于博文 20行完成一个JavaScript模板引擎 的备受好评我感到很惊讶,并决定用此文章介绍使用我经常使用的另一个小巧实用的翻译 2014-02-18 21:32:09 · 5579 阅读 · 2 评论 -
不要使用jQuery触发原生事件
原文链接: DO NOT TRIGGER REAL EVENT NAMES WITH JQUERY!原文日期: 2014年02月26日翻译日期: 2014年03月2日翻译人员: 铁锚JavaScript 框架提供了如此多的功能,以至于一不小心就会掉进坑里去。 对工具库依赖得越多,在修改或维护时一个小小的改的很可能就会影响到其他的功能(俗称 处处是地雷,走路需谨慎),特别是维翻译 2014-03-02 20:43:25 · 5515 阅读 · 2 评论 -
new Function()
原文链接: new Function()原文日期: 2014年3月2日翻译日期: 2014年3月14日翻译人员: 铁锚JavaScript的精神领袖Douglas Crockford曾说过JavaScript是程序员唯一不需要学习就能直接使用的语言.在编程中确实是如此。我们大多数人都使用过JavaScript,近年来随着各种JavaScript框架的流行使得JavaScri翻译 2014-03-14 16:26:14 · 10895 阅读 · 1 评论 -
使用JS取得焦点(focus)元素
原文链接: Get the Focused Element with JavaScript原文日期: 2014年3月19日翻译日期: 2014年3月21日翻译人员: 铁锚对于良好的用户体验来说,网站/web app的可访问性和可用性,以及功能 都是至关重要的。 当我们的网站运行良好/体验很好的时候,用户是意识不到的,但我们做得不好时他们肯定会感觉到。 应用程序的可用性和可访翻译 2014-03-21 20:29:56 · 38251 阅读 · 0 评论 -
jQuery:多个AJAX/JSON请求对应单个回调
对于现在的开发,多个不同步且返回先后顺序也不确定的请求共享同一个回调是很自然的需求,所以jQuery绝对是与时俱进的!本文通过实例讲解 jQuery 的 when,then,done 等函数的使用。翻译 2014-04-22 19:47:56 · 6477 阅读 · 0 评论 -
JavaScript发布/订阅实例
原文链接: Pub/Sub JavaScript Object原文日期: 2014年6月11日翻译日期: 2014年6月13日翻译人员: 铁锚高效的AJAX网站有三大杀器: 事件代理, 浏览历史管理, 以及高效的应用级 发布/订阅通信机制. 本博客的原文站点 同时使用了这三种技术,本文中作者将分享其中最简单的一个: 该网站使用的 一个微型 发布/订阅模块。如果你不了解 发布/订阅 模式,那么可以将翻译 2014-06-13 15:46:52 · 2308 阅读 · 1 评论 -
CSDN_投票评选_JS_分析脚本
作者: 铁锚日期: 2013年12月31日如题, 使用说明如下:1. 原创图书http://special.csdn.net/book2013/yc.html2. 引进图书http://special.csdn.net/book2013/yj.html//// 采用chrome 打开以后,右键点击页面,选择审查元素// 随后切换到console控制台// 复制js文件原创 2013-12-31 21:21:46 · 3116 阅读 · 0 评论 -
一个简单的ExtJS搜索建议框
搜索建议的Combo.基本上完全兼容, 使用方式与Combo下拉框一样. 需要后台程序根据keyword进行搜索建议.原创 2015-08-21 13:12:53 · 4810 阅读 · 0 评论