[置顶] 推荐文章:善待人生的后半程
[置顶] 突然又想起在东莞里笨笨狗的那段故事
[置顶] 【每一个奋斗男人背后,都需要一个这样的女人】站在你身后不仅是你的家人
注意! JavaScript中的"陷阱"
以下是JavaScript容易犯错的几个"陷阱".由本人google+体验+搜集而来.虽然不是什么很高深的技术问题,但注意一下,会使您的编程轻松些.
1. 最后一个逗号
如这段代码,注意最后一个逗号,按语言学角度来说应该是不错的(python的类似数据类型辞典dictionary就允许如此)。IE会报语法错误,但语义不详,你只能用人眼从几千行代码中扫描。
- <script>
- var theObj = {
- city : "ShenZhen",
- state : "ok",
- }
- </script>
<script> var theObj = { city : "ShenZhen", state : "ok", } </script>
2. this的引用会改变
如这段代码:
- <input type="button" value="Gotcha!" id="MyButton" >
- <script>
- var MyObject = function () {
- this.alertMessage = "Javascript rules";
- this.ClickHandler = function() {
- alert(this.alertMessage ); //行1
- }
- }();
- document.getElementById("theText").onclick = MyObject.ClickHandler;
- </script>
<input type="button" value="Gotcha!" id="MyButton" > <script> var MyObject = function () { this.alertMessage = "Javascript rules"; this.ClickHandler = function() { alert(this.alertMessage ); //行1 } }(); document.getElementById("theText").onclick = MyObject.ClickHandler; </script>
并不如你所愿,答案并不是”JavaScript rules”。在执行MyObject.ClickHandler时,在行1中,this的引用实际上指向的是document.getElementById("theText")的引用。可以这么解决:
- <input type="button" value="Gotcha!" id="theText" >
- <script>
- var MyObject = function () {
- var self = this;
- this.alertMessage = “Javascript rules”;
- this.OnClick = function() {
- alert(self.value);
- }
- }();
- document.getElementById(”theText”).onclick = MyObject.OnClick
- </script>
<input type="button" value="Gotcha!" id="theText" > <script> var MyObject = function () { var self = this; this.alertMessage = “Javascript rules”; this.OnClick = function() { alert(self.value); } }(); document.getElementById(”theText”).onclick = MyObject.OnClick </script>
实质上,这就是JavaScript作用域的问题。如果你看过,你会发现解决方案不止一种。
3. 标识盗贼
在JavaScript中不要直接使用跟HTML的id一样的变量名。如下代码:
- <input type="button" id="TheButton">
- <script>
- TheButton = document.getElementById("TheButton");
- </script>
<input type="button" id="TheButton"> <script> TheButton = document.getElementById("TheButton"); </script>
常量和变量的区别
常量就是不可改变的值,比如,ABC,123之类,
而变量呢,就是可以改变的值.在C中,比如定义一个整型变量:int a;那么你可以把任何int范围内的整型值赋给a.
===============================================================
JavaScript String数据类型
- 摘要:《Javascript学习指南(第2版)》第2章介绍JavaScript的基本数据类型,包括字符串、数字和布尔值,以及这些数据类型的内建函数。还将介绍JavaScript中两个特殊的数据类型null和undefined(未定义)。最后还将说明字符串的转义以及Unicode编码。此外还将深入介绍变量,以及如何让变量名称有效且有意义。本节说的是String数据类型。
2.3 String数据类型
由于JavaScript是一门支持松散类型的编程语言,字符串变量或者数字型、布尔型变量在声明时并没有什么差别,只有把文本赋给String(字符串)型变量,并且对变量进行初始化之后才定义了变量的上下文。
字符串文本是由单引号或双引号所引用的一系列字符,例如:
- var strString = "This is a string";
- var anotherString= 'But this is also a string';
JavaScript并未限定必须用单引号或双引号来表示字符串,唯一的规则是前后的符号必须匹配。字符串中可以包括各式各样的字符,例如:
- var thirdString = "This is 1 string.";
- var stringFour = "This is--another string.";
- var stringAsNumber = "543";
7月编程语言排行榜:这里有支足球队
看到本期编程榜的标题你也许会觉得奇怪,编程语言和足球,他们之间会有什么联系吗?
世界杯让每个球迷都过足了瘾。球星与球队,对手与战术,胜利与失败,这都是足球的魅力。在本期编程语言排行榜的选题规划中,我们想将各种编程语言组成一支最佳阵容,把应用场景当成假想敌,会是怎样一种情形。于是,有了这期编程语言与足球混搭的编程榜。
这期编程榜,我们将应用场景锁定在Web应用开发领域。这里涉及大量的前端展示和交互、复杂的业务处理逻辑以及高效、稳定可靠的后端Web服务要求。这是绝大多数Web项目的需求描述,如果将其作为对手,我们会排出以下阵型。
前锋:HTML、Javascript;(替补:Flash、Silverlight)
Google的JavaScript开发工具Closure
今天Google发布了其内部使用的JavaScript开发工具Closure,并贡献给开源社区,在拍手称快的同时,我们来看看它究竟有些什么内涵。
Closure 编译器
Closure 编译器是一个JavaScript优化器,为Web应用程序生成紧凑,高性能的JavaScript代码,它移除了不必要的代码,并经过重写和优化,保持娇小的身材,以便在浏览器的JavaScript引擎上运行得更快,这个编译器也会检查语法,变量引用和类型,并对常见的JavaScript陷阱发出警告,这些功能有助于你写出bug更少,更易于维护的程序。你也可以使用Closure检查器,它是一个Firebug扩展,主要用于调试那些难以阅读的代码。
因为JavaScript开发人员是一个多样化的群体,Google还设计了许多方法来运行Closure 编译器,同时内置了一个命令行工具,如果你还想偷懒,Google也提供了一个在线页面,你可以将你的JavaScript代码放入该网页中的文本输入框中,让它帮你编译,也可以调用RESTful API来完成编译。此外,Google提供了著名的Firefox 扩展Page Speed,让开发人员可以在Firefox 中方便地查看网页的性能。
伪原创文章生成器代码
< ?php
#define the text file
#we will get the words from
CSS中的ul与li样式详解
ul和li列表是使用CSS布局页面时常用的元素。在CSS中,有专门控制列表表现的属性,常用的有list-style-type属性、list-style-image属性、list-style-position属性和list-style属性。
一、list-style-type属性
list-style-type属性是用来定义li列表的项目符号的,即列表前面的修饰。list-style-type属性是一个可继承的属性。其语法结构如下:(列举一些常用的属性值)
list-style-type:none/disc/circle/square/demical/lower-alpha/upper-alpha/lower-roman/upper-roman
用CSS设置Table的细边框的几种方法
设置Table的细边框通常有这么几种方式:
1、设置边框的BORDER=0 、cellspacing=1,设置Table的背景色为所要的边框色,再设置所有的td背景色为白色,这样细边框就显露出来了。这个方法有些邪气,看似不太正宗,但是也能达到效果,条条大路通罗马嘛!
CSS里如何单独定义DIV的li属性?
字体属性(Font)
font-family
font-style