JavaScript 语法盲点

2019.8.2更新
  1. 对象赋值

在对象/数组中直接提取属性/值

var [b]=[1,2,3]
//b=1
var {a}={a:1}
//a=1
  1. 引用类型
var f=[1,2,3]
//f=[1,2,3,4]
var ff=f
ff.push(5)
//f=[1,2,3,4,5]
  1. ES6 扩展运算符(…)
    3.1 解构赋值

用于从一个对象取值,将目标对象所有可遍历的属性,且尚未读取的属性,分配到指定对象上。

//example1
var {a,b,...c}={a:1,b:2,cc:3,dd:4}
//a=1
//b=2
//c={cc:3,dd:4}

解构赋值要求等号右边为对象(不能是undefined或null),且解构赋值必须是最后一个参数’

3.2 扩展运算符

对象的扩展运算符(…)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。

var obj1={a:1,b:2,c:4}
var obj2={a:2,b:4}
var obj={...obj1,...obj2}
//obj={a:2,b:4,c:6}
//会出现覆盖现象
  1. 深拷贝与浅拷贝/复制
  • 浅拷贝:将原对象/数组的引用直接赋值给新对象,新数组/对象只是原数组/对象的一个引用;
  • 深拷贝:创建一个新的数组/对象,将原数组/对象的元素或各项属性拷贝过来。
  1. Array.of()与Array()
var a=Array.of(1)
//a=[1]
var b=Array(1)
//b=[empty*3]

2019.8.3 更新
  1. Map
    Map相当于Object,但比Object更好用,区别在于Map可以设置的键值可以为函数。

一个Object的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值,包括函数、对象、基本类型。
Map 中的键值是有序的,而添加到对象中的键则不是。因此,当对它进行遍历时,Map 对象是按插入的顺序返回键值。
你可以通过 size 属性直接获取一个 Map 的键值对个数,而 Object 的键值对个数只能手动计算。
Map 可直接进行迭代,而 Object 的迭代需要先获取它的键数组,然后再进行迭代。
Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。虽然 ES5 开始可以用 map = Object.create(null) 来创建一个没有原型的对象,但是这种用法不太常见。
Map 在涉及频繁增删键值对的场景下会有些性能优势。


2019.8.7 更新
  1. NaN的类型是 Number
  2. undefined的类型是undefined
  3. null的类型是object
  4. 命名符号不能包括:- + * / # @ ^ %
  5. 命名符号可以有:_ $
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值