这是一系列对于初学者的 javascript 文章,包括很多的基础知识,由于我也是初学者,所以,翻译过来,大家一起学习,这一系列就叫做 javascript 101 吧,嘿嘿,当然,一般情况下,每篇文章,基本不会超过十分钟。
那么,就先从基本的“值”来说吧。
“值”的类型
在 javascript 中,与其他语言对比,很多不起眼的或者说对其他语言来说是缺点的东西,却恰恰是 javascript 的魅力所在。
看一下下面的例子。有几种数据类型。

var one = 1, oneObject = new Number(1);
log(one === oneObject);
log(typeof(one), typeof(oneObject));

也可以在这里直接进行调试:http://jsfiddle.net/uWup3/.
在这个例子中,使用了“恒等号”,也即是“===”,来对比 值 “1” 和 对象(object)“new Number(1)” 是否相等,肯定的,返回了 “false” ,原因就是 “1” 是原始值,而 “new Number(1)” 的到的是一个对象,可以通过 typeof 来验证。
其他的原始值:”undefined”,”Null”,”Boolean”,”Number”以及 “string”,对于涉及到未定义的数据的时候,其值为 “undefined”。

创建对象(object)
在 javascript 中,我们主要关注的还是对象,这也就是为什么 JSON 这么的流行和有用。其中的原因就是对象的灵活性。对于对象和原始值的主要区别就是“对象由多个项目组成”。

var javascript = {
  influences: ['C', 'Java', 'Scheme']
, designer: 'Brendan Eich'
, created: new Date(1995, 0, 1)
};

在此对象(javascript)中的项目(influences/designer/created)被称作“属性”,而且对于属性的值,可以是不同类型的,例如原始值,对象,数组,等。这也就是对象的灵活之处。
还有一种创建对象的方式:

var javascript = new Object({
  influences: ['C', 'Java', 'Scheme']
, designer: 'Brendan Eich'
, created: new Date(1995, 0, 1)
});

此种方式使用了 new Object 创建了一个对象的实例(instance),但是,虽然创建方式不一样,但是根据语言规范,这两种方式创建的对象是一样的。但是此种方式一般不推荐使用。

但是这里唯一需要注意的是,对于 constructor 函数的使用,很多种情况下 constructor 函数都是对象,另外,还有一些系统内置函数,例如 Date();

Constructors 函数
上一段代买,看起来其实不太像代码,而像一些数据的集合,那么这里我们将会创建一个 Constructor 函数(如何能使同一种功能的代码初始化),来使上段代码可以被重复利用。

function Language(designer, created, influences) {
  this.designer = designer;
  this.created = created;
  this.influences = influences;
}

var javascript = new Language(
  'Brendan Eich'
, new Date(1995, 0, 1)
, ['C', 'Java', 'Scheme']
);

这时候,同样的可以在创建一个实例:

var c = new Language(
  'Dennis Ritchie'
, new Date(1972, 0, 1)
, ['B', 'ALGOL']
);

此构造函数可以使用 constructor 属性来访问,例如,此时,c.constructor 将返回:

function Language(designer, created, influences) {
  this.designer = designer;
  this.created = created;
  this.influences = influences;
}

而 javascript.constructor 也将返回同样的代码。

在 ES5 的规范下,还有一些其他的原型对象的属性,例如,toString,还有比较陌生的 hasOwnProperty 方法。

这篇文章就讲到这里,下一篇将会介绍 prototypes (原型),javascript 中非常重要的概念。

很久以前整理了篇将 手 机网站做成手机应用的JS框架。时隔一年多,很多新的技术已经出现,下面再来总结下还有哪些框架是适合面向手机设备的开发的。

1、 jQuery Mobile

jQuery Mobile 是 jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。

2、 jQTouch

jQTouch 是一个 jQuery 的插件,主要用于手机上的 Webkit 浏览器上实现一些包括动画、列表导航、默认应用样式等各种常见UI效果的 JavaScript 库。支持包括 iPhone、Android 等手机。

3、 DHTMLX Touch

