基础JavaScript

基础JavaScript

一、两种注释方法

// lorem
/*lorem*/

二、 转义字符

代码    输出
\'    单引号
\"    双引号
\\    反斜杠
\n    换行符
\r    回车符
\t    制表符
\b    退格
\f    换页符

三、数组

1. 使用 pop() 操作数组

使用 .pop() 函数从 myArray 中删除最后一项,并将取出的值分配给新变量 removedFromMyArray。

// 设置
const myArray = [["John", 23], ["cat", 2]];

// 只修改这一行下面的代码
const removedFromMyArray = myArray.pop();

2. 使用 shift() 操作数组 - 移出第一个元素

使用 .shift() 函数从 myArray 中删除第一项,并将“移除的值”值分配给新变量 removedFromMyArray。

// 设置
const myArray = [["John", 23], ["dog", 3]];

// 只修改这一行下面的代码
const removedFromMyArray = myArray.shift();

3. 使用 unshift() 操作数组

使用 unshift() 将 [“Paul”, 35] 添加到 myArray 变量的开头。

// 设置
const myArray = [["John", 23], ["dog", 3]];
myArray.shift();

// 只修改这一行下面的代码
myArray.unshift(["Paul", 35])

四、全局作用域和函数

未使用 let 或 const 关键字声明的变量会在 global 范围内自动创建。

五、排队(重点)

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

写一个函数 nextInLine,用一个数组(arr)和一个数字(item)作为参数。

把数字添加到数组的结尾,然后移出数组的第一个元素。

最后 nextInLine 函数应该返回被删除的元素。

function nextInLine(arr, item) {
  // 只修改这一行下面的代码
  arr.push(item);
  const items = arr.shift();
  return items;
  // 只修改这一行上面的代码
}

// 设置
const testArr = [1, 2, 3, 4, 5];

// 显示代码
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6));
console.log("After: " + JSON.stringify(testArr));

六、比较不同值

相等运算符 () 和严格相等运算符 (=)

不等符(!=)和严格不等符(!==)

七、JavaScript 对象(!)

你之前可能听过 object 这个词。

对象和 arrays 类似,区别在于数组使用索引来访问和修改数据,而对象中的数据是通过 properties 访问的。

对象非常适合用来存储结构化数据,可以表示真实世界中的物体,比如一只猫。

这里是一个猫对象的样本:

const cat = {
  "name": "Whiskers",
  "legs": 4,
  "tails": 1,
  "enemies": ["Water", "Dogs"]
};

通过点号表示法访问对象属性

和访问数组类似,访问对象属性有两种方式:点号表示法(.)和方括号表示法([])。

如果我们已经提前知道要访问的属性名,使用点号表示法是最方便的。

这里是一个用点符号(.)读取对象属性的示例:

const myObj = {
  prop1: "val1",
  prop2: "val2"
};

const prop1val = myObj.prop1;
const prop2val = myObj.prop2;

使用方括号表示法访问对象属性

访问对象属性的第二种方式是方括号表示法([])。 如果你想访问的属性名中包含空格,就必须使用方括号表示法来获取它的属性值。

当然,如果属性名不包含空格,也可以使用方括号表示法。

这是一个使用方括号表示法读取对象属性的例子:

const myObj = {
  "Space Name": "Kirk",
  "More Space": "Spock",
  "NoSpace": "USS Enterprise"
};

myObj["Space Name"];
myObj['More Space'];
myObj["NoSpace"];

操作复杂对象

操作复杂对象
有时你可能希望将数据存储在一个灵活的数据结构(Data Structure)中。 JavaScript 对象是一种灵活的数据结构。 它可以储存字符串(strings)、数字(numbers)、布尔值(booleans)、数组(arrays)、函数(functions)和对象(objects)以及这些值的任意组合。

这是一个复杂数据结构的示例:

const ourMusic = [
  {
    "artist": "Daft Punk",
    "title": "Homework",
    "release_year": 1997,
    "formats": [ 
      "CD", 
      "Cassette", 
      "LP"
    ],
    "gold": true
  }
];

八、Introducing JSON

(JavaScript Object Notation)

九、使用递归代替循环

递归是函数调用自身的操作。 为了便于理解,有如下任务:计算数组内元素前 n 的元素乘积。 使用 for 循环, 可以这样做:

  function multiply(arr, n) {
    let product = 1;
    for (let i = 0; i < n; i++) {
      product *= arr[i];
    }
    return product;
  }

下面是递归写法,注意代码里的 multiply(arr, n) == multiply(arr, n - 1) * arr[n - 1]。 这意味着可以重写 multiply 以调用自身而无需依赖循环。

  function multiply(arr, n) {
    if (n <= 0) {
      return 1;
    } else {
      return multiply(arr, n - 1) * arr[n - 1];
    }
  }

十、使用 JavaScript 生成随机分数

在 JavaScript 中,可以用 Math.random() 生成一个在0(包括 0)到 1(不包括 1)之间的随机小数。 因此 Math.random() 可能返回 0,但绝不会返回 1。

Math.floor() 向下取整
Math.ceil() 向上取整
Math.rint() 返回最接近该值的那个整数
Math.round() 四舍五入

你可能感兴趣的:(学习笔记,javascript,前端,开发语言)