数据和判定(一)

简介: 数据和判定是所有“智能”程序的基础。在这章的开始,我们先看一下JavaScript是如何理解、或表示数据的。

数据和判定是所有“智能”程序的基础。在这章的开始,我们先看一下JavaScript是如何理解、或表示数据的。这个很重要,因为JavaScript包含许多数据类型data types),而且根据它的数据类型来操作数据。错误的使用不同的数据类型会导致意想不到的结果。我们来看一些常见的数据类型问题,你会明白如何把数据的类型转化成其他的。

 

我们也会学习条件语句conditional statements)和循环loops):两种最有价值的判定工具。为了在计算机语言中进行判定,我们需要让程序知道响应特定的情况应该发生什么,这就需要条件语句来解决。另一方面,循环允许你简单的重复某一动作直到特定的条件被满足。举例来说,你可能需要循环表单里的每个输入以检查它包含的信息是否合法。

我会在这章中从如下许多方面阐述JavaScript

l        JavaScript中进行分类和操作:数据类型和数据运算符

l        变量

l        数据类型转换

l        数据对象简介:StringDateMath对象

l        数组:保存有顺序的数据集合,例如一个购物车中的商品

l        使用条件语句、循环和赋值进行判定

                                                                                  

 

n        注解:这一章中的例子会尽可能的保持简单,因此我们使用document.write()作为一种反馈机制,可以让你方便看到结果。你会在以后的章节中,你会学到其它更流行和通用的方法。

                                                                                  

 

2.1.    数据、数据类型和数据运算符

数据时用来保存信息的。为了更有效的保存数据,JavaScript需要为每个数据分配一个类型(type。这个类型规定了使用这个数据能来什么或不能干什么。举个例子,JavaScript中有一种数据类型是数值(number,它允许对它拥有的数据进行一些计算。

JavaScript中用来保存数据的三种基本类型是:

l        字符串(String:一连串的字符,如“some characters”。

l        数值(Number:一个数字,包括浮点数。

l        布尔值(Boolean:包含一个真值(true)或假值(false)。

有时候也被称作基本(primitive数据类型,因为它们只保存单个值。

还有两个不同的基本数据类型。它们不保存信息,用来对特定的情况给出我们警告:

l        空值(Null):表示没有数据。

l        未定义Undefined):表示没有定义并赋给其值。 当你处理变量的时候,这个非常重要。

在这一章中我们会大量的使用这些数据类型。

2.1.1.         字符串数据类型

JavaScript解释器要求字符串数据被单引号或双引号括起来(大家都知道的分隔符)。举个例子,这个脚本中,会往页面中写入some characters

<html>

<body>

<script type="text/javascript">

document.write( "some characters" );

</script>

</body>

</html>

 

引号不会被写到页面上因为它们不是字符串的一部分;它们只是简单的告诉JavaScript字符串的开始和结束的地方。我们使用单引号也可以轻松的做到:

<html>

<body>

<script type="text/javascript">

document.write( 'some characters' );

</script>

</body>

</html>

    两种方法都可以,只要你使用与其打开字符串相同的方法关闭这个字符串,不要试图把它像以下的方式分割开:

document.write( 'some characters" );

document.write( "some characters' );

当然,你可能需要在字符串本身中使用单引号或者双引号,这种情况下你需要使用一个不同的分隔符。如果你使用双引号来标记,这个指令会按你意愿被解释成:

document.write( "Paul's characters " );

但如果你使用单引号来进行标记,它们不会解释成:

document.write( 'Paul's characters' );

这样做会给你一个语法错误,因为JavaScript解释器以为这个字符串在Panl中的l后结束了,它不明白后面要发生什么。

                                                                                  

 

n        注解:JavaScript语法和英语的语法类似,是使语言“可理解”的规则集合。就像英语中一个语法错误会使一个句子显得没有意义,JavaScript中的一个语法错误也会使这个指令没有意义。

                                                                                  

 

你可以使用单引号标志来分隔包含双引号的字符串或者相反:

document.write( "Paul's numbers are 123" );

document.write( 'some "characters"' );

另一方面,如果你想在你的字符串中既包含单引号,也包含双引号,你需要使用转义序列。 实际上,使用转义序列来代替我们使用的引号是一个好的变成习惯。因为它们使你的代码更加易懂。

2.1.1.1.      转义序列

转义序列在你想使用键盘不能打印的字符使得情况下也是有用的。(像日元符,¥, 在西方的键盘中)

2-1列出了一些最常用的转义序列

2-1。常用的转义序列

         

转义序列

字符表示的意思

 

/b

撤销。

/f

换页。

/n

换行。

/r

回车符。

/t

制表符。

/'

单引号。

/"

双引号。

//

反斜线。

/xNN

NN 是一个十六进制的数,表示拉丁字符集中的一个字符(拉丁字符集是说英语国家的规范)。

 

/uDDDD

DDDD 是一个十六进制的数,表示一个Unicode字符。

                      

 

我们来改进一下这个会引起语法错误的字符串:

document.write( 'Paul's characters' );

使用这个转义序列 (/') 就可以被正确的解释了:

document.write( 'Paul/'s characters' );

这个转义序列告诉JavaScript解释器,这个单引号属于字符串本身,而不是一个分隔符。

ASCII是一个字符编码方法,它使用0-254的值。作为一种选择,我们可以使用十六进制/xNN 转义序列.表示的ASCII值来指定一个字符。这个字符C在十进制中是67,在十六进制中是43,因此我们可以像这样使用转义序列来往页面中进行写入它:

document.write( "/x43" );

这个转义序列 /uDDDD 和它的工作原理大致相同,但它是用Unicode字符编码方法。Unicode字符编码方法拥有65535个字符。 在前面的一二百个ASCII编码和Unicode编码中字符集是相似的,你往页面中写入字符C可以使用如下的方式:

document.write( '/u0043' );

你可以获得ASCIIUnicode的详细信息,最好的查找信息的地方就是网络。对于Unicode, 可以试一下 http://www.unicode.org

 
相关文章
|
6月前
|
UED
Bug级别判定法则
Bug级别判定法则
366 0
|
算法 搜索推荐 决策智能
Qtech 暑假未讲到的算法(不完全)
优先队列、堆、RMQ问题(区间最值问题,可以用线段树解决,还有一个Sparse-Table算法)、排序二叉树、划分树、归并树.....
48 0
|
前端开发
12 # 根据 x 值来判断是成功还是失败
12 # 根据 x 值来判断是成功还是失败
36 0
|
2月前
|
Apache
判定数据中是否包含某一属性的方法
判定数据中是否包含某一属性的方法
|
消息中间件 数据采集 Kafka
每次join之后没有正确处理数据的重复或缺失情况
每次join之后没有正确处理数据的重复或缺失情况
122 1
|
C语言
文件的结束判定
文件的结束判定
97 0
文件的结束判定
|
数据采集 机器学习/深度学习 运维
异常值检测!最佳统计方法实践(代码实现)!⛵
数据集中的异常值,对于数据分布、建模等都有影响。本文讲解两大类异常值的检测方法及其Python实现:可视化方法(箱线图&直方图)、统计方法(z分数&四分位距)。
952 2
异常值检测!最佳统计方法实践(代码实现)!⛵
筛选大于改变,点醒多于植入
筛选大于改变,点醒多于植入,期待与更多人交流!
80 0
筛选大于改变,点醒多于植入
|
前端开发 程序员
大量if else判断如何优化?@Valib详解
大量if else判断如何优化?@Valib详解
大量if else判断如何优化?@Valib详解
|
存储 安全 PHP
类型判定| 学习笔记
快速学习类型判定。