DHTMLX Touch是一个免费的HTML5/JavaScript框架,专门为触摸屏设备而优化。为您带来快速开发工艺精美的移动Web应用程序的能力。 DHTMLX Touch UI Designer是 一个可视化的编辑器用于构建移动用户界面。它能够帮您以最少的编码构建一流的用户界面。在其主页上提供一些示例可以展示DHTMLX Touch强大的用户界面。包括一个 menu app for the iPad (适用于开发餐厅应用) 和Book Shop (一个电子书店应用)。

4、 Mobilize.js

Mobilize.js是一个开源的HTML5-JavaScript框架用于从任何现在有标准网站快速,简便地构建移动网站。这个框架其实就是 将需要在移动设备上显示的部分页面以jQuery Mobile的默认主题显示,而不是实现一个全新完整的移动页面。Mobilize.js 可用于任意网站,但对于基于WordPress和Sphinx的网站不需要使用该框架转换,因为已经有非常多的插件可以使用。

5、 The M Project

The-M-Project是另外一个强大的JavaScript框架,它利用HTML5新的特性来更好和更简便地开发移动应用。这个框架遵循著 名的MVC软件架构模式。它还支持离线,所以你的用户可以在没有连接网络的情况下继续操作(当下次有连线的时候,再将数据同步到服务器中)。提供优秀的文 档(这个项目拥有一个引导新用户入门的 开发指南)。可以查看提供的 示例来对该项 目有一个初目的了解。这些示例包括: ToDo App(待办事项 目应用) 和 KitchenSink (这个示例包括这个框架提供的所有UI元素)。

6、 WebApp.Net

WebApp.Net 提供了很多的 API,因此可以帮助你节省很多工作了。不需要花时间去进行 Ajax 调用的编码,因为已经内置了,另外还有很多其它内置功能,提供了详细的文档和应用演示。

7、 Wijmo

Wijmo是一个基于jQuery UI的UI部件的套件。Wijmo部件进行了优化客户端Web开发和利用jQuery的优越的性能和易用性的力量。所有的Wijmo部件都配备了20多个 主题和支持ThemeRoller。

8、 960 Grid on jQuery-Mobile

jquery-mobile-960 是一个用于移动 Web 开发的网格框架,综合了 960.gs 的灵活性和 jQuery Mobile 的方便性。它的目的是让 jQuery Mobile 布局更加的灵活,使得应用应许在移动终端更加易用。

9、 Sencha Touch

Sencha Touch 是世界上第一个基于 HTML5 的移动 Web 开发框架,支持最新的 HTML5 和 CSS3 标准,全面兼容 Android 和 Apple iOS 设备,提供了丰富的 WEB UI 组件,可以快速的开发出运行于移动终端的应用程序。Shencha是第一个使用HTML5,CSS和JavaScript并且支持音频/视频,本地存储, 圆角,渐变背景以及阴影的开发框架。

10、 NimbleKit

NimbleKit 是为 iOS 设备构建应用程序最快速的方式,你不需要知道 Objective-C 或者 iOS SDK,你只需结合 JavaScript 代码编写 HTML 页面就可以了。

11、 Touchy™ Boilerplate

Touchy Boilerplate 是一个用来创建移动web app,包括HTML模板,Meta tag等的工具。Touchy可以支持动态页面导航,固定页头,滚动内容,浏览历史记录等功能。Touchy使用jQuery或者 Zepto.JS。

12、 PhoneGap

PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够利用 iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系 人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。PhoneGap是免费的,但是它需要特定平台提供的附加软件,例如 iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5配套开发。使用PhoneGap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是你仍然需要为每个 平台分别编译应用程序。

13、 joshfire

Joshfire是一个开源的跨设备开发框架,帮助开发者创建可以在多种设备上运行的web app。它使用HTML5和JavaScript,并且允许开发者快速整合本地应用和特定的web应用。Joshfire可以让你的应用接受键盘,鼠标, 触摸屏,遥控器等设备的输入。Joshfire支持Node.JS。4.Sencha Touch:基于HTML5的移动网页开发框架。

14、 Julia

