javascript 权威指南笔记

article/2025/10/5 13:19:07

1.如果没有用var语句给一个变量指初始值,那么虽然这个变量被声明了,但是在给它存一个值之前,它的初始值就是 undefined

2.使用var语句多次声明一个变量不仅是合法的,而且也不会造成任何错误。如果重复的声明有一个初始值,那么它担当的不过是一个赋值语句的角色。

3.虽然在全局作用域中编写代码时可以不使用var语句,但是在声明局部变量时,一定要使用var 语句。下面的代码说明了如果 不这样做,将会发生什么情况。

 scope="global";
function checkscope(){scope="local";alert(scope) ;
}
checkscope() ;
 scope="global";
function checkscope(){scope="local";alert(scope) ;
}
checkscope() ;
 scope="global";
function checkscope(){scope="local";alert(scope) ;
}
checkscope() ;
 scope="global";
function checkscope(){scope="local";alert(scope) ;
}
checkscope() ;
 scope="global";
function checkscope(){scope="local";alert(scope) ;
}
checkscope() ;
 scope="global";function checkscope(){scope="local";  // 改变了全局变量alert(scope) ;
}
checkscope() ;

这种情况不是不可以避免的,只要在声明所有变量时全部用var 。

var scope = "global scope" ;
function checkscope(){var scope = "local scope" ;function nested(){var scope = "nested sciope" ;alert(scope) ;}nested() ;
}
checkscope() ;
var scope = "global scope" ;  // 一个全局变量
function checkscope(){var scope = "local scope" ;// 一个局部变量function nested(){var scope = "nested sciope" ;alert(scope) ; // 输出局部变量}nested() ;
}
checkscope() ;
4.没有块级作用域
注意,和C、C++以及Java不同,JavaScript没有块级作用域。函数中声明的所有变量,无论是在哪里声明
的,在王整个函数中它们都是有定义的。在下面的代码中,变量i、j和中的作用域是相同的,它们三个
在整个函数体中都有定义。如果这段代码是用C、C++或Java编写的。情形就不是这样了。
var scope = "global" ;
function f(){alert(scope) ;  // 显示"undefined" 而不是"global"var scope = "local" ;// 变量在此外被初始化,但到处都有定义alert(scope) ;// 显示local
}
||

var f(){var scope ; // 全局声明alert(scope) ;scope = "local" ;// 此处初始化alert(scope) ;
}
这个例子说明将所有的变量声明放集中起来放在函数的开头是个好的编程习惯。

5.深入了解变量作用域

6.表达式和运算符

7.运算符

相等(==)/ 等同与(===)

不等(!=)/ 不等同与(!==)

8.JavaScript中字符串的比较

是严格地逐个字符进行比较,采用的是每个字符在Unicode编码集中的数值。虽然在某些情况下,Unicode
标准允许采用不同的字符序列对等价的字符串进行编码,但是JavaScript的比较运算符检测不出这些编码
差别,它们假定所有字符串都是以范式形式表示的。尤其要注意,字符串比较时会区分大小
写,在Unicode编码中(至少对Asscii码子集来说),所有大写字母小于所有小写字母。如果你不熟悉这一
规则,它会产生令你困惑的结果。例如,对于<运算符,字符串“Zoo”小与字符串“aardvark”

9.in运算符和instanceOf 运算符

10.由于 JavaScript 会自动插入分号,所以在 return 关键字和其它的表达式之间不要换行。

11.with 语句使用

with(object)

statement

这一语句能够将object 添加到作用域的头部,然后执行statement ,再把作用链恢复到原始状态。

在实际使用中,使用with 语句可以大量减少输入。

eg: with(frames[1].document.forms[0]){

name.value = '' ;

address.value="" ;

email.value="" ;

}

这就减少了输入,因为不尽必在每个表单属性前都加前缀 frames[1].document.forms[0]

另:使用了with 语句的 JavaScript 的语句难优化,要比不使用with 的效率慢很多。

可改写为:

var form = frames[1].document.forms[0] ;

form.name.value = "" ;

form.adress.value="" ;

form.email.value="" ;

12.javascript arguments 并非一个真正的数组,它是一个Arguments对象。虽然每个Arguments 对象都定义了带编码的数组元素和length属性,但它不是数组,将它看成偶然

具有带编码属性的对象更合适一些。

function a(a){alert(a) ;  // 10arguments[0]=null;alert(a) ;  // null
}
a(10);
13.javascript CALLEE函数

引用自身,当前正在执行的函数。这对于匿名函数非常有用。

var a = function(x){if(x==1) return x ;return x*arguments.callee(x-1) ;
}
alert(a(3)) 
14.定义自己的函数属性

当函数需要一个在整个调用过程中都不改变的值时,使用Function 对象的属性比定义全局变量(这会使名字空间变的散乱)更加方便。

