jsIntro

js基础知识

建议阅读 现代 JavaScript 教程 ,分类细,写的水平也高

promise

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function proDemo(num) {
return new Promise(
function (resolve, reject) {
let a = num;
if (a % 2) {
resolve(a);
} else {
reject(a);
}
}
);
}

function odd(params) {
console.log(params + "是奇数");
}

function even(params) {
throw new Error(params + " even error");
}

let promise = proDemo(10);
promise.then(odd, even).catch((err) => console.log(err + " catch"));

读取值

从对象读取值,如果为undefied,则赋值为 [ ]

1
JSON.parse(localStorage.getItem('papers')) || []

对象

键为变量

1
2
let a = "abc";
{ [a] : "xxx"}

使用[]把作为键的变量包起来

判断键是否存在

1
2
3
a["age"];
a.hasOwnProperty('ndfaame');

在ECMAScript 5.1中,Object.create添加了该方法,该方法可以创建具有指定[[Prototype]]的对象。Object.create(null)是用于创建将用作Map的对象的常见模式。当假设对象将具有from的属性时,这可能会导致错误Object.prototype。该规则no-prototype-builtins防止Object.prototype直接从对象调用方法。有关no-prototype- builtins的更多信息,请在此处访问ESLint的官方文档

1
Object.prototype.hasOwnProperty.call(a, "jie");

单对象键值

获取单个对象的键和值

1
2
3
4
let arr = { name: 'jie' };
let key = Object.keys(arr)[0];
let value = Object.values(arr)[0];
console.log(key, value);

结构赋值

直接拿到参数内部的属性,简化代码;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let obj = {
person: {
name: "jie"
}
}

const show1 = ({ person }) => {
console.log(person);
}

// 结构赋值连续写法
const show2 = ({ person: { name } }) => {
console.log(name);
}

show1(obj);
show2(obj);

输入结果如下:

1
2
{ name: 'jie' }
jie

数组

一维数组

指定声明数组的长度

new Array(3);

如下所示,即使不指定数组长度,也无需担心数组越界

1
2
3
4
5
6
let arr = new Array();
console.log(arr.length);

arr[10] = 11;
console.log(arr.length);
console.log(arr);

[<10 empty items>, 11 ]

二维数组

初始化

1
2
3
let m = 3;
let n = 2;
const mat = new Array(m).fill(0).map(() => new Array(n).fill(0));
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2022 Jie Shen
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信