Julia框架由基本CSS3文件、JS库和各个平台的运行库构成。不像PhoneGap,Julia不仅仅包含调用本机代码的接口层,它还包含 Model-View-Controller(MVC)支持,Delegation支持,OAuth支持,异步数据库存取接口,HTML选择符(类 jQuery调用接口),HTML模版(允 许嵌入JS代码)等应用开发必备的API接口。 基于Julia的应用开发就像网站开发那么简单,是的,你终于可以用HTML5开发一个完整的、跨平台 的、不亚于本机代码的、易于维护的移动应用了!大幕即将揭晓,让我们一起进入移动开发的新时代。(注:不过目前来看,此项目貌似即将流产。)

15、SproutCore HTML5 Application Framework

SproutCore 是一个 HTML5 移动 Web 开发框架,它的目标是在无需浏览器插件的情况下,在浏览器中位应用程序提供极佳的桌面效果。

16、 Titanium

这是一个强大的,健壮的移动Web开发框架。能够让使用现有的HTML, CSS和JavaScript知识来为 iOS和Android平台开发原生移动应用。作为一个越来越大的移动Web框架,它拥有超过300个的APIs和活跃的开发者社区。你从这个社区中得到 每一个开发人员的帮助。Titanium Mobile支持原生的iOS和Android UI元素如Table views, tabs, switches和popovers。它提供能够与移动设备的摄像头和本地文件存储系统相交互的特性。

17、 Lungo.js

Lungo.js 是一个采用HTML5, CSS3 和JavaScript技术实现的移动Web应用程序开发框架。利用这框架开发的应用程序可运行所有流行的平台包括:iOS, Android, Blackberry 和 WebOs。它还支持触摸事件如:tap, double-tap和swipe。整个框架没有用到任何图片包括图标,所有都矢量化。可以在这个框架中使用HTML5拥有的一些特性如:WebSQL, 地理位置定位,历史或设备方向等。Lungo.js是一个模块化并且完全可定制的框架。

18、 xui.js

有时候你可能需要一个超轻量级的框架,只要拥有用于开发标准客户端所需要的功能如:DOM操作,事件处理,Ajax和一些动画效果。如果是这样的 话,这个框架刚好非常适合你。整个框架采用GZIP压缩完之后只有4.2 KB。

19、 EmbedJS

EmbedJS是一个用于嵌入式设备的JavaScript框架如:移动电话,TVs、tablets和so forth。EmbedJS强大之处在于,它拥有专门为特定平台和浏览器如iOS, Firefox, Android等提供相应的开发版本。这样就能够以最少的代码,为用户提供最佳的体验。而且假如你喜欢自己定制,可以利用其提供的 EmbedJS Build tool工 具实现。EmbedJS基于Dojo实现,所以你如果熟悉Dojo API语法,那EmbedJS将是你最佳的选择。

20、 zepto.js

zepto.js是一个专为mobile WebKit浏览器(如:Safari和Chrome)而开发的一个JavaScript框架。它标榜自己在其简约的开发理念,能够帮助开发人员简单、快 速地完成开发交付任务。更重要的是这个JS框架,是超轻量级的,只有5KB。zepto.js的语法借鉴并且兼容jQuery。

21、 Baker

Baker是用来在iPad或者iPhone平台上发布交互式的电子书或者电子杂志的HTML5电子书框架。

22、 ChocolateChip-UI

ChocolateChip-UI 是一个手机移动 Web 开发框架,采用 HTML5, WAML, CSS 和 JavaScript等技术实现。基于 ChocolateChip JavaScript 框架,包含最新的 ChUI.JS 和 ChUI.css.

23、 Magazine Grid

