JS:Basic JavaScript入门(二)--数组、队列

1. Store Multiple Values in one Variable using JavaScript Arrays


使用 数组,我们可以在一个地方存储多个数据。

你以左方括号[开始定义一个数组,以右方括号]结束定义,并把每个条目之间用逗号隔开,就像这样:
var sandwich = [“peanut butter”, “jelly”, “bread”]。

2. Manipulate Arrays With push


一个简单的方法将数据追加到一个数组的末尾是通过 push() 函数。

.push() 接受把一个或多个参数,并把它“推”入到数组的末尾。

    var arr = [1,2,3];
    arr.push(4);
    // 现在arr的值为 [1,2,3,4]

3. Manipulate Arrays With pop


改变数组中数据的另一种方法是用 .pop() 函数。

.pop() 函数用来“抛出”一个数组末尾的值。我们可以把这个“抛出”的值赋给一个变量存储起来。

数组中任何类型的条目(数值,字符串,甚至是数组)可以被“抛出来” 。

举个例子, 对于这段代码
var oneDown = [1, 4, 6].pop();
现在 oneDown 的值为 6 ,数组变成了 [1, 4]。

4. Manipulate Arrays With shift


pop() 函数用来移出数组中最后一个元素。如果想要移出第一个元素要怎么办呢?

这就是 .shift() 的用武之地。它的工作原理就像 .pop(),但它移除的是第一个元素,而不是最后一个。

5. Manipulate Arrays With unshift


你不仅可以 shift(移出)数组中的第一个元素,你也可以 unshift(移入)一个元素到数组的头部。

.unshift() 函数用起来就像 .push() 函数一样, 但不是在数组的末尾添加元素,而是在数组的头部添加元素。

6. Write Reusable JavaScript with Functions


在 JavaScript 中,我们可以把代码的重复部分抽取出来,放到一个函数(functions)中。

这是一个函数(function)的例子:

function functionName() {
  console.log("Hello World");
}

你可以通过函数名称functionName加上后面的小括号来调用这个函数(function),就像这样:

functionName();

每次调用函数时它会打印出消息的“Hello World”到开发的控制台上。所有的大括号之间的代码将在每次函数调用时执行。

7. Passing Values to Functions with Arguments


函数的参数parameters在函数中充当占位符(也叫形参)的作用,参数可以为一个或多个。调用一个函数时所传入的参数为实参,实参决定着形参真正的值。简单理解:形参即形式、实参即内容。

这是带有两个参数的函数, param1 和 param2:

function testFun(param1, param2) {
  console.log(param1, param2);
}

接着我们调用 testFun:

testFun("Hello", "World");

我们传递了两个参数, “Hello” 和 “World”。在函数内部,param1 等于“Hello”,param2 等于“World”。请注意,testFun 函数可以多次调用,每次调用时传递的参数会决定形参的实际值。

8. Global Scope and Functions


在 JavaScript 中, 作用域 涉及到变量的作用范围。在函数外定义的变量具有 全局 作用域。这意味着,具有全局作用域的变量可以在代码的任何地方被调用。

这些没有使用var关键字定义的变量,会被自动创建在全局作用域中,形成全局变量。当在代码其他地方无意间定义了一个变量,刚好变量名与全局变量相同,这时会产生意想不到的后果。因此你应该总是使用var关键字来声明你的变量。

9. Global vs Local Scope in Functions


一个程序中有可能具有相同名称的 局部 变量 和 全局 变量。在这种情况下,局部 变量将会优先于 全局 变量。

下面为例:

var someVar = "Hat";
	function myFun() {
	  var someVar = "Head";
	  return someVar;
	}

函数 myFun 将会返回 “Head”,因为 局部变量 优先级更高。

10. Stand in Line


在计算机科学中 队列(queue)是一个抽象的数据结构,队列中的条目都是有秩序的。新的条目会被加到 队列 的末尾,旧的条目会从 队列 的头部被移出。

11. Comparison with the Strict Equality Operator


严格相等运算符(=)是相对于相等操作符()的一种操作符。与相等操作符不同的是,它会同时比较元素的值和 数据类型。

举个例子

3 === 3   // true
	3 === '3' // false

3 是一个 数字 类型的,而’3’ 是一个 字符 类型的,所以3不全等于’3’。

12. Selecting from many options with Switch Statements


如果你有非常多的选项需要选择,可以使用switch语句。根据不同的参数值会匹配上不同的case分支,语句会从第一个匹配的case分支开始执行,直到碰到break就结束。

这是一个伪代码案例:

switch (num) {
  case value1:
    statement1;
    break;
  case value2:
    statement2;
    break;
...
  case valueN:
    statementN;
    break;
}

测试case 值使用严格相等运算符进行比较,break关键字告诉javascript停止执行语句。如果没有break关键字,下一个语句会继续执行。

13. Multiple Identical Options in Switch Statements


如果switch语句中的case分支的break 语句漏掉了,后面的 case语句会一直执行直到遇到break。如果你有多个输入值和输出值一样,可以试试下面的switch语句:

switch(val) {
  case 1:
  case 2:
  case 3:
    result = "1, 2, or 3";
    break;
  case 4:
    result = "4 alone";
}

分支1、2、3将会产生相同的输出结果。

14. Accessing Objects Properties with the Dot Operator


有两种方式访问对象属性,一个是点操作符(.),一个是中括号操作符([])。

当你知道属性的名称的时候,使用点操作符。

这是一个使用点操作符读取对象属性的例子:

var myObj = {
  prop1: "val1",
  prop2: "val2"
};
var prop1val = myObj.prop1; // val1
var prop2val = myObj.prop2; // val2

15. Accessing Objects Properties with Bracket Notation


第二种访问对象的方式就是中括号操作符([]),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])。

这是一个使用中括号操作符([])读取对象属性的例子:

var myObj = {
  "Space Name": "Kirk",
  "More Space": "Spock"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock

提示:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。

猜你喜欢

转载自blog.csdn.net/u011374582/article/details/84849260