js一行If ,web开发基本步骤

? c

? c(b)

b

null

更长的版本

=====

三元运算符?:用作内联if-else是正确的关联 。 总之这意味着最右边的? 获得第一喂,它需要只有一个操作数最接近的左侧两个 ,有: ,在右边。

实际上,请考虑以下声明(与上述相同):

a ? a : b ? c ? c(b) : b : null

=================================

最右边的? 首先得到喂养,所以找到它及其周围的三个参数,并连续向左扩展到另一个?

` a ? a : b ? c ? c(b) : b : null ^

<---- RTL

|1-?-2----:-3|

^ <-

|1-?|–2---------|:-3—|

^ <-

3.|1-?-2-😐–3--------------------|

result: a ? a : (b ? (c ? c(b) : b) : null) `

这就是计算机如何读取它:


  • 术语a被读取。

节点: a

  • 非终端? 被阅读。

节点: a ?

  • 术语a被读取。

节点: a ? a a ? a

  • 非终结符:被读取。

节点: a ? a : a ? a :

  • 术语b被读取。

节点: a ? a : b a ? a : b

  • 非终端? 被读取,触发右相关性规则。 相关性决定:

节点: a ? a : (b ? a ? a : (b ?

  • 术语c被读取。

节点: a ? a : (b ? c a ? a : (b ? c

  • 非终端? 被读取,重新应用右联合性规则。

节点: a ? a : (b ? (c ? a ? a : (b ? (c ?

  • 术语c(b)被读取。

节点: a ? a : (b ? (c ? c(b) a ? a : (b ? (c ? c(b)

  • 非终结符:被读取。

节点: a ? a : (b ? (c ? c(b) : a ? a : (b ? (c ? c(b) :

  • 术语b被读取。

节点: a ? a : (b ? (c ? c(b) : b a ? a : (b ? (c ? c(b) : b

  • 非终结符:被读取。 三元运算符?:从前一个范围满足,范围已关闭。

节点: a ? a : (b ? (c ? c(b) : b) : a ? a : (b ? (c ? c(b) : b) :

  • 术语null被读取。

节点: a ? a : (b ? (c ? c(b) : b) : null a ? a : (b ? (c ? c(b) : b) : null

  • 没有令牌可读。 关闭剩余的左括号。

结果是: a ? a : (b ? (c ? c(b) : b) : null) a ? a : (b ? (c ? c(b) : b) : null)

================================================================================

  • 更好的可读性

======

从上面的丑陋的上线者可能(并应该)为了可读性而重写为:

(请注意,压痕隐式地定义正确的关闭装置,如括号()做的。)

a

? a
b

? c

? c(b)

b

null

例如

return a + some_lengthy_variable_name > another_variable

? “yep”
“nop”

更多阅读

====

Mozilla:JavaScript条件运算符

Wiki:运算符关联


奖金:逻辑运算符

========

var a = 0 // 1

var b = 20

var c = null // x=> {console.log(‘b is’, x); return true} // return true here!

a

&& a

|| b

&& c

&& c(b) // if this returns false, || b is processed

|| b

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!

可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。

/13/H4lCoPEF.jpg" />

最后

今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!

可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。

资料领取方式:戳这里前往免费领取

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Web Serial API 可以通过 `readLine()` 方法读取一行数据。这个方法会一直阻塞,直到读取到一个完整的行(以换行符结尾)或者超时。以下是一个简单的示例代码: ```javascript async function readLine() { const reader = port.readable.getReader(); let result = ''; while (true) { const { value, done } = await reader.read(); if (done) { throw new Error('Read terminated'); } result += new TextDecoder().decode(value); if (result.endsWith('\n')) { return result.trim(); } } } const port = await navigator.serial.requestPort(); await port.open({ baudRate: 9600 }); await port.readLine(); // 读取一行数据 ``` 注意:上述代码中的 `port` 对象是通过 `navigator.serial.requestPort()` 方法获取的,并且需要用户授权才能使用。在实际应用中,还需要根据具体的串口设备配置正确的参数,如波特率、数据位、停止位等。 ### 回答2: Web Serial API 是一种在Web浏览器中允许访问串行设备的API。它允许Web应用程序与连接到计算机的串行设备进行通信。要读取一行数据,我们可以按照以下步骤操作: 1. 首先,我们需要从浏览器中请求用户授权以访问串行设备。此时,浏览器会显示一个权限对话框,询问用户是否允许应用程序访问串行设备。 2. 一旦用户授权,我们可以使用`navigator.serial.requestPort()`方法来请求访问串行端口。该方法返回一个Promise,用于处理串行端口的选择。 3. 当用户选择串行端口后,我们可以使用`port.readable`属性来获取一个`ReadableStream`对象。该对象允许我们从串行设备读取数据。 4. 接下来,我们可以通过调用`reader = stream.getReader()`方法来获取一个`ReadableStreamDefaultReader`对象。该对象用于读取数据流中的字节。 5. 通过调用`reader.read()`方法,我们可以读取一行数据。该方法返回一个Promise,它解析为一个包含已读取字节数和数据的对象。 6. 我们可以使用解析的数据,根据需要进行处理或显示。如果我们希望继续读取下一行数据,可以在处理完当前行数据后,再次调用`reader.read()`方法。 总的来说,使用Web Serial API 读取一行数据需要获取用户授权、选择串行端口、获取`ReadableStream`对象、获取`ReadableStreamDefaultReader`对象,然后通过调用`reader.read()`方法来读取数据。 ### 回答3: Web Serial API 可以通过以下步骤读取一行数据: 首先,我们需要通过 navigator.serial.requestPort() 方法请求用户授权以访问串行端口。这将打开一个对话框,显示可用的串行设备端口列表,并允许用户选择一个端口。 一旦用户选择了一个串行端口,我们可以通过返回的 SerialPort 对象中的 .readable 属性来检查该端口是否可读。如果可读,则我们可以通过新建一个 TextDecoder 对象来处理读取数据时的字符解码操作。 接下来,我们可以通过 SerialPort 对象的 .readLine() 方法读取一行数据。该方法会一直阻塞,直到读取到一行完整的数据或遇到读取错误。 读取成功后,我们可以将读取到的数据通过回调函数或其他方式进行处理。注意,读取的数据并不包含行尾符。 最后,我们可以通过调用 SerialPort 对象的 .close() 方法关闭串行端口。 以下是一个简单的示例代码: ```javascript async function readLineFromSerial() { try { const port = await navigator.serial.requestPort(); await port.open({ baudRate: 115200 }); if (!port.readable) { console.error('The selected port is not readable!'); return; } const decoder = new TextDecoder('utf-8'); while (true) { const reader = port.readable.getReader(); const { value, done } = await reader.read(); if (done) { console.log('Connection closed.'); break; } const line = decoder.decode(value); console.log('Received:', line); } await port.close(); } catch (error) { console.error('Error:', error); } } readLineFromSerial(); ``` 上述代码中的例子使用 Web Serial API 的方式打开一个串行端口,并在一个无限循环中读取一行数据,然后将其进行解码和输出。当读取完成或发生错误时,关闭端口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值