Magazine Grid 是一个超现代的 CSS 框架,用于 iPad 和 iPhone 手机,使用类似杂志的设计风格。Magazine Grid 可让用户使用 HTML5 元素来组织杂志页,非常轻量级(Kendo UI Kendo UI是一个强大的框架用于快速HTML5 UI开发。基于最新的HTML5、CSS3和JavaScript标准。 Kendo UI包含了开发现代JavaScript开发所需要的所有一切,包括:强大的数据源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。

25、 HTML App Host Framework

这是一个用于构建基于 Windows Phone 7 的 HTML/JavaScript 托管框架,使用 HTML5 技术。该框架由支持在标准 xap 格式中嵌入 html 应用的控件。

 

来自:http://9840.cn/chengxuyuan/596,662.html

学习 Javascript 的同学们都知道,在数组字面量中每一个元素后都会根由一个小小的“,”逗号。但是就是这一个小小的逗号,让很多人在各种浏览器兼容的问题上头疼不已。
其实,这里的主要原因,就是数值或者属性/值对最后一个元素后面的逗号问题。而这个逗号主要表现的问题,就是 IE8 及以下浏览器和标准浏览器之间的解析差别。那么我们来看举一个栗子。

例如

var a = [1,2,3,], b = [,,];

像这样的数组生命形式,在标准浏览器中,例如 Chrome 或者火狐,就会将最后一个逗号省略掉,那么当使用

alert(a.length); 或者 alert(b.length);

的时候,就会得到 3 和 2 的结果。因为标准浏览器会忽略最后一个逗号,那么就变为:

a = [1,2,3], b = ["",""];

而在 IE8 及以下浏览器中,其却不忽略最后一个逗号,所以其就会变为:

a = [1,2,3,""], b = ["","",""];

也就是如果用数组的 length 属性 alert 的话,就会得到 4 和 3。

那么对于对象也是一样的。例如:

c = {
    x:5,
    y:6,
    z:9,
}

如果在标准浏览器中,最后一个逗号,也就是数字 9 后面的逗号会被忽略,javascript 代码就会正常运行。

而在 IE8 及以下浏览器中,则由于最后一个逗号的存在,浏览器就会报错,此时 javascript 代码则会停止运行。

所以,在写代码的时候,一定要确保数组或者属性/值对最后一个元素后面没有这个逗号。

当然了,对于有没有逗号,标准是规定的是“应该省略最后一个逗号”,所以这里确切的说是非标准浏览器的问题,而不是 Chrome 或者 火狐,这些标准浏览器的问题了。

主题名称: AirSquare

主题链接: https://yimity.com/2011/12/01/airsquare.html

主题描述:AirSquare. 非常个性化的两栏主题,黄金分割比,左侧背景图片后台点击更换(目前9种,支持自定义),后台选项,包括自定义站点统计,网站自定义使用说明,直接输入 Google+ 或者 Twitter 用户民即可,评论框右侧 125*125 像素的广告,Windows Phone 7 风格支持(Beta),评论错误/正确提示,评论 Ajax 支持,SEO 友好,支持自定义菜单,支持IE8以上,及 Chrome,Firefox,Opera等现代浏览器。不需要任何插件支持。

主题版本: 1.0

主题作者: 一米

网站预览: http://demo.yimity.com/ 预览主题启用 Windows Phone 7 风格

后台预览:请发邮件给我,我给你地址和账号。

发布日期:12月01日。

主题预览:http://demo.yimity.com/

AirSquare 菜单
AirSquare 鼠标悬停
AirSquare 首页

介绍:

AirSquare. 非常个性化的两栏主题,黄金分割比,左侧背景图片后台点击更换(目前9种,支持自定义),后台选项,包括自定义站点统计,网站自定义使用说明,直接输入 Google+ 或者 Twitter 用户民即可,评论框右侧 125*125 像素的广告,Windows Phone 7 风格支持(Beta),评论错误/正确提示,评论 Ajax 支持,SEO 友好,支持自定义菜单,支持IE8以上,及 Chrome,Firefox,Opera等现代浏览器。不需要任何插件支持。即使 JS 加载失败,功能同样正常可用。

安装:

1.将本文件解压,得到 airsquare 文件夹及其内部文件,将此文件夹上传到 WordPress 程序中的 wp-content/themes 文件夹。

2.进入博客后台,外观-主题, 选择 AirSquare 主题,并且激活。

3. 进入后台,设置-阅读,博客页面至多显示 24 篇文章。

使用:

1. 上传成功,并激活成功即可使用。

2. 在 外观-主题选项中,点击“主题选项”即可设置相关的选项,不要忘记点击“更新选项”哦。

3. Logo 地址处,填上 Logo 图片的地址即可。 逐渐更新支持。

4. 后台所有输入框 HTML 都是可用的,但是建议该用的时候用,不该用的就不要用。

5. 统计代码 可以使用单选框选择是否可用,选中状态则起作用,否则统计代码即使在后台能看到,但不会起作用。

6. Twitter 及 Google+ 输入用户名后或者 Google + 个人链接最后的数字后,则会在鼠标悬停于右侧的时候搜索栏得最左边显示链接。

7. 多语言支持。目前只有中文简体,繁体中文及英语。

9. 其他任何问题,请联系 yimity@yimity.com。谢谢。

10. 主题为 1.0 版,如有先关建议或 Bugs 也请发邮件,谢谢。

当然,此份主题不是免费的,但是只出售 10 份,每份 99 元人民币。同时附赠价格同样 99 元的 BreakUp 一份。

购买者,享受不限时一对一服务,但是也只是我一人,当然了,大家都有工作,最好是晚上,最最好是星期周末把。

购买者,发送 知乎 邀请一枚,Hostloc 要请也有。

购买者,可以享受右侧页脚搜索栏社会化图标的更换服务。

最后,当然是走支付宝,你放心,我放心。

更新日志:

更新 , 时间 , 版本

增加留言模板和友链模板 , 2011.12.01 , 1.0.1

优化文章内容样式 , 2011.12.02 , 1.0.3

添加登陆后编辑功能 , 2011.12.14 , 1.0.4

话说,文件上传控件的样式,就如同下拉框的样式一样,没办法通过 CSS 直接进行控制,虽然不影响正常的网页浏览,但是对于一个设计师的心血来说,不能完全还原,还是比较令人郁闷的,但是,活人总不能叫尿憋死,所以总是有很多方法能够达到我们的目的,例如: Mr.Think 的这篇文章,或者这篇文章。但是第一个不兼容IE6,比较遗憾,虽然我现在在自己的项目上坚决不支持IE6,但是,解决方法还是要掌握的。

另一个因素就是 Chrome 下的空间样式和 IE 以及 火狐下不同,具体就不举例子了。

最近想到这个问题,所以写出来和大家分享下,也兼容IE6,那就是,用一个层,将 input 空间给包裹起来,然后将控件相对定位,将包裹的层,例如 a 绝对定位到控件之上,并且给其样式,可以使用 span 或者 a 元素,由你喜欢,但是为了兼顾 IE6 ,还是用 a 比较好,因为 a 可以在 IE6 下产生 手型 的鼠标样式。所以这里就拿 a 来举例,span 或者其他的,就自己发挥吧。

先看图。

那么接下来,就看代码了。

先是结构

	<input type="text" id="a" readonly="readonly" />
	<a href="javascript:void(0);" class="input">
		浏览
		<input type="file" id="file">
	</a>

此处第一个 input 为模仿 文件路径的输入框,使用 javascript 在选择完成之后,把文件路径填到此处。第二个 a 标签模仿控件,第三个 input 是实际起作用的控件,只不过隐藏了而已。

然后是 CSS

a.input {
	width:100px;
	height:25px;
	line-height:25px;
	background:#08f;
	text-align:center;
	display:inline-block;/*具有行内元素的视觉,块级元素的属性 宽高*/
	overflow:hidden;/*去掉的话,输入框也可以点击*/
	position:relative;/*相对定位,为 #file 的绝对定位准备*/
}
a.input:hover {
	background:#f80;
}
a{
	text-decoration:none;
	color:#FFF;
}
#file {
	opacity:0;/*设置此控件透明度为零,即完全透明*/
	filter:alpha(opacity=0);/*设置此控件透明度为零,即完全透明针对IE*/
	font-size:100px;
	position:absolute;/*绝对定位,相对于 .input */
	top:0;
	right:0;
}

