首页 > 代码库 > javascript数据结构和算法 第一章(编程体验)一
javascript数据结构和算法 第一章(编程体验)一
声明和初始化变量
Javascript变量默认是全局作用域的.严格来说,使用之前是不需要定义的.
当一个javascript变量在没有被声明之前直接进行初始化,它就是一个全局变量.在这本书中,我们沿用编译语言如c++和java的编程约定.在使用变量之前都进行声明.
这还有一个附带的好处,声明的变量可以作为本地变量.
我们将会在本章节的后面讨论更多关于变量的作用域.
声明javascript变量,使用关键字var 变量名称.可选择的,可以带上赋值表达式.
下面是一些例子
var number;
var name;
var rate = 1.2;
var getting = “hello world”
var flag = false;
Javascript的算术和数学函数库
Javascript使用标准的数学操作符
+ 加法
- 减法
* 乘法
/ 除法
% 取模运算
Javascript同样有一个数学函数库,你可以使用它来进行高级函数的编写 例如开方,绝对值,三角运算.算术操作符沿用标准的优先级顺序.
当然括号“()”可以用来修改这些优先级顺序.
例子1-1 几个关于算术运算的例子,同时包括了使用几个数学函数库里的函数.
var x = 3;
var y = 1.1;
print(x+y);
print(x*y);
print((x+y)*(x-y))
var z = 9;
print(Math.sqrt(z));
print(Math.abs(y/x));
如果你不想或者不需要上面显示的精度,你可以格式化数字到一个固定的精度.
var x = 3;
var y = 1.1;
var z = x*y;
print(z.toFixed(2));
判断表达式
判断表达式通过使用布尔表达式来判断到底执行哪个表达式语句.
在这本书中我们使用的两个判断表达式是if表达式和switch表达式.
if表达式 有三种形式:
简单的if
if-else 表达式
if-else if表达式
例子1-2 如何编写判断表达式.
var mid = 25;
var high = 50;
var low = 1;
var current = 13;
var found = -1;
if(current < mid){
mid = (current-low)/2;
}
例子1-3演示if-else 表达式
var mid = 25;
var high = 50;
var low = 1;
var current = 13;
var found = -1;
if(current < mid){
mid = (current-low)/2;
}else{
mid = (current + high ) /2;
}
例子1-4 演示if-else if 表达式
var mid = 25;
var high = 50;
var low = 1;
var current = 13;
var found = -1;
if(current < mid){
mid = (current-low)/2;
}else if{
mid = (current + high ) /2;
}else{
found = current;
}
在这本书中另一个判断结构就是switch 表达式.
当你有好多个简单的判断时,这个表达式能提供了一个更加清晰,更加结构化的语句.
例子1-5 演示如何使用switch判断语句.
putstr("Enter a month number: ");
var monthNum = readline();
var monthName;
switch (monthNum) {
case "1":
monthName = "January";
break;
case "2":
monthName = "February";
break;
case "3":
monthName = "March";
break;
case "4":
monthName = "April";
break;
case "5":
monthName = "May";
break;
case "6":
monthName = "June";
break;
case "7":
monthName = "July";
break;
case "8":
monthName = "August";
break;
case "9":
monthName = "September";
break;
case "10":
monthName = "October";
break;
case "11":
monthName = "November";
break;
case "12":
monthName = "December";
break;
default:
print("Bad input");
}
这是解决这个问题最高效的方法吗?不是,但是它很好的演示了switch判断语句是如何工作的.
javascript的switch判断语句 和其他编程语言主要区别就是被判断的表达式可以是任何类型的数据, 不像C++和java那样需要完整的数据类型.
事实上,你会发现在之前的例子中,我们将月份的值当做字符串类型,而不是将它们转化为数字类型.这是因为我们可以在javascript中使用switch语句来比较字符串.