一些未分类的问题 ==和true let a = true; a == true;// true a == 'true'; // false let b = 'true'; b == true;// false b == 'true'; // true
一些未分类的问题
==和true
let a = true;
a == true;
a == 'true';
let b = 'true';
b == true;
b == 'true';
箭头函数
const fn = name => ({name})
- 箭头函数没有
arguments
- 可以像普通函数一样使用
...args
const fn = (...args) => console.log(args)
- 箭头函数不会创建自己的
this,只会从上一层的作用域链沿用this
js前面必须加;的情况
- 立即执行函数
(function t() {
});
;(function t() {
})()
- 数组结构
;[b, a] = [a, b]
let a = 1
[1, 2, 3].forEach(item => console.log(item))
结构赋值
数组结构
let [a = 0, b = 0, ...c] = [1, 2, 3, 4, 5]
console.log(a);
console.log(b);
console.log(c);
let [a, b, , d] = [1, 2, 3, 4, 5]
console.log(a);
console.log(b);
console.log(d);
let [a, b, [c, d]] = [1, 2, [3, 4, 5]]
console.log(a);
console.log(b);
console.log(c);
console.log(d);
对象解构
let {a, b} = {a: 1, b: 2};
let {a: aa, b: bb} = {a: 1, b: 2};
let obj = {
a: 1,
b: {
c: 2,
d: 4
}
}
let {a, b: {c, d}} = obj;
let a = {a: 1, b: 2}
function fn({a, b:bb}) {
console.log(a, bb);
}
fn(a)
数组对象解构
let arrobj = [{a: 1, b: 2}];
let [{a, b}] = arrobj;
new 干了什么事
- 创建一个空对象
- 将构造函数的
this指向这个空对象
- 执行构造函数代码,一步一步完善空对象的属性和方法
- 返回这个空对象
构造函数的静态成员
function Fn(name) {
this.name=name
}
Fn.age=222
let person=new Fn('刘')
console.log(person.age)