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

有关 JavaScript 的 10 件让人费解的事情

JavaScript 可算是世界上最流行的编程语言,它曾被 Web 开发设计师贴上噩梦的标签,虽然真正的噩梦其实是 DOM
API,这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言,如今越来越被重视,虽则如此,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 发布的时候,N


相关文档:

javascript如何判断字符串为正小数?

/// <summary>
/// 判断是否为正小数
/// </summary>
/// <param name="str"></param>
/// <returns>为正小数时返回true,其他返回false</returns>
public static bool IsDecimal(string str)
{
//声明Regex对象变量
Regex objAlp ......

JavaScript窗口及输入输出 [7]

JavaScript是基于对象的脚本编程语言,那么它的输入输出就是通过对象来完成的。其中有关输入可通
过窗口(Window)对象来完成,而输出可通过文档(document)对象的方法来实现。
一、窗口及输入输出

看下面例子:
<HTML>
<Head>
<script
languaga="JavaScript">
Var test=window. ......

CSS+JavaScript实现层级显示隐藏

/***************************by
garcon1986********************************/
感谢CSDN的shan1119 帮我解决Javascript部分的错误。
<mce:script language="JavaScript"><!--
function toggle(id,id2,id3) {
var state = document.getElementById(id).style.display;
if (state == 'block') {
......

Javascript常用屏蔽

1 >屏蔽功能类
1.1 屏蔽键盘所有键
<script. language="javascript">
<!--
function document.onkeydown(){
  event.keyCode = 0;
  event.returnvalue = false;
}
-->
</script>
1.2 屏蔽鼠标右键
在body标签里加上oncontextmenu=self.event.returnvalue=false
或者
<scri ......

JavaScript 技巧

事件源对象
event.srcElement.tagName
event.srcElement.type 捕获释放
event.srcElement.setCapture();  
event.srcElement.releaseCapture();  事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey 事件返回值
event.returnValue 鼠标位置
event.x
event.y 窗体 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号