OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

JavaScript中的$$(*)代表什么和$选择器的由来


分享到
分类 大话编程   关键字 瞎扯   发布 ourjs  1420523146800
注意 转载须保留原文链接,译文链接,作者译者等信息。  
你在jsfiddle 里面运行 会发现 $$ 输出的其实是 undefined。 但是现在你新开一个窗口打开console(F2),输入$$, 然后就在Chrome中就会输出:

bound: function () {
  return document.querySelectorAll.apply(document, arguments)
}

注* 上面的Chrome版本比较旧,其实较新版会输出这个

function (selector){
	var elements = new Elements;
	if (arguments.length == 1 && typeof selector == 'string') return Slick.search(this.document, selector, elements);
	var args = Array.flatten(arguments);
	for (var i = 0, l = args.length; i < l; i++){
		var item = args[i];
		switch (typeOf(item)){
			case 'element': elements.push(item); break;
			case 'string': Slick.search(this.document, item, elements);
		}
	}
	return elements;
}


在Firefox的开发控制台中$$也是定义了的。这个函数只是开发控制台内部使用的吗?


firebuglite中$$的定义是这样的:

this.$$ = function(selector)
{
    return FBL.getElementsBySelector(baseWindow.document, selector);
};

因为只是内部使用的。

这跟JavaScript的历史有关


在很多浏览器的设计工具中有大量的预定义API ,大部分是从Firebug中借鉴的,因为Firebug的设计(大部分)是正确的。

当Firebug在2006年被创立的时侯。当时的JavaScript库Prototype.js使用$来表示getElementById()。这个语法糖很方便地抓取到了用户想要的元素。它节省了大量的时间,之后整个框架都使用采用了$语法糖。

在2006年初,jQuery发布了,然后使用基于CSS选择器的$()语法来选择任意元素。在之后的几天,Prototype也发布了自己的CSS选择器引擎,但是$已经在他们的库中被占用了。所以它们换成了$$()。称之为bling-bling 函数。

所以Firebug采用了Prototype的API,因为它在2006年仍然非常流行。在后jQuery的日子里, 它等价于: window.$ = document.querySelectorAll.bind(document) 。有趣的是在Opera的开发工具中,它们也采用$作为querySelectorAll的别名。
原文地址: 点此
社区评论 ( Beta版 )
  • #0 Redstone 1421891569193

    这算美刀崇拜不。php 代码里放眼望去全是 $

OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 2014年最受欢迎的前十大语言:JavaScript、PHP、Java排前三
  2. 2015年的JavaScript:Angular之类的框架将被库取代
  3. 主流JavaScript MVC框架性能比较测试:Angular vs Backbone vs Ember
  4. AngularJS在大型单页面应用中的性能优化(一)
  5. 为什么io.js要从Node.js中分裂出来?
  6. CSS3实现的响应式字体:自适应视图窗口大小的新单位
  7. JavaScript代码组织结构良好的5个特点[reuqire.js]
  8. io.js新图标logo征集中
  9. 在JavaScript的Array数组中调用一组Function方法
  10. AngularJS在大型单页面应用中的性能优化(二)
  11. AirJD-简单好用的免费建站工具

 相关阅读 - 大话编程
  1. javaScript 依赖管理
  2. JavaScript代码组织结构良好的5个特点[reuqire.js]
  3. 怎样用纯HTML和CSS更改默认的上传文件按钮样式
  4. 今天我去面试, 受打击了:你是学 .net 的吧?
  5. JavaScript中的继承,构造函数以及new关键字的作用
  6. fibjs 比 nodejs 快五倍
  7. 痛苦的Java程序员
  8. OneBody:开源的社交网络,邮件列表,词典和内容管理系统
  9. 我不懂Swift
  10. 2014 Hangjs 见闻流水账第一天

 关键字 - 瞎扯
  1. 编程是一个没有前途的工作
  2. 你已经毁了JavaScript
  3. 程序员取名:用大数据分析一下宝宝取名时最容易重复的名字
  4. 浦发银行,请给我们一个解释!
  5. 在 2016 年学 JavaScript 是一种什么样的体验?
  6. Java官方安装包捆绑百度卫士杀毒软件
  7. 我们不需要JavaScript框架
  8. NodeJS会是昙花一现吗?
  9. Node程序员的反应:当我们讨论ES6新功能的优点时
  10. 欧洲杯激战正酣,如何用大数据变身专家级球迷

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号