Skip to content

Latest commit

 

History

History
90 lines (56 loc) · 1.55 KB

2.1 Operators.md

File metadata and controls

90 lines (56 loc) · 1.55 KB

2.1 Operators(操作符)

2.1.1 算数操作符和赋值操作符

Q1.以下基本数据类型的加号运算的结果是什么?

1 + 2
1 + '2'
1 + false
'1' + false
1 + null
'1' + null
1 + undefined
'1' + undefined
false + null
Undefined + false
1 + Symbol()
1 + 1n
'1' + 1n

Q2.以下涉及到引用类型的加号运算的结果是什么?

[] + []
{} + []
[] + {}
0 + {}
{} + 0
[] + 0
0 + {}
new Set() + new Set()
new Map() + new Map()

Q3.0.03 % 0.01的结果是什么?求余运算需要注意什么?

Q4.ES7新增的幂运算操作符是什么?

Q5.连等赋值需要注意什么?

2.1.2 按位操作符

Q1.了解过标志位与掩码么?有何作用?

Q2.用按位非~判断索引存在的原理是什么?如~'123test123'.indexOf('test')

Q3.左移/右移操作符有哪些用?无符号左移/右移呢?

Q4.请用按位操作符实现经典题:不能使用额外的变量或内容空间来交换两个整数的值,如a = 1; b = 2

2.1.3 逗号操作符和圆括号操作符

Q1.逗号操作符的运作模式是怎么样的?

Q2.逗号操作符有哪些常见使用场景?批量变量赋值使用逗号操作符和不使用有何区别?

Q3.圆括号操作符的运作模式和应用场景是怎么样的?

2.1.4 解构和展开

Q1.解构和展开的运作模式是怎么样的?有了解过它babel后的结果吗?

Q2.为什么展开运算符能解构字符串?如[...'test']

Q3.请用解构赋值实现经典题:不能使用额外的变量或内容空间来交换两个整数的值,如a = 1; b = 2

2.1.5 new和in

Q1.经典题:自己撸一个函数来实现new运算符

Q2.in操作符的运作模式

2.1.6 typeof和instanceof

Q1.typeof的检测原理

Q2.instanceof的检测原理

Q3.写一个数据类型检测方法

2.1.7 super

Q1.super关键字是用来干嘛的?

Q2.super的prop属性有什么意义?