然后是 javascript 代码,此处给了 原生的 javascript 和 jQuery 方式。

原生 javascript

<script type="text/javascript">
	var input1 = document.getElementById("file");// 获得控件对象
	input1.onchange = inputPath; //当控件对象 input1 有变化时执行函数 inputPath
	function inputPath() {
		var input2 = document.getElementById("a"); // 获取 input 对象 input2
		input2.value=input1.value;  // 将控件 input1 的值赋给 input2 
	}
</script>

jQuery 方式

<script type="text/javascript">
$(function(){
	$("#file").change(function(){  // 当 id 为 file 的对象发生变化时
	        $("#a").val($("#file").val());  //将 #file 的值赋给 #a 
	})
})
</script>

OK,打完收工.

对,还有演示呢:

主题名称: BreakUp

主题链接: https://yimity.com/2011/08/01/breakup.html

主题描述:BreakUp. 全站 Ajax 支持,SEO 友好,支持自定义菜单,支持IE8以上,及 Chrome,Firefox,Opera等现代浏览器。不需要任何插件支持。

主题版本: 0.8

主题作者: 一米

网站预览: https://yimity.com/

发布日期:8月6日,七夕节。

介绍:

全站 Ajax 支持,SEO 不受影响,JS加载失败,同样可用。支持键盘左右键翻页,支持图片标志,支持自定义菜单,自适应宽度设计。