// 创建并初始化静态变量
//因为函数在执行码前处理,所以在函数声明前不能真正实现这个赋值运算
test._a = 10 ;
function test(){ //alert(test._a++) ;
}

15.JS NEGATIVE_INFINITY 属性 - 用法

NEGATIVE_INFINITY 属性

返回比 JScript 能够表示的最小负数( -Number.MAX_VALUE )更小的值。

number .NEGATIVE_INFINITY

number 参数是 Number 对象.

说明

在能够访问 NEGATIVE_INFINITY 属性前不必创建 Number 对象。

JScript 将 NEGATIVE_INFINITY 值显示为 -infinity。该值数学上的作用与负无穷相同。

要求

版本 2

请参阅

MAX_VALUE 属性 | MIN_VALUE 属性 | NaN 属性 | POSITIVE_INFINITY 属性 | toString 方法

应用于: Number 对象


16.对象

方法有个很重要的属性,,即在函数体内部,关键字 this 的值的就变成了调用该方法的对象 ,


17.protoType原型对象和继承

每个对象都有原型对象 ,原型对象的属性是以它为原型的对象的属性。也就是说每个对象都继承原型对象的所有属性。

一个对象的原型是由创建并初始化该对象的构造函数定义的。JavaScript 中所有的对象都有protoType 属性,它引用了一个对象。虽然原型对象初始化时是空的,但是你在其中定义的任何属性都会被该对象创建的对象全部

18.JavaScript 中字符串的比较

19.框架之间的关系

一个窗口中的任何框架都可以使用window 对象的属性 frames,parent,top属性来引用其它框架。每个窗口都有frames属性。这个属性引用一个window对象数组,其中每个元素代表的是这个窗口中包含的框架(如果一个窗口中没有任何框架,那么frames数组[]是空的,frames.length是0)。这样,窗口(或框架)就可以使用frames[0]来引用它的第一个框架,使用frames[1]引用第二个框架,以此类推。同样,运行在一个窗口中的JavaScript 代码可以引用它的第二个框架的第三个子框架,代码如下:

frames[1].frames[2]

每个窗口还有一个parent属性,它引用包含这个窗口的window对象。这样窗口中的第一个框架就可以引用它的兄弟框架,代码如下:parent.frames[1]

如果一个窗口是顶级窗口,而不是框架,那么parent属性引用的就是这个窗口本身:parent==self .// 用于顶层窗口。




http://chatgpt.dhexx.cn/article/Cu9vAHJD.shtml

相关文章

【WCF】使用WCF测试客户端

【是什么】 WCF测试客户端&#xff08;WCF Test Client&#xff09;是一个用来测试WCF服务程序的调试工具&#xff0c;能够使开发WCF服务更加方便。 【打开方法】 有四种打开方式 1、找到Vs的安装路径&#xff0c;找到Common7\IDE\WcfTestClient.exe&#xff0c;双击打开。如…

WCF 介绍(一)

前言&#xff1a;WCF是微软基于SOA&#xff08;Service Oriented Architecture&#xff09;推出的.Net平台下的框架产品&#xff0c;它代表了软件架构设计与开发的一种发展方向&#xff0c;在微软的战略计划中也占有非常重要的地位。了解和掌握WCF&#xff0c;对于程序员特别是…

C#中如何使用WCF

一、什么是WCF Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口&#xff0c;可以翻译为Windows通讯接口&#xff0c;它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。 从我现在获得的知识&#xff0c;我理解的WCF重点是分布式&a…

WCF Debug 调试

关于WCF的调试&#xff0c;MSDN给出如下说明&#xff0c;可能是由于我的水平问题&#xff0c;个人无法完全看懂&#xff0c;所以自己总结了一点WCF的调试技巧。仅供参考。 如何开始调试 WCF 服务:  通常WCF可以部署成Windows service 和Web service。 1.对于WebService通常…

WebService,WCF,WebApi区别与特点

WebService,WCF,WebApi区别与特点 于 2019-06-10 10:11:00 发布7872 收藏 32 文章标签&#xff1a; c# 测试 操作系统 版权 在.NET平台下&#xff0c;有大量的技术让你创建一个HTTP服务&#xff0c;像Web Service&#xff0c;WCF&#xff0c;现在又出了Web API。在.NET平台…

WCF入门讲解

一、简单WCF服务TCP和HTTP传输协议 二、实例管理 1、实例管理-单调服务 介绍&#xff1a;单调服务的一个实例创建于每个方法调用之前&#xff0c;调用完成后会立即销毁该服务实例。 2、实例管理-会话 介绍&#xff1a;一个配置了私有会话的服务通常无法支持多达几十个&#x…

关于WCF服务的使用(非常详细的步骤)

