js笔记

typeof 和instantof

1, typeof 对于对象除了函数都会显示object

类型转换

1, 数组转数字,空数组伟0,只有一个的数字转数字

2, 对象转原始类型的时候,直接是调用Symbol.toPrimitive,可以复写Symbol.toPrimitive

let a = {
  valueOf() {
    return 0
  },
  toString() {
    return '1'
  },
  [Symbol.toPrimitive]() {
    return 2
  }
}
1 + a // => 3

3,字符串转数字的时候,如果是数字字符串则转为数字,否则为NAN

闭包

1,setTimeout 可以接受第三个参数,用来穿参数

setTimeout(
    function timer(j) {
      console.log(j)
    },
    i * 1000,
    i
  )

深拷贝

1,MessageChannel
2, Object.keys()返回对象的enum属性,Reflect.ownKeys()返回所有symbol属性

let const var

1, 使用let 和const声明的变量不会被挂在到window上面

Proxy

let p = new Proxy(target, handle)

Reflect

1,Reflect.get(target, name, receiver)
如果get 设置了get函数,则会绑定到receiver

var myObject = {
  foo: 1,
  bar: 2,
  get baz() {
    return this.foo + this.bar;
  },
};

var myReceiverObject = {
  foo: 4,
  bar: 4,
};

Reflect.get(myObject, 'baz', myReceiverObject) // 8

let p = {
  a: 'a'
};

let handler = {
  set(target, key, value, receiver) {
    console.log('set');
    console.log(receiver)
    Reflect.set(target, key, value, receiver)
  },
  defineProperty(target, key, attribute) {
    console.log('defineProperty');
    console.log(target, key, attribute)
    Reflect.defineProperty(target, key, attribute);
  }
};

let obj = new Proxy(p, handler);
obj.a = 'B';

// 打印出来
"set"
Object {
  a: "a"
}
"defineProperty"
Object {
  a: "a"
} "a" Object {
  value: "B"
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • js简介 Js是一种基于事件和对象驱动的解释性、松散性的语言。 一切皆对象 javascript 布兰登艾奇 ...
    塔库纳玛哈哈阅读 1,243评论 0 2
  • 一、JavaScript的基本概念: 1、JavaScript 是一种多范式的动态语言,它包含类型、运算符、标准内...
    Dec停云阅读 213评论 0 0
  • 在JavaScript中,一切都是对象。 使用深度优先遍历,element是一个DOM元素,selectors是一...
    garble阅读 592评论 0 1
  • 1.整数转任意位小数 function formatToFixed (val){ let sNum = val;...
    慕名66阅读 1,031评论 0 0
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,505评论 1 37