《零基础学JavaScript》 JavaScript第三课 Making Decisions(上)
(此文章又长又臭,但是极其形象易懂,仅适合于JavaScript初学者,尤其是零基础者)
作者博客:http://www.haoxiaoru.info/
3.0 引言
输入到表格中的信息根据你网站用户的地区和性别的不同,可能需要不同的确认信息。在页面上移动的对象碰到浏览器窗口边界时,要改变方向。页面某一部分的背景可能要随着页面呈现时间而改变。
涉及到应该执行那个任务时,这些动作都需要JavaScript来做决定。JavaScript通过测试布尔值的结果是true或false来做决定。JavaScript根据结果是否为true来采取合适的动作。
我们使用的大部分变量不是布尔值。我们通过比较来把其他变量类型转换为布尔值。可以比较两个值是否相等,相等时返回true,不相等时返回false。如果我们比较两个数字时,一个比另一个大,返回true,不必另一个大,返回false。
JavaScript使用比较运算符来比较两个数字、字符串或其他类型的变量,然后得出true或false的布尔结果。
一旦我们获得一个布尔结果,就可以判断这个值,来决定接下来要执行哪部分代码。JavaScript通过if语句来判断。基于通过if判断来做的决定,我们可以用JavaScript来执行任何数量的完全不同的任务。
这个系列的教程我们要探索JavaScript提供的通过执行比较和判断来决定执行哪部分代码的不同方法。
3.1 比较运算符
JavaScript已经使用“=”做了赋值运算符。不能用同一个运算符执行同一个任务,那么就需要另一个运算符来比较两个变量的值是否相等。JavaScript提供两个运算符来比较,分别是 “==” 和 “===” 。
“==” 运算符比较两个值是否相等,如果相等就返回true;如果两个值是不同的数据类型(比如一个是数字一个是字符串),那么在比较之前,他们要被转换成相同的数据类型。JavaScript可以转换两种数据类型之一到另一种,而不改变变量包含的值。
“===” 与 “==” 的不同之处是,它不转换数据类型。只有要比较的两个变量的值和数据类型都相同的时候,才会返回true。
所以 ‘3′ == 3 返回true,而’3′ === 3 返回false。
--------------------------------------------------------------------------------
比较不只是比较是否相等,有时候我们还需要比较两个值是否不相等,哪个大,哪个小。JavaScript也提供了这些条件的测试方法。
比较两个值是否不相等,我们使用运算符 “!=” 或 “!==”。两者的不同在于,”!=” 不考虑数据类型,如果两个值相等就返回false,不相等就返回true;”!==” 考虑数据类型,如果两个值相等且数据类型也相同就返回false,其他情况则返回true。
< 运算符比较左边的值小于右边,<=允许两边值相等。同理
> 运算符比较左边的值大于右边,>=允许两边值相等。
这里有一些比较结果返回true的例子。
‘2′ != ’smith’
‘3′ !== 3
5 < 7 ; 4 <= 7 ; 7 <= 7
‘abacus’ <= 'calculator'
‘abacus’ < 'abate'
‘Z’ < 'a'
‘10′ < '2'
1 两边字符串不相等
2 数据类型不同
3 显而易见
4 a在字母表中比c先出现
5 字符串比较时,逐字母比较,前三个字母相等,就比较c和t。
6 笔记字符串时,其实是比较它们对应的ASCII码值。大写字母小于小写字母。
7 字符串中包含字母时也是逐个比较。1<2。
这里有一些比较结果返回false的例子。
‘2′ == ’smith’
‘3′ === 3
7 < 7
‘abacus’ >=’calculator’
‘A’ < '9'
1 字符串不等
2 数据类型不等
3 显而易见
4逐个比较ASCII码值,a
5 ASCII码值,数字小于字母
注意:ASCII编码的顺序从小到大是:数字——大写字母——小写字母。参见百科