Dream Maker 老漂 不要有和人斗的心,你要赢的是你自己!

注意! JavaScript中的"陷阱"

以下是JavaScript容易犯错的几个"陷阱".由本人google+体验+搜集而来.虽然不是什么很高深的技术问题,但注意一下,会使您的编程轻松些.

1. 最后一个逗号

如这段代码,注意最后一个逗号,按语言学角度来说应该是不错的(python的类似数据类型辞典dictionary就允许如此)。IE会报语法错误,但语义不详,你只能用人眼从几千行代码中扫描。

 

Js代码 "复制代码"
  1. <script>   
  2.   var theObj = {   
  3.         city : "ShenZhen",   
  4.         state : "ok",   
  5.   }   
  6. </script>   
<script>
  var theObj = {
        city : "ShenZhen",
        state : "ok",
  }
</script> 




2. this的引用会改变

如这段代码:

 

Js代码 "复制代码"
  1. <input type="button" value="Gotcha!" id="MyButton" >   
  2. <script>   
  3. var MyObject = function () {   
  4.     this.alertMessage = "Javascript rules";   
  5.     this.ClickHandler = function() {   
  6.         alert(this.alertMessage );  //行1   
  7.   }   
  8. }();   
  9. document.getElementById("theText").onclick =  MyObject.ClickHandler;   
  10. </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")的引用。可以这么解决:
 

Js代码 "复制代码"
  1. <input type="button" value="Gotcha!" id="theText" >   
  2. <script>   
  3. var MyObject = function () {   
  4.     var self = this;   
  5.     this.alertMessage = “Javascript rules”;   
  6.     this.OnClick = function() {   
  7.         alert(self.value);   
  8.     }   
  9. }();   
  10. document.getElementById(”theText”).onclick =  MyObject.OnClick   
  11. </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一样的变量名。如下代码:

 

Js代码 "复制代码"
  1. <input type="button" id="TheButton">   
  2. <script>   
  3.     TheButton = document.getElementById("TheButton");   
  4. </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(字符串)型变量,并且对变量进行初始化之后才定义了变量的上下文。

字符串文本是由单引号或双引号所引用的一系列字符,例如:

  1. var strString = "This is a string";  
  2. var anotherString= 'But this is also a string'; 

JavaScript并未限定必须用单引号或双引号来表示字符串,唯一的规则是前后的符号必须匹配。字符串中可以包括各式各样的字符,例如:

  1. var thirdString = "This is 1 string.";  
  2. var stringFour = "This is--another string.";  
  3. var stringAsNumber = "543"; 

7月编程语言排行榜:这里有支足球队

看到本期编程榜的标题你也许会觉得奇怪,编程语言和足球,他们之间会有什么联系吗?

世界杯让每个球迷都过足了瘾。球星与球队,对手与战术,胜利与失败,这都是足球的魅力。在本期编程语言排行榜的选题规划中,我们想将各种编程语言组成一支最佳阵容,把应用场景当成假想敌,会是怎样一种情形。于是,有了这期编程语言与足球混搭的编程榜。

"7月编程语言排行榜" 
主流编程语言组成的最佳阵容

这期编程榜,我们将应用场景锁定在Web应用开发领域。这里涉及大量的前端展示和交互、复杂的业务处理逻辑以及高效、稳定可靠的后端Web服务要求。这是绝大多数Web项目的需求描述,如果将其作为对手,我们会排出以下阵型。

前锋:HTML、Javascript;(替补:Flash、Silverlight)

Tags: 编程

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 108

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 中方便地查看网页的性能。

伪原创文章生成器代码

很多SEOer都喜欢伪原创,市面上也有很多伪原创文章的生成器,可能大家都在用。但可能很少有人知道伪原创文章是怎么生成的。今天给大家介绍一个很简单的伪原创文章的代码,如下:

< ?php
#define the text file
#we will get the words from

Tags: 伪原创 seo php

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 589

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

Tags: css div

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 140

用CSS设置Table的细边框的几种方法

大家经常会发现Table的BORDER设置为1,得到的边框却不是想要的1个像素的细边框,于是很多人去想方设法做出细边框的效果。

设置Table的细边框通常有这么几种方式:

1、设置边框的BORDER=0 、cellspacing=1,设置Table的背景色为所要的边框色,再设置所有的td背景色为白色,这样细边框就显露出来了。这个方法有些邪气,看似不太正宗,但是也能达到效果,条条大路通罗马嘛!

Tags: css div

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 137

牛人竟然装了32条ADSL宽带

一次去给客户维护电话交换机系统的时候。发觉一件十分雷人的事,客户竟然装了32条ADSL宽带。MODEN放了满满一堆,怪不得机房老出问题,没空调 ,太热了。上图

Tags: 宽带

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 111