
发表日期: 2021-04-25 13:06:52 浏览次数:185
明港网站推广【明港办理400电话】明港SEO优化、明港微信公众号APP客户端小程序开发、明港网站托管、明港APP开发
明港镇,河南省信阳市平桥区下辖镇,因滨邻明河通衢四海而得名,位于信阳、南阳、驻马店3市,平桥、浉河、正阳、确山、桐柏、泌阳6县(区)接合部,南邻大别山区,北接豫东平原,素有“中原名邑”的美誉。 [1]
明港镇总面积167平方公里,下辖24个村委会、11个居委会,2016年城镇建成区面积为29.4平方公里 [2] 。全镇实现地区生产总值59.89亿元,财政收入1.27亿元。 [2]
明港镇是全国重点镇 [3] 、全国经济发达镇改革试点 [4] 、全国文明村镇 [5] 、全国综合实力千强镇 [6] 、河南省重点镇 [7] 。明港镇交通便利,是中国唯一同时拥有机场、高铁、高速公路出入口的建制镇 [2] 。有城阳城、天目山、皂角树遗址等旅游景点。
ECMAScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。ECMAScript不支持任何创建自定义类型的机制,而所有值最终都将是上述6种数据类型之一。乍一看,好像只有6种数据类型不足以表示所有数据;但是,由于ECMAScript数据类型具有动态性,因此的确没有再定义其他数据类型的必要了。
typeof操作符鉴于ECMAScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof就是负责提供这方面信息的操作符。对一个值使用typeof操作符可能返回下列某个字符串:
"undefined"——如果这个值未定义;
"boolean"——如果这个值是布尔值;
"string"——如果这个值是字符串;
"number"——如果这个值是数值;
"object"——如果这个值是对象或null;
"function"——如果这个值是函数。
下面是几个使用typeof操作符的例子:
![]()
var message = "some string";alert(typeof message); // "string"alert(typeof(message)); // "string"alert(typeof 95); // "number"复制代码
TypeofExample01.htm
这几个例子说明,typeof操作符的操作数可以是变量(message),也可以是数值字面量。注意,typeof是一个操作符而不是函数,因此例子中的圆括号尽管可以使用,但不是必需的。
有些时候,typeof操作符会返回一些令人迷惑但技术上却正确的值。比如,调用typeof null会返回"object",因为特殊值null被认为是一个空的对象引用。Safari 5及之前版本、Chrome 7及之前版本在对正则表达式调用typeof操作符时会返回"function",而其他浏览器在这种情况下会返回"object"。
从技术角度讲,函数在ECMAScript中是对象,不是一种数据类型。然而,函数也确实有一些特殊的属性,因此通过
typeof操作符来区分函数和其他对象是有必要的。
Undefined类型Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:
![]()
var message;alert(message == undefined); //true复制代码
UndefinedExample01.htm
这个例子只声明了变量message,但未对其进行初始化。比较这个变量与undefined字面量,结果表明它们是相等的。这个例子与下面的例子是等价的:
var message = undefined;alert(message == undefined); //true复制代码
UndefinedExample02.htm
这个例子使用undefined值显式初始化了变量message。但我们没有必要这么做,因为未经初始化的值默认就会取得undefined值。
一般而言,不存在需要显式地把一个变量设置为
undefined值的情况。字面值undefined的主要目的是用于比较,而ECMA-262第3版之前的版本中并没有规定这个值。第3版引入这个值是为了正式区分空对象指针与未经初始化的变量。
不过,包含undefined值的变量与尚未定义的变量还是不一样的。看看下面这个例子:
var message; // 这个变量声明之后默认取得了undefined值// 下面这个变量并没有声明// var agealert(message); // "undefined"alert(age); // 产生错误复制代码
UndefinedExample03.htm
运行以上代码,第一个警告框会显示变量message的值,即"undefined"。而第二个警告框——由于传递给alert()函数的是尚未声明的变量age——则会导致一个错误。对于尚未声明过的变量,只能执行一项操作,即使用typeof操作符检测其数据类型(对未经声明的变量调用delete不会导致错误,但这样做没什么实际意义,而且在严格模式下确实会导致错误)。
然而,令人困惑的是:对未初始化的变量执行typeof操作符会返回undefined值,而对未声明的变量执行typeof操作符同样也会返回undefined值。来看下面的例子:
![]()
var message; // 这个变量声明之后默认取得了undefined值// 下面这个变量并没有声明// var agealert(typeof message); // "undefined"alert(typeof age); // "undefined"复制代码
UndefinedExample04.htm
结果表明,对未初始化和未声明的变量执行typeof操作符都返回了undefined值;这个结果有其逻辑上的合理性。因为虽然这两种变量从技术角度看有本质区别,但实际上无论对哪种变量也不可能执行真正的操作。
即便未初始化的变量会自动被赋予
undefined值,但显式地初始化变量依然是明智的选择。如果能够做到这一点,那么当typeof操作符返回"undefined"值时,我们就知道被检测的变量还没有被声明,而不是尚未初始化。
Null类型Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回"object"的原因,如下面的例子所示:
var car = null;alert(typeof car); // "object"复制代码
NullExample01.htm
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用,如下面的例子所示:
if (car != null){
// 对car对象执行某些操作}复制代码实际上,undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true:
alert(null == undefined); //true复制代码
NullExample02.htm
这里,位于null和undefined之间的相等操作符(==)总是返回true,不过要注意的是,这个操作符出于比较的目的会转换其操作数(本章后面将详细介绍相关内容)。
尽管null和undefined有这样的关系,但它们的用途完全不同。如前所述,无论在什么情况下都没有必要把一个变量的值显式地设置为undefined,可是同样的规则对null却不适用。换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。
Boolean类型Boolean类型是ECMAScript中使用得最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。以下是为变量赋Boolean类型值的例子:
var found = true;var lost = false;复制代码
需要注意的是,Boolean类型的字面值true和false是区分大小写的。也就是说,True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符。
虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean(),如下例所示:
![]()
var message = "Hello world!";var messageAsBoolean = Boolean(message);复制代码
BooleanExample01.htm
在这个例子中,字符串`message`被转换成了一个`Boolean`值,该值被保存在`messageAsBoolean`变量中。可以对任何数据类型的值调用`Boolean()`函数,而且总会返回一个`Boolean`值。至于返回的这个值是`true`还是`false`,取决于要转换值的数据类型及其实际值。下表给出了各种数据类型及其对应的转换规则。
| 数据类型 | 转换为true的值 | 转换为false的值 |
|---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ""(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN(参见本章后面有关NaN的内容) |
Object | 任何对象 | null |
Undefined | n/a1 | undefined |
>1 n/a(或N/A),是not applicable的缩写,意思是“不适用”。 这些转换规则对理解流控制语句(如`if`语句)自动执行相应的`Boolean`转换非常重要,请看下面的代码:
var message = "Hello world!"; if (message){ alert("Value is true"); }
BooleanExample02.htm
运行这个示例,就会显示一个警告框,因为字符串message被自动转换成了对应的Boolean值(true)。由于存在这种自动执行的Boolean转换,因此确切地知道在流控制语句中使用的是什么变量至关重要。错误地使用一个对象而不是一个Boolean值,就有可能彻底改变应用程序的流程。

服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878