学习笔记|基础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 访问的。
对象非常适合用来存储结构化数据,可以表示真实世界中的物体,比如一只猫。
【学习笔记|基础JavaScript】这里是一个猫对象的样本:
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() 四舍五入

    推荐阅读