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))
- ......
所谓值,有数值、文本和真值(true
和 false
)。文本值需加上引号。
表达式的含义取决于其中圆括号的位置,以及运算符的优先级和结合性。优先级高的运算符必须先先计算。
- 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 , 同样是因为具有相同优先级的乘和除法运算是向左结合的。
小练习
在输入表达式同时,口中说出表达式含义(结合优先级概念)
- 2 * 4 < 100 / Math.sqrt(11):2乘以4的值小于100除以根号11的值吗?
- 17 % 3 :17除以3的余数
- 22 * (16.5 + Math.PI ):16.5加上π的值乘以22 or 16.5与π的和的22倍
- "capybara".length === 2 || Math.pow(3,5) < Math.pow(5,3): 字符串“capybara”的字符长度 等于2吗?如果不是,3^5小于5^3吗?
- 9 > 4 && 1 === 2 : 9大于4与1严格相等于2两者是否都为真?或 9是否大于4,如果是,1是否严格相等于2?
- 按运算符优先级和结合性给表达式: !x && y || z + 5 * 4 >= 3 == y && z 加上圆括号。
(((!x) && y) || ((((z + (5 * 4)) >= 3) == y) && z)) - 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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。