WishMeLz

生活其实很有趣

JS常用方法

加号运算符

// 可以做到转换格式

let a = '12'
let b = + a + 12;
let c = a - 0 + 12
let d = a + 12;
console.log(b); // 24
console.log(c); // 24
console.log(d); // 1212

动态绑定属性

// 在with中可以操作对象的每一项
let tom = {
    name: "tom",
    height: 170,
    sex: "男"
}

with(tom){
    height++
    console.log(height); // 171
    console.log(name); // tom
}

函数的调用堆栈

// 查看函数是被谁调用的

function fn1(){
    console.log(arguments.callee.caller);
}
function fn2(){
    fn1()
}
fn2()  // [Function: fn2]

void无效操作符

console.log(void(1));
console.log(void('1'));
console.log(void(true));
console.log(void(false));
console.log(void([]));
console.log(void({}));
console.log(void(undefined));
console.log(void(null));

全部返回 undefined

Reflect

反射极致。
目前只用过ownKeys,获取对象的key,尤其是Symbol类型的key。

Reflect.ownKeys(obj)  // Array

判断类型

number、string、object、Boolean、null、undefined

使用typeof 只会返回五大常用类型。

1、使用instanceof方法
  let arr = [];
  console.log(arr instanceof Array); // true
2、使用constructor方法
  let obj = {}
  console.log(obj.constructor == Object) // true