js数据结构

时间:2021-6-19 作者:admin

1.JavaScript 中的变量默认是全局变量,严格地说,甚至不需要在使用前进行声明。如果对一 个事先未予声明的 JavaScript 变量进行初始化,该变量就成了一个全局变量。 在 JavaScript 中声明变量,需使用关键字 var,后跟变量名,后面还可以跟一个赋值表达 式。

下面是一些例子:

var number; var name; var rate = 1.2; var greeting = "Hello, world!"; var flag = false;

 

2.
JavaScript
使用标准的算术运算符:

• +
(加)



(减)

• *
(乘)

• /
(除)


%
(取余)

JavaScript
同时拥有一个数学库,用来完成一些高级运算,比如平方根、绝对值和三角函

数。算术运算符遵循标准的运算顺序,可以用括号来改变运算顺序。

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));

3.根据布尔表达式的值,判断结构让程序可以选择执行哪些程序语句。本书用到的两种判断

结构为
if
语句和
switch
语句。

if
语句有如下三种形式:


简单的
if
语句;


if-else
语句;


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;
}

 

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;
}
var mid = 25;
var high = 50;
var low = 1;
var current = 13;
var found = -1;
if (current < mid) {
mid = (current-low) / 2;
}
else if (current > mid) {
mid = (current+high) / 2;
}
else {
found = current;
}

另外一个判断结构是
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;
JavaScript的编程环境和模型 | 5case "10":
monthName = "October";
break;
case "11":
monthName = "November";
break;
case "12":
monthName = "December";
break;
default:
print("Bad input");
}

这是解决该问题最高效的方式吗?不是,但是这个例子充分展示了
switch
语句的工作原理。

JavaScript
中的
switch
语句和其他编程语言的一个主要区别是:在
JavaScript
中,用来判

断的表达式可以是任意类型,而不仅限于整型;而
C++

Java
等一些语言就要求该表达

式必须为整型。事实上,如果你留意观察,上面那个例子中代表月份的数字其实是字符串

类型。不用将它们转化成整型,就可以直接在
switch
语句中使用。

 

4.
从本质上都具有循环的特性。两种循环结构:
while

环和
for
循环。

如果希望在条件为真时执行一组语句,就选择
while 循环。

var number = 1;
var sum = 0;
while (number < 11) {
sum += number;
++number;
}
print(sum); // 显示 55

如果希望按执行次数执行一组语句,就选择
for 循环。

 

var number = 1;
var sum = 0;
for (var number = 1; number < 11; number++) {
sum += number;
}
print(sum); // 显示 55

 

var numbers = [3, 7, 12, 22, 100];
var sum = 0;
for (var i = 0; i < numbers.length; ++i) {
sum += numbers[i];
}
print(sum); // 显示 144

5. 
函数

JavaScript
提供了两种定义函数的方式,一种有返回值,一种没有返回值(这种函数有时

也叫做
子程

void
函数
)。

 

function factorial(number) {
var product = 1;
for (var i = number; i >= 1; --i) {
product *= i;
}
return product;
}
print(factorial(4)); // 显示 24
print(factorial(5)); // 显示 120
print(factorial(10)); // 显示 3 628 800

 

function curve(arr, amount) {
for (var i = 0; i < arr.length; ++i) {
arr[i] += amount;
}
}
var grades = [77, 73, 74, 81, 90];
curve(grades, 5);
print(grades); // 显示 82,78,79,86,95

JavaScript
中,函数的参数传递方式都是按值传递,没有按引用传递的参数。但是
JavaScript

中有保存引用的对象,比如数组,
它们是按引用传递的。

 

6.变量作用域

   变量的
作用域
是指一个变量在程序中的哪些地方可以访问。
JavaScript
中的变量作用域被

定义为
函数作用域
。这是指变量的值在定义该变量的函数内是可见的,并且定义在该函数

JavaScript
的编程环境和模型 |
7
内的嵌套函数中也可访问该变量。

 

在主程序中,如果在函数外定义一个变量,那么该变量拥有
全局作用域
,这是指可以在包

括函数体内的程序的任何部分访问该变量。下面用一段简短的程序展示全局作用域的工作

原理:

function showScope() {
return scope;
}
var scope = "global";
print(scope); // 显示 "global"
print(showScope()); // 显示 "global"

函数
showScope()
可以访问变量
scope
,因为
scope
是一个全局变量。可以在程序的任意位

置定义全局变量,比如在函数定义前或者函数定义后。


showScope()
函数内再定义一个
scope
变量,看看这时发生了什么:

function showScope() {
var scope = "local";
return scope;
}
var scope = "global";
print(scope); // 显示 "global"
print(showScope()); // 显示 "local"

showScope()
函数内定义的变量
scope
拥有局部作用域,而在主程序中定义的变量
scope

一个全局变量。尽管两个变量名字相同,但它们的作用域不同,在定义它们的地方访问时

得到的值也不一样。

这些行为都是正常且符合预期的。但是,如果在定义变量时省略了关键字
var
,那么一切

都变了。
JavaScript
允许在定义变量时不使用关键字
var
,但这样做的后果是定义的变量自

动拥有了全局作用域,即使你是在一个函数内定义该变量,它也是全局变量。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。