1. emoj表情的长度

length方法是返回的是unit的个数,普通字符一个unit
字符串使用的是utf-16

  1. console.log('👍'.length)

2. NaN

  1. Object.is(NaN,NaN) // true
  2. [NaN].includes(NaN) // true 使用的是零值相等比较算法
  3. [NaN].indexOf(NaN) // false 使用严格相等比较算法
  4. Math.max(NaN , 1) // NaN 有一个操作数是NaN就返回NaN

3. 数组的最大长度

https://bigfrontend.dev/quiz/largest-Array-index/discuss
JavaScript arrays are zero-based and use 32-bit indexes
从0开始4个字节长度的索引: 0 ~ 2 32 - 2**

4. Reflect.ownKeys() 扩展运算符会把数组空的位置的值变为undefined

The static Reflect.ownKeys() method returns an array of the target object’s own property keys.
https://bigfrontend.dev/quiz/array-keys/discuss

5. catch块捕获到的变量是私有的

https://bigfrontend.dev/quiz/try-catch/discuss

  1. var a = 'a'
  2. try {
  3. throw new Error('BFE.dev')
  4. } catch {
  5. var a = 'a1'
  6. }
  7. console.log(a)
  8. var b = 'b'
  9. try {
  10. throw new Error('BFE.dev')
  11. } catch (b) {
  12. var b = 'b1'
  13. }
  14. console.log(b)
  15. var c = 'c'
  16. try {
  17. throw new Error('BFE.dev')
  18. } catch (error) {
  19. var c = 'c1'
  20. }
  21. console.log(c)
  22. //结果
  23. "a1"
  24. "b"
  25. "c1"

6. Why in JavaScript both “Object instanceof Function” and “Function instanceof Object” return true?

7. Function和Object互相instanceof都为true

  1. // 全部都为true
  2. console.log(Function instanceof Object)
  3. console.log(Object instanceof Function)
  4. console.log(Function instanceof Function)
  5. console.log(Object instanceof Object)

8. 函数参数引用

  1. let func = () => {
  2. console.log(1)
  3. }
  4. setTimeout(func, 100) // 1
  5. func = 1

9. String.raw

https://bigfrontend.dev/quiz/String-raw/discuss
第一个参数是一个带raw属性的对象,值是字符串或数组,raw将之后的参数分隔,多余参数被忽略

  1. // using array
  2. String.raw({ raw: [0,2,4] }, 1, 3, 5, 6, 7) // "01234"
  3. // using string
  4. String.raw({ raw: '024' }, 1, 3, 5, 6, 7) // "01234"
  5. console.log("BFE\ndev") // \n gets escaped
  6. // BFE
  7. // dev
  8. console.log(`BFE\ndev`) // \n gets escaped
  9. // BFE
  10. // dev
  11. console.log(String.raw`BFE\ndev`) // \n remains as it is
  12. // BFE\ndev

10. +”b”的结果?

NaN而不是98

11. 私有类成员

https://bigfrontend.dev/quiz/Proxy-II/discuss
添加一个#前缀
proxy代理不能访问私有成员

12. proxy

https://bigfrontend.dev/quiz/proxy-i/discuss
如果为定义handler则将操作转发到代理的target,但是这些操作仅限于属性访问等基本行为,像Map和Set自身行为如set,add等将会抛出错误

13. css水平垂直居中

grid

  1. display: grid;
  2. place-items: center;

14. CSS三行省略号

  1. .max-three-lines {
  2. /* your code here */
  3. display: -webkit-box;
  4. -webkit-line-clamp: 3;
  5. -webkit-box-orient: vertical;
  6. overflow: hidden;
  7. }

15. grid实现两栏布局

左边最小100px, 宽度为25%, 右边自适应

  1. grid-template-columns: minmax(100px, 25%) auto;

16. CSS获取选中状态的checkbox

  1. input[type="checkbox"]:checked