JS、NodeJS 笔记【记录开发中遇到的问题】
A.JSON序列号&反序列化
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h2>为 JSON 字符串创建对象</h2>
<p id="demo"></p>
<script>
var text = '{ "sites" : [' +
'{ "name":"Runoob" , "url":"www.runoob.com" },' +
'{ "name":"Google" , "url":"www.google.com" },' +
'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
obj = JSON.parse(text);
str = JSON.stringify(obj);
document.write(obj);
document.write(str);
</script>
</body>
</html>
B.JS中 Object 与 Map 的区别
1.在很多时候,我们都把Object当成Map来使用
2.Object 只能使用字符串类型(现在还有Symbol)的值作为键,如下
3.Map 可以使用任意类型的值作为键,如下
4.遍历取值方法如下:
const obj = {"key":"value"}
const map = new Map();
map.set("key","value");
//map取值
map.get("key");
//obj取值
obj["key"];
obj.key;
for (let k in obj) {
console.log(k)
}
Object.values(obj);
Object.keys(obj);
Object.entries(obj);
C.js中的几种操作添加Array数组元素的方法
1. 使用 length 属性追加元素
使用length属性,可以在数组末尾后面添加一个元素
var arr = [1, 2, 3, 4, 5];
arr[length] = 6;
console.log(arr); // [1, 2, 3, 4, 5, 6];
2. 使用 push 方法追加元素
push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度
var arr = [1, 2, 3, 4, 5];
arr.push(6);
console.log(arr); // [1, 2, 3, 4, 5, 6];
3. 使用 unshift 方法在数组的第一项前插入一个元素
unshift()方法将一个或多个元素添加到数组的开头,并返回该数组的新长度
var arr = [1, 2, 3, 4, 5];
arr.unshift (6);
console.log(arr); // [6, 1, 2, 3, 4, 5];
4. 使用 splice 方法插入一个元素
splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容
var arr = [1, 2, 3, 4, 5];
arr.splice(5, 0, 6);
console.log(arr); // [1, 2, 3, 4, 5, 6];
5. 使用 concat 方法合并元素
concat()方法用于将一个数组或值合并至一个数组中,该方法不会改变原数组
var arr = [1, 2, 3, 4, 5];
var newArr = arr.concat(6);
console.log(newArr); // [1, 2, 3, 4, 5, 6];
6. 使用 … 扩展运算符合并元素
展开语法...: 可以在数组构造时, 将数组表达式在语法层面展开
var arr = [1, 2, 3, 4, 5];
arr = [...arr, 6];
console.log(arr); // [1, 2, 3, 4, 5, 6];
7.map()方法
let arr = [1, 2, 3, 4]
let newArr = arr.map((item)=>{
return item * 2;
})
console.log(newArr) // [2, 4, 6, 8]
console.log(arr) // [1, 2, 3, 4]
D.JavaScript 拥有动态类型
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
F.什么是箭头函数?
箭头函数允许我们用更短的语法定义函数。箭头函数可用于替代传统函数function() {}。
语法
允许写的函数,在2号取为参数a和b,然后返回的总和。
作为常规功能:
function sum(a, b) {
return a + b
}
现在,作为箭头函数:
const sum = (a, b) => a + b
const users = [
{
name: "John",
age: 24
},
{
name: "Jane",
age: 32
},
{
name: "Blake",
age: 12
}
]
const adults = users.filter((adults) => {return adults.age > 18});
const adults2 = users.filter(adults => adults.age > 18);
console.log(adults);
console.log(adults2);
G.JavaScript 类型转换
Number(false) // 返回 0
Number(true) // 返回 1
String(x) // 将变量 x 转换为字符串并返回
String(123) // 将数字 123 转换为字符串并返回
String(100 + 23) // 将数字表达式转换为字符串并返回
H.debugger 关键字
debugger 关键字用于停止执行 JavaScript,并调用调试函数。
这个关键字与在调试工具中设置断点的效果是一样的。
var x = 15 * 5;
debugger;
document.getElementbyId("demo").innerHTML = x;
I.JavaScript 类型转换
var x = "000";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
J.转义序列就是字符的一种表示方式(映射)。由于各种原因,很多字符无法直接在代码中输入或输出,只能通过转义序列间接表示。
序列 代表字符
\0 Null字符(\u0000)
\b 退格符(\u0008)
\t 水平制表符(\u0009)
\n 换行符(\u000A)
\v 垂直制表符(\u000B)
\f 换页符(\u000C)
\r 回车符(\u000D)
\" 双引号(\u0022)
\' 撇号或单引号(\u0027)
\\ 反斜杠(\u005C)
\xXX 由 2 位十六进制数值 XX 指定的 Latin-1 字符
\uXXXX 由 4 位十六进制数值 XXXX 指定的 Unicode 字符
\XXX 由 1~3 位八进制数值(000 到 377)指定的 Latin-1 字符,可表示 256个 字符。如 \251 表示版本符号。注意,ECMAScript 3.0 不支持,考虑到兼容性不建议使用。
网友评论