这么写 什么意思?

yezixuan
  • 104

1.这种写法什么意思?
clipboard.png

回复
阅读 1.4k
5 个回答
✓ 已被采纳

你圈的第一个,是定义一个箭头函数

第二个:status? 'remove':'add'是一个三元表达式,根据 status 的值取出 classList中对应的函数,然后传入error 字符串执行

$表示一个变量,等号后面的是一个lambda表达式(ES6语法),就是个匿名函数,相当于:

function (selector) {
    return document.querySelector(selector)
}

它取变量名为$,就是在效仿jQuery

ES6箭头函数;三元表达式;传参。

第一个等同于

const $ = (selector) => {
    return document.querySelector(selector)
}

另有一种写法是 const $ = document.querySelector.bind(document)

这两种写法 $ 都代表一个函数,接受一个选择器,返回第一个匹配的 dom 元素

第二种写法等同于

if (status) {
    classList['remove']('error')
} else {
    classList['add']('error')
}

在这里 classList 下的两个 key remove 和 add 应该都代表一个函数,这里是通过不同的 status 执行不同的函数,传入一个字符串 'error'

一个箭头函数 相当于将
$=function(selector){return document.querySelector(selector)}

你知道吗?

宣传栏