安装:

1.将本文件解压,得到 breakup 文件夹及其内部文件,将此文件夹上传到 WordPress 程序中的 wp-content/themes 文件夹。

2.进入博客后台,外观-主题, 选择 BreakUp 主题,并且激活。

3. 进入后台,设置-阅读,博客页面至多显示 1 篇文章。

使用:

1. 上传成功,并激活成功即可使用。

2. 在 外观-主题选项中,点击“主题选项”即可设置相关的选项,不要忘记点击“更新选项”哦。

3. Logo 地址处,填上 Logo 图片的地址即可。

4. 后台所有输入框 HTML 都是可用的,但是建议该用的时候用,不该用的就不要用,比如 网站描述或者关键字。

5. 统计代码 可以使用单选框选择是否可用,选中状态则起作用,否则统计代码即使在后台能看到,但不会起作用。

6. Twitter 及 Google+ 输入用户名后或者 Google + 个人链接最后的数字后,则会在导航栏最右边链接。

7. 描述及关键词 SEO内容,如果是首页,则显示后台设定内容,如果是单页则会使用当前文章的前200字符作为描述,此文章标签作为关键字。建议最好填写。如果不填写,则默认为站点标题和副标题。

8. 多语言支持。目前只有中文简体,繁体中文及英语。

9. 其他任何问题,请联系 i@yimi.in。谢谢。

10. 主题为0.8版,说明只是到目前为止的完善,如有先关建议或 Bugs 也请发邮件,谢谢。

 

 

当然,因为我最近想买一个可以看书的 Android 平板,所以此份主题不是免费的,但是只出售 10 份,每份 99 元人民币。现接受预定,预定期8月1日至5日晚24时止。预订价 88 元。先付 10 元定金即可。不买不退哦亲。

购买者,享受不限时一对一服务,但是也只是我一人,当然了,大家都有工作,最好是晚上,最最好是星期周末把。

购买者,发送 G+ 邀请一枚,如果想要 知乎 邀请也有,Hostloc 要请也有,现在又增加了 Google Music 邀请,不过只有两枚。还有我可以邀请的,都可以邀请你。

购买者,可以享受首页导航右侧社会化图标的更换服务。

额,我要忙死了。为了平板值!

最后,预定链接:http://item.taobao.com/item.htm?id=12445127655  支付宝,你放心,我放心。

更新:时间 版本

2011.8.16 0.8.1
1. 更改左右方向键翻页为上下 Page 键翻页,防止评论时冲突。
2. 修复评论上部的 回复 和 引用 错误。
3. 完善菜单,增加支持三级菜单,鼠标悬停“网络”可查看。
4. 更新语言文件
5. 计划改变首页样式,中间为文章列表,右侧为侧边栏,单篇文章则中间为文章,右侧为评论。