数据和判定(一)

简介:
数据和判定是所有“智能”程序的基础。在这章的开始,我们先看一下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, 可以试一下 [url]http://www.unicode.org[/url]









本文转自 牛海彬 51CTO博客,原文链接:http://blog.51cto.com/newhappy/76838,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
XML JSON 前端开发
前端代码重复度检测
前端代码重复度检测
62 0
|
8月前
|
消息中间件 数据采集 Kafka
每次join之后没有正确处理数据的重复或缺失情况
每次join之后没有正确处理数据的重复或缺失情况
85 1
|
8月前
|
机器学习/深度学习 算法 计算机视觉
舌体胖瘦的自动分析-曲线拟合-或许是最简单判断舌形的方案(六)
舌体胖瘦的自动分析-曲线拟合-或许是最简单判断舌形的方案(六)
69 0
|
11月前
|
存储 资源调度 数据可视化
R问题|数值模拟流程记录和分享
R问题|数值模拟流程记录和分享
111 0
|
C语言
文件的结束判定
文件的结束判定
74 0
文件的结束判定
筛选大于改变,点醒多于植入
筛选大于改变,点醒多于植入,期待与更多人交流!
57 0
筛选大于改变,点醒多于植入
|
数据采集 机器学习/深度学习 运维
异常值检测!最佳统计方法实践(代码实现)!⛵
数据集中的异常值,对于数据分布、建模等都有影响。本文讲解两大类异常值的检测方法及其Python实现:可视化方法(箱线图&直方图)、统计方法(z分数&四分位距)。
842 2
异常值检测!最佳统计方法实践(代码实现)!⛵
|
数据采集 消息中间件 大数据
爬虫识别-小于自设值的次数-需求及思路|学习笔记
快速学习爬虫识别-小于自设值的次数-需求及思路
51 0
爬虫识别-小于自设值的次数-需求及思路|学习笔记
|
存储 安全 PHP
类型判定| 学习笔记
快速学习类型判定。
61 0
|
前端开发 程序员
大量if else判断如何优化?@Valib详解
大量if else判断如何优化?@Valib详解
大量if else判断如何优化?@Valib详解