2.3 程序的构成

  • 表达式,用于计算并得到值;
  • 变量,用于保存数据,以便将来使用;
  • 语句,用于执行脚本的操作;

2.3.1 表达式

  • 2
  • 2+8.1+5
  • (2+8.1)* 5
  • 9>4
  • 9>4 && 1===2
  • "dog"+"house"
  • "Hello".length
  • "Hello".replace("e","u")
  • [2,3,5,7,11].join("+")
  • (function(x) {return x*5;}(8))
  • ......

所谓值,有数值、文本和真值(truefalse。文本值需加上引号
表达式的含义取决于其中圆括号的位置,以及运算符的优先级和结合性。优先级高的运算符必须先先计算。

  • 5 + 2 * 4 的计算顺序实际上是 5 + (2 * 4),因为乘号相对于加好拥有更高优先级
  • 1 < 10 && 2 >= 5 的计算顺序是 ( 1 < 10 ) &&(2 >= 5),因为大于、小于等关系运算比逻辑运算符优先级高

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
        优先级                运算符                说明
         
         最高                   !                   非
                             * / %              乘,除,取模
                              + -                 加,减
                           < <= > >=     小于,小于等于,大于,大于等于
                            === !==          等于(严格),不等于
        
         最低                &&  ||                与,或
    <script type="text/javascript">
    </script>
</body>

  • 5 - 2 - 4 意思是 ( 5 - 2 ) - 4,因为减号向左结合,通俗说,就是先算左边的减法
  • 6 * 5 / 2 * 8 意思是 (( 6 * 5 )/ 2 )) * 8 , 同样是因为具有相同优先级的乘和除法运算是向左结合的。

小练习

在输入表达式同时,口中说出表达式含义结合优先级概念
  1. 2 * 4 < 100 / Math.sqrt(11):2乘以4的值小于100除以根号11的值吗?
  2. 17 % 3 :17除以3的余数
  3. 22 * (16.5 + Math.PI ):16.5加上π的值乘以22 or 16.5与π的和的22倍
  4. "capybara".length === 2 || Math.pow(3,5) < Math.pow(5,3): 字符串“capybara”的字符长度 等于2吗?如果不是,3^5小于5^3吗?
  5. 9 > 4 && 1 === 2 : 9大于4与1严格相等于2两者是否都为真?或 9是否大于4,如果是,1是否严格相等于2?
  6. 按运算符优先级和结合性给表达式: !x && y || z + 5 * 4 >= 3 == y && z 加上圆括号。
    (((!x) && y) || ((((z + (5 * 4)) >= 3) == y) && z))
  7. x < y || x < z :x是否小于y,如果是,x又是否小于z?

2.3.2 变量

重复的不多说,将变量理解为一个带名字的容器即可

  • 变量名字最好能够反应各自的用途,那些保存固定不定值的变量全部使用大写字母,即常量,或者直接声明const name = "Queen";,这样就声明了一个常量。
  • 变量名必须以字母、$(美元符号)、_(下划线)开始,只能包含字母、数字、下划线和美元符号。
  • 不能使用JavaScript中的保留字作为变量名。具体可以自行查询保留字相关信息。

2.3.3 语句

要构成完整的脚本,必须将表达式和变量连在一起组成语句。表达式产生一个值,语句代表一个操作

  • 声明变量;
  • 调用预定义操作;
  • 用新值替换变量中原有的值;
  • 在条件为真情况下执行某个操作;
  • 在条件为真情况下反复执行某个操作;

下面这个脚本显式如果投资年利率为5%,从1000元到5000元增长过程。

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            var year = 0;
            var total = 1000;
            while (total<5000){
                year++;
                total *= 1.05;
                $("body").append("<div>"+"你有: "+Math.floor(total)+" 元 "+"  现在是第"+year+"年"+"</div>")};
        </script>
    </body>

小练习

1.计算从2%和35%增长到自身的5倍需要的次数。

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            var initialA = 0.02;
            var timeA = 0;
            var initialB = 0.35;
            var timeB = 0;
            while (initialA<0.1){
                initialA += 0.01;
                timeA++;
                $("body").append("2%增长 "+" 第 "+timeA+" 次 "+"增长至"+initialA+"<br />")
            };
            while (initialB<1.75){
                initialB += 0.01;
                timeB++;
                $("body").append("35%增长 "+" 第 "+timeB+" 次 "+"增长至"+initialB+"<br />")
            };
        </script>
    </body>
</html>

2.5 JavaScript编程语言

每一种编程语言都是为了一定目的才发明的。比如,LISP是为了研究人工智能而开发的,Fortran专注于数值处理,C用于系统编程,ML主要为了证明定理,Smalltalk适合图形用户界面,TeX用于排版,Java(最初)是为了开发可以下载的小应用。设计JavaScript目的则是为了让程序员能够访问和操作Web浏览器、图片编辑器、文字处理器和交互式文档。因为所有计算机和智能手机都安装有Web浏览器,而每个浏览器中几乎都在运行JavaScript,所以JavaScript已经成为了世界上最流行的语言之一(这个之一是我加的:)

今天浏览器中运行的JavaScript基本都兼容ECMAScript第三版或ES3。09年,ES5已经标准化,几乎所有浏览器都升级了自己的JavaScript引擎。ES5是ES3的超集,所有兼容ES3的程序也都是ES5程序,ES5只是在ES3的基础上添加了新特性。

Question:除了了浏览器,还有什么应用可以运行JavaScript?
查阅:运行在客户端的脚本,用户的浏览器就是他的执行平台,而不需要依靠其他任何设备或者软件,浏览器称为javascript的运行环境,也叫做宿主环境,浏览器只是js的其中一种宿主环境,比如flash同样支持js代码,所以flash player也是js的一种宿主环境
按照良好习惯正确编写的js代码执行是很迅速的,因为他不需要连接到服务器端,于是省去了信息在与服务器端通信时所花费的时间,这也是javascript的一大优势和他现在被广泛应用的一个原因。

Exercise:

1.画出如下HTML文档的结构图

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>JavaScript Temperature Converter</title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    </head>
    <body>
        <h1>Temperature Conversion</h1>
        <p>
            <input type="text" id="Temperature" />
            <input type="button" value="F to C" id="f_to_c" />
            <input type="button" value="C to F" id="c_to_f" />
        </p>
        <p id="result"></p>
        <script src="js/js_test.js"></script>
    </body>
</html>

图片描述

2.给表达式加上等价括号

  • 2 * 5 - 7 / -6 + 4((2 * 5)-(7 / -6))+ 4
  • 2 < 4 || true && false((2 < 4)|| true) && false
  • 1 < 2 < 3(1 < 2) < 3
  • !x || !y && z((!x) || (!y))&& z
  • --4(-)- 4

Queen
139 声望20 粉丝