// lorem
/*lorem*/
代码 输出
\' 单引号
\" 双引号
\\ 反斜杠
\n 换行符
\r 回车符
\t 制表符
\b 退格
\f 换页符
使用 .pop() 函数从 myArray 中删除最后一项,并将取出的值分配给新变量 removedFromMyArray。
// 设置
const myArray = [["John", 23], ["cat", 2]];
// 只修改这一行下面的代码
const removedFromMyArray = myArray.pop();
使用 .shift() 函数从 myArray 中删除第一项,并将“移除的值”值分配给新变量 removedFromMyArray。
// 设置
const myArray = [["John", 23], ["dog", 3]];
// 只修改这一行下面的代码
const removedFromMyArray = myArray.shift();
使用 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));
相等运算符 () 和严格相等运算符 (=)
不等符(!=)和严格不等符(!==)
你之前可能听过 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
}
];
(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 中,可以用 Math.random() 生成一个在0(包括 0)到 1(不包括 1)之间的随机小数。 因此 Math.random() 可能返回 0,但绝不会返回 1。
Math.floor() 向下取整
Math.ceil() 向上取整
Math.rint() 返回最接近该值的那个整数
Math.round() 四舍五入