期权知识 第581页

  • 数据类型和Json格式

    数据类型和Json格式

    1. 前几天,我才知道有一种简化的数据交换格式,叫做yaml。 我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开。 它说,从结构上看,所有的数据(data)最终都可以分解成三种类型: 我恍然大悟,数据构成的最小单位原来如此简单!难怪在编程语言中,只要有了数组(array)和对象(object)就能够储存一切数据了。 2. 我马上想到了json。 21世纪初,Douglas Crockford寻找一种简便的数据交换格式,能够在服务器之间交换数据。当时通用的数据交换语言是XML,但是Doug...

    期权知识 2020-08-18 538 0
  • xpath路径表达式笔记

    xpath路径表达式笔记

    简单说,xpath就是选择XML文件中节点的方法。 所谓节点(node),就是XML文件的最小构成单位,一共分成7种。 xpath可以用来选择这7种节点。不过,下面的笔记只涉及最常用的第一种element(元素节点),因此可以将下文中的节点和元素视为同义词。 一、xpath表达式的基本格式 xpath通过"路径表达式"(Path Expression)来选择节点。在形式上,"路径表达式"与传统的文件系统非常类似。 二、选择节点的基本规则 三、选择节点的实例 先看一个XML实例文档。 [例1]...

    期权知识 2020-08-18 460 0
  • JavaScript与有限状态机

    JavaScript与有限状态机

    有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物。 简单说,它有三个特征:   * 状态总数(state)是有限的。   * 任一时刻,只处在一种状态之中。   * 某种条件下,会从一种状态转变(transition)到另一种状态。 它对JavaScript的意义在于,很多对象可以写成有限状态机。 举例来说,网页上有一个菜单元素。鼠标悬停的时候,菜单显示;鼠标移开的时候,菜单隐藏。如果使用有限状态机描述,就是这个菜单只有两种状态(显示和隐藏),鼠标会...

    期权知识 2020-08-18 462 0
  • Linux的五个查找命令

    Linux的五个查找命令

    最近,我在学习Linux,下面是一些笔记。 使用电脑的时候,经常需要查找文件。 在Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条。大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的。 1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。 find的使用格式如下:   $ find   - : 所要搜索的目录及其所有子目录。默认为当前目录。   - : 所要搜索的文件的特征...

    期权知识 2020-08-18 499 0
  • 什么是 Event Loop?

    什么是 Event Loop?

    [2014.10.08更新] 本文内容有错误,请参考新版本。 Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。 JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。 本文参考C. Aaron Cois的《Understanding The Node.js Event Loop》,解释什么是Event Loop,以及它与JavaScript语言的单线程模型有何关系。 想要理解Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做"进程"(pro...

    期权知识 2020-08-18 437 0
  • undefined与null的区别

    undefined与null的区别

    大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。 有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null。这是为什么? 一、相似性 在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。 var a = undefined; var a = null; 上面代码中,a变量分别被赋值为undefined和null,这两种写...

    期权知识 2020-08-18 487 0
  • 关于URL编码

    关于URL编码

    一、问题的由来 URL就是网址,只要上网,就一定会用到。 一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址"http://www.abc.com",但是没有希腊字母的网址"http://www.aβγ.com"(读作阿尔法-贝塔-伽玛.com)。这是因为网络标准RFC 1738做了硬性规定: 这意味着,如果URL中有汉字,就必须编码后使用。但是麻烦的是,RFC 1738没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。这导致"UR...

    期权知识 2020-08-18 491 0
  • 《ECMAScript 6入门》上线了

    《ECMAScript 6入门》上线了

    过去的一个月,我写了一本书《ECMAScript 6入门》,今天上线了。 网址:es6.ruanyifeng.com ES6是JavaScript语言的下一个版本,预计将在2014年底正式发布。它对JavaScript做了大量改造,提高了灵活性和应用性,使得这门语言真正成为了企业级开发工具。 但是,ES6也使得JavaScript变得更抽象、更难学了。我把自己过去一年的学习笔记,做成了这本书,采用创意共享开源许可证,源码放在Github上面。欢迎大家访问,多提宝贵意见,多发Pull Request。...

    期权知识 2020-08-18 509 0
  • 搭建了一个图片库

    搭建了一个图片库

    经常有读者抱怨,看不到网志中的图片。 确实如此。正常情况下,过去文章中的图片,超过60%都无法在国内正常显示。 但是,事实上,这个网志的所有图片链接都是有效的,没有一个链接是坏的。无法显示只是因为被屏蔽了,只要你不在中国大陆,所有图片都能看到。 最早的时候,我使用Flickr存放图片。但是2007年,Flickr被屏蔽了。 后来,我改用Picasa存放图片。2009年,Picasa也被屏蔽了。 我又改用Photobucket。2010年1月,Photobucket也被屏蔽了。 怎么办?...

    期权知识 2020-08-18 474 0
  • 前端模块管理器简介

    前端模块管理器简介

    模块化结构已经成为网站开发的主流。 制作网站的主要工作,不再是自己编写各种功能,而是如何将各种不同的模块组合在一起。 浏览器本身并不提供模块管理的机制,为了调用各个模块,有时不得不在网页中,加入一大堆script标签。这样就使得网页体积臃肿,难以维护,还产生大量的HTTP请求,拖慢显示速度,影响用户体验。 为了解决这个问题,前端的模块管理器(package management)应运而生。它可以轻松管理各种JavaScript脚本的依赖关系,自动加载各个模块,使得网页结构清晰合理。不夸张地说,将来所有的...

    期权知识 2020-08-18 468 0