易截截图软件、单文件、免安装、纯绿色、仅160KB

JavaScript最让人费解的十件事(

原文地址:http://developer.51cto.com/art/201002/185161.htm
JavaScript是一种广泛用于客户端Web开发的脚本语言,其可算是世界上最流行的编程语言,它曾被Web开发设计师贴上噩梦的标签,虽然真正的噩梦其实是DOM API,也曾经有人认为JavaScript语法中有很多陷阱,同时其也有很多让人费解的东西。
1. 它以Java命名,但并不是Java
它最初叫Mocha, 接着改名为 LiveScript,最后才确定命名为JavaScript,根据历史记录,Java 的命名与 Netscape 和 Sun 之间的合作有关,作为交换条件,Netscape 在他们备受欢迎的浏览器中创建了 Java 运行时。值得一提的是,这个名字的出台几近一个玩笑,要知道,LiveScript 和 Java 在客户端脚本方面存在敌对关系,不管怎么说,人们后来不得不一再澄清的一件事就是,JavaScript 和 Java 毫无关系。
2. Null 是个对象?
看看这段代码,它返回的是object。
这实在令人费解,假如 null 表示空值,它怎么可以是对象?简单说,它是JavaScript 最初版本的错误,这个错误甚至被微软的 JScript 直接借用。
3. NaN !== NaN
NaN,表示一个非数字的值,然而问题是,NaN不等于任何东西,甚至不等于它自己。
这显然不对,事实上,如果要判断一个值确实是 NaN,你需要用 isNaN() 函数。
4. 全局变量
对全局变量的依赖一直被视为 JavaScript 最坏的部分(ECMA 的 JavaScript 5 已经去掉了全局变量,请参阅 ECMA 推出 JavaScript 5 - 译者注)。对简单的页面,这无所谓,但复杂的页面,如果包含大量 JavaScript 脚本,你很难知道某个全局变量是在哪里声明的,如果几个全局变量不小心重名,就会引发错误。
5. 那些统统被探测为Mozilla User-Agent 的浏览器
必须承认,事实上,这不是JavaScript 的错,是各个浏览器有意为之。比如,以下是用JavaScript 探测Safari 时得到的结果:
是否注意到其中的第一个单词 Mozilla/5.0,为什么 Safari 会被探测为 Mozilla,尽管 Safari 后来已经纠正这一问题,但仍然不能解释为什么它们要这样误导开发者。事实上,你会发现,绝大多数浏览器把他们的 User Agent 设置为 Mozilla,答案要回到10年前,这更多是一种策略。User Agent 是一段用来标识当前浏览器身份的字符串,世界上第一个浏览器Mosaic,曾这样标志自己:
这很合理,因此当 Netscape 出来的时候,它保留了Mosaic这个传统,还在后面添加了一个加密方式部分。
到目前为止,一切安好,直到 IE3 发布,当 IE3 发布的时候,Ne


相关文档:

javascript中获取一个字符串中 特定字符串的个数

//统计字符串中特定字符串的个数
function getStrCount(scrstr,armstr)
{ //scrstr 源字符串 armstr 特殊字符
 var count=0;
 while(scrstr.indexOf(armstr) >=1 )
 {
    scrstr = scrstr.replace(armstr,"")
    count++;   
 }
 re ......

JavaScript 用到alert出乱码问题

             response.write "<script language='javascript'>"
             response.write "alert('用户名或密码错误!');"
             response.write "hist ......

IE和FireFox的兼容的javascript回车事件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="serve ......

JavaScript_基于JS的进度条

开发时,需要用到的JavaScript进度条~~~
<style type="text/css">
#out {
width:200px;
height:16px !important;
border:1px solid #5858D1;
text-align:center;
position:relative;
font-size:12px;
_height:18px;
}
#out, #out * {
padding:0;
margin:0;
}
#num {
height:16px;
line-h ......

javascript实现像java、c#之类的sleep暂停的函数功能

我们都知道java、c#、vb等语言都有sleep暂停的函数,而JavaScript脚本没有类似的功能。
下面就是我的实现的方法:
<mce:script type="text/javascript"><!--
function test()
{
var s="javascript--暂停函数";
setTimeout(
function(){
eval(sleep(test)); //执行return之后的代码,也就是&ldq ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号