js数据结构

Posted web-gmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数据结构相关的知识,希望对你有一定的参考价值。

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 ,但这样做的后果是定义的变量自 动拥有了全局作用域,即使你是在一个函数内定义该变量,它也是全局变量。

以上是关于js数据结构的主要内容,如果未能解决你的问题,请参考以下文章

JS每日一题: react的生命周期有哪些?有什么需要注意的地方?

ajax用在哪些地方(求列举点实际应用的例子..)

名称后跟 :: 必须是类或命名空间名称

搜索 2 个特定字母后跟 4 个数字 Regex

如何用 <br/> 替换某些回车换行符后跟破折号?

前端面试知识点锦集JavaScript