&#xff08;附上一篇对WCF基础讲解挺详细的一篇文章http://www.cnblogs.com/wayfarer/archive/2008/04/15/1153775.html&#xff09; WCF是.NET提供的一种服务&#xff0c;可以将自己写的程序&#xff08;完成特定功能&#xff0c;比如从数据库中读取数据操作等&#xff09…

WebService、WCF、WebAPI之间的区别

Web Service 1、它是基于SOAP协议的&#xff0c;数据格式是XML 2、只支持HTTP协议 3、它不是开源的&#xff0c;但可以被任意一个了解XML的人使用 4、它只能部署在IIS上 WCF 1、它是基于SOAP协议的&#xff0c;数据格式是XML 2、这个是Web Service&#xff08;ASMX&#xff09…

WCF 简介

一、WCF概述 1&#xff09; 什么是WCF&#xff1f; Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架。借助 WCF&#xff0c;可以将数据作为异步消息从一个服务终结点发送至另一个服务终结点。服务终结点可以是由 IIS 承载的持续可用的服务的一部分…

网络编程之WCF编程:WCF服务和客户端的建立,回调

1.概念 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口&#xff0c;可以翻译为Windows通讯接口。它是.NET框架的一部分&#xff0c;由 .NET Framework 3.0 开始引入。 WCF的终结点有三个要素组成&#xff0c;分别是地址&#xff08;Add…

WCF 学习总结2 -- 配置WCF

前面一篇文章《WCF 学习总结1 -- 简单实例》一股脑儿展示了几种WCF部署方式&#xff0c;其中配置文件(App.config/Web.config)都是IDE自动生成&#xff0c;省去了我们不少功夫。现在回过头来看看IDE提供的Wcf Service Library项目模板中的默认服务端配置文件——App.config里面…

[老老实实学WCF] 第一篇 Hello WCF

老老实实学WCF 第一篇 Hello WCF WCF(Windows Communication Foundation)是微软公司推出的面向服务技术的集大成者&#xff0c;涵盖继承了其之前发布的所有的分布式应用程序的编程模型&#xff0c;涉及面之广&#xff0c;技术之复杂&#xff0c;结构之零散&#xff0c;让我们…

WCF入门教程(一)

WCF入门教程&#xff08;一&#xff09; 一、 概述二、基于Asp.net 的应用程序开发与面向服务开发三、第一个WCF程序IUser代码:User代码 四、场景五、将WCF程序寄宿在B服务器的IIS之上六、在客户端[A服务器]创建服务的引用七、使用WCF的方法九、代码下载 一、 概述 Windows Co…

WCF简介

WCF是Windows Communication Foundation的缩写&#xff0c;是MS为SOA&#xff08;Service Oriented Architecture 面向服务架构&#xff09;而设计的一套完整的技术框架。WCF是Microsoft为构建面向服务的应用提供的分布式通信编程框架,使用该框架&#xff0c;开发人员可以构建跨…

无废话WCF入门教程一[什么是WCF]

一、概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口&#xff0c;可以翻译为Windows通讯接口&#xff0c;它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。 WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Inter…

C# WCF入门

目录标题 一、什么是WCF二、第一个WCF程序三、WCF服务的使用 一、什么是WCF WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的、安全、可信赖、事务性的解决方案&#xff0c;且能与已有系统兼容协作。WCF是微软分…

wcf学习--建立最简单的WCF服务

在VS2010里建立一个最简单的WCF服务&#xff0c;基本流程如下&#xff1a; 一&#xff1a;新建WCF应用 首先&#xff0c;新建一个WCF服务的应用&#xff08;这里以framework 4.0为例&#xff09;&#xff0c;如下图所示&#xff0c; 建立完成之后&#xff0c;VS将自动生成一个最…

什么是WCF

文章目录 一、概述二、基于Asp.net 的应用程序开发与面向服务开发三、第一个WCF程序四、场景五、将WCF程序寄宿在B服务器的IIS之上六、在客户端[A服务器]创建服务的引用七、使用WCF服务端的方法 一、概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应…

面向服务的WCF编程(一)

第七章&#xff1a;WCF入门 课后习题&#xff1a; 1.简要介绍WCF服务的承载方式及其特点。 WCF服务的承载方式包括&#xff1a;利用IIS或者WAS承载、利用Windows服务承载、自承载。其特点如下&#xff1a; &#xff08;1&#xff09;用IIS或者WAS承载&#xff1a;这是最常用…

WCF 详解

一、什么是WCF&#xff1f; ​ .NET Framework 3.0 中开始引入一种专门用来构建分布式系统的API——WCF&#xff0c;与过去所有的其他分布式API&#xff08;如DCOM,.NET Remoting,XML WebService,消息队列&#xff09;有所不同&#xff0c;WCF提供统一的&#xff0c;可扩展的编…