1 var ntest = null ; alert(typeof ntest);typeof运算符对于null值会返回“object”。这个实际上是javascript最初实现中的一个错误,然后被ECMAScript沿用了。现在,null被认为是对象的占位符,从而解决了这一矛盾,但从技术上来说,它仍然是原始值。判断某个变量是否是某个对象的实例则要选择使用instanceof, alert(oString instanceof String).
2.值undefined并不等同于未定义的值。但是,typeof运算符并不真正区分这两种值。typeof对于声明未初始化的和未声明的都是返回undefined,但是对未声明变量除typeof之外的其他运算符的话,会引起错误。当函数无明确返回值时,返回的也是undefined。
3.Null类型:专用值null,即它的字面值。值undefined实际上是从值null派生过来的,因此ECMAScript把它们定义未相等的。尽管两个值相等,它们的含义不同。undefined是声明了变量但未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null.
4.void运算符对任何值都返回undefined.该运算符通常用于避免输出不应该输出的值,例如,从html的<a>元素调用JavaScript函数时,要正确的做到这一点,函数不能返回有效的值,否则浏览器将清空页面,只显示函数的结果。例如:
<a href="javascipt:test(retun 'xxx')">test</a>
<a href="javascript:void(test(){return 'xxx'})">test</a>
没有返回值的函数真正返回的都是undefined
5.逻辑NOT运算符:如果运算数是undefined会发生错误。
6.top:最顶层的框架,即浏览器窗口自身。window另一个实例是parent。parent对象与装载文件的框架一起使用,要装载的文件也是框架集。如果页面上没有框架,window和self就等于top。
7opener:只在新窗口的最高层window对象才有opener属性,用top.opener更安全。通过opener可以实现跨窗体之间的通讯,但是要保证是在同一域名下,使用时候可以加上document.domain=“”
8.reload()方法调用后的代码可能被执行,也可能不被执行,这由网络延迟和系统资源等因素决定。因此,最好把reload()调用放在最后一行。
9.load事件:在全部的页面载入之前,任何的DOM操作都不能发生。对于window对象可用两种方法定义onload事件处理函数。首先可用使用javascript直接将其分配给window对象:
<html>
<head>
<title>onload test</title>
<script type="text/javascript">
window.onload = function (){alert("load");}
</script>
</head>
<body></body>
</html>
第二种是在html中的body元素上分配:
<html>
<head><title>onload test</title></head>
<body onload="alert('load');"></body>
</html>
这里的问题是load事件实际是发生在窗口上,但在html中,没有任何代码可表示widown对象,所以HTML权威们就决定处理函数要在 <body />元素上分配,然后再后台放入window对象。所以定义在body上面的onload事件就是window.onload。那么能否给document.body.onload分配事件呢?当然可用。问题是,在页面还没有载入完<body>标签前,document.body是不存在的。这就意味着,如果尝试在<head>元素中分配事件处理函数,会报document.body未定义。
10.同源策略:javascript只能在同一个域中进行通讯。同源条件:协议相同,端口相同,域名相同。默认的状况下www.xiaoshenge.com,与app.xiaoshenge.com被认为域名不同,但是只要在每个子域的页面中加入一行document.domain设置即可,document.domain="xiaoshenge.com";
-----------------------------分界线----------------------------
javascript语言精粹与编程实践
“.”和“[ ]”都是对象成员存取运算符,所不同的是:前者右边的运算元
必须是一个标识符,后者中间的运算元可以是变量、直接量或表达式。“.”是
JavaScript 中唯一一个用“标识符”作为运算元的运算符。
由于“.”号要求运算元是标识符,因此对一些不满足标识符命名规则的
属性,就不可以使用“.”号。例如我们前面提到过的“abcd.def”、“1”和“.”
这些属性名。这种情况下就只能使用“[]”运算符
分享到:
相关推荐
这份“JavaScript高级程序设计---笔记归类.pdf”文档显然详细整理了JavaScript的关键知识点,包括ECMAScript规范、DOM操作、数据类型、运算符、流程控制语句、函数以及面向对象编程等。 首先,ECMAScript是...
这份笔记主要基于《JavaScript高级程序设计》这本书,旨在深入探讨ECMAScript、DOM操作以及各种编程特性。 首先,ECMAScript是JavaScript的基础,它定义了语言的语法和基本对象。学习纪要中提到的ECMAScript部分...
JavaScript高级程序设计是每个前端开发者深入理解这门语言所必经之路。这篇学习笔记将带你探索JavaScript的核心概念,包括变量、数据类型、控制流、函数、对象和类等,这些都是构建复杂应用程序的基础。 首先,我们...
《JavaScript高级程序设计》是JavaScript开发者的经典教材,它深入探讨了这门语言的核心概念和技术。这篇读书笔记主要聚焦在第三部分,这部分通常涵盖了更高级的主题,如对象、原型、闭包以及模块化等。结合提供的...
### HTML5高级程序设计学习笔记 #### 一、HTML5新增结构标签 在HTML5中,为了更好地组织页面内容并增强语义性,引入了一系列新的结构标签,这些标签不仅能够帮助开发者更清晰地定义页面的不同部分,同时也为搜索...
本文将深入探讨在"javascript高级程序设计笔记第一章"中提及的关键概念。 首先,ECMAScript(通常简称为ES)是JavaScript的标准化规范,由ECMA国际维护。在ECMAScript中,存在五种基本数据类型:Undefined、Null、...
javaScript高级程序设计笔记.doc
2. 文档对象模型(DOM):是一种用于处理HTML和XML文档的应用程序编程接口,允许JavaScript操作和修改网页内容。 3. 浏览器对象模型(BOM):提供了对浏览器窗口、框架以及其他浏览器特定功能的访问,如navigator...
javacript高级程序设计的个人学习总结,涉及到很多javascript的高级特性
这篇"JavaScript高级程序设计 DOM基础笔记.doc"文档可能详细介绍了以上这些概念,并可能包含实例和实践建议,有助于深入理解DOM操作和JavaScript在网页中的作用。通过学习和实践,开发者能更好地控制网页行为,实现...
javaScript 高级程序设计 第1章 JavaScript简介笔记
网页程序设计是一门涵盖多个关键技术领域的综合学科,主要包括HTML(超文本标记语言...总的来说,这个压缩包提供了一个全面的网页程序设计学习路径,涵盖了从基础到高级的关键技术,适合希望进入网页开发领域的学习者。
这本“JavaScript高级程序设计第四版”的学习笔记涵盖了JavaScript的各个方面,旨在帮助学生、开发者以及对编程感兴趣的人深入理解这一强大的脚本语言。这份笔记是针对毕设、课设、项目实训等实践性学习场景编写的,...
在本节中,我们将深入探讨JavaScript的高级程序设计,特别是关注"第四章(js高级程序设计学习笔记)----2"的主题。这一章很可能涵盖了JavaScript的核心概念,包括原型链(Prototype Chaining)。通过阅读名为...
在《JavaScript高级程序设计》中,对ECMAScript中引用类型的相关知识点进行了详细阐述。引用类型在JavaScript中是非常重要的概念,它们相较于原始类型而言,在内存中占有较大的比重,并且其行为也更为复杂。以下是对...
Window对象 窗口操作 Window对象对操作浏览器窗口非常有用,开发者可以移动或调整浏览器窗口的大小。可用四种方法实现这些操作: moveBy(dx,dy):把浏览器窗口相对当前位置水平移动dx个像素,垂直移动dy个像素。...
JavaScript中的继承机制是其面向对象编程的关键特性,允许一个对象或类从另一个对象或类获取并复用属性和方法。本文将深入探讨JavaScript中的五种主要继承实现方式:对象冒充、call()、apply()、原型链以及混合方式...