深度解析 URL Scheme
当我们使用移动应用时,我们通常会通过点击链接或按钮来跳转到其他页面或应用。在 iOS 和 Android 系统中,这些链接或按钮是通过 URL Scheme 实现的。
URL Scheme 是一种在移动设备上通过链接或按钮调用应用程序的机制。它允许开发者在应用程序内部注册特殊的 URL,当用户点击带有该 URL 的链接或按钮时,系统会自动打开相应的应用程序,并执行相应的操作。
当我们使用移动应用时,我们通常会通过点击链接或按钮来跳转到其他页面或应用。在 iOS 和 Android 系统中,这些链接或按钮是通过 URL Scheme 实现的。
URL Scheme 是一种在移动设备上通过链接或按钮调用应用程序的机制。它允许开发者在应用程序内部注册特殊的 URL,当用户点击带有该 URL 的链接或按钮时,系统会自动打开相应的应用程序,并执行相应的操作。
WebkitSpeechRecognition 是一种 JavaScript API,它可以让您的 Web 应用程序使用语音识别技术。使用 WebkitSpeechRecognition,您可以让用户通过说话来与您的 Web 应用程序进行交互,这可以使您的应用程序更加易于使用,也可以为用户提供更加人性化的体验。
WebkitSpeechRecognition 是 Webkit 浏览器中的一个 API,它提供了一种将用户的语音转换为文本的方法。该 API 允许您使用 JavaScript 控制语音识别过程,并获取识别结果。
当涉及到向前端应用程序提供实时数据时,Web 开发人员需要一种可以无缝工作的解决方案。一般情况下,前端应用程序会定期向服务器发送请求以获取更新,但是这会浪费宝贵的带宽资源和服务器资源。在这种情况下,javascript EventSource 就成为了一种更为高效的解决方案。
在使用 chatgpt 时。实时的获取到 chatgpt 的回复。但是我发现在输入 prompt 后,只有一个请求。但是他的消息是实时动态显示的,起初以为使用了 WebSocket,但经过查看源码发现并没有使用 WebSocket。而是使用了 EventSource。
var message; // 默认 undefined
ECMAScript 中的操作符比较独特,包括字符串、数值、布尔值,甚至还有对象。应用给对象时通常会调用会调用valueOf()或toString()方法。
++n; // 先自增 1,再运算
n++; // 先运算,再自增 1
--n; // n-- 同理
!n; // 转换为 Boolean 值
if (i > 1) {
alert('yes');
} else {
alert('no');
}
'use strict';
// 函数体 告诉支持 JavaScript 引擎切换到严格模式
// 这样写即使低版本的浏览器不支持严格模式也不会报错,他只是个字符串
| 数据类型 | 转换为 true 的值 | 转换为 false 的值 |
|---|---|---|
| Boolean | True | False |
| String | 非空字符串 | '' |
| Number | 非 0 数字 | 0 和 NaN |
| Object | 任何对象 | null |
| Undefined | n/a(不适用) | Undefined |
ECMAScript 分为两种数据类型: 1、原始值:最简单的数据(undefined null boolean number string symbol)。 2、引用值:由多个值构成的对象,保存在内存中的对象(js 不能直接访问内存地址,也就不能操作对象所在内存空间,所以实际操作只是对该对象的引用操作)。
JavaScript 引擎是解释和执行 JavaScript 代码的核心组件。
词法分析器是编译器中的一个重要组成部分,其作用是将源程序中的字符流转换为词法单元流,以便后续的语法分析。设计词法分析器的基本步骤如下:
例如,对于一个简单的算术表达式语言,可以定义如下的词法单元类型和模式:
简单讲讲 js 的继承,也是 js 的原型链问题的实际应用。
原型和原型链都是来源于对象而服务于对象的概念:
JavaScript 中一切引用类型都是对象,对象就是属性的集合。
Array 类型、Function 类型、Object 类型、Date 类型、RegExp 类型等都是引用类型。
每一个对象从被创建开始就和另一个对象关联,从另一个对象上继承其属性,这个另一个对象就是原型。
当访问一个对象的属性时,先在对象的本身找,找不到就去对象的原型上找,如果还是找不到,就去对象的原型的原型上找,如此继续,直到找到为止。如果在最顶层的原型对象也没有找到,就返回undefined。这条由对象及其原型组成的链就叫做原型链。
温馨提示阅读[《你不知道的 JavaScript(中卷)》](https://www.ituring.com.cn/book/1563)和各个大佬的文章所归纳的总结,**如有异议按你的理解为主** :::
将值从一种类型转换为另一种类型称为类型转换
在 JavaScript 中进行类型转换时,根据调用形式的不同可以分为以下两种:
在了解类型转换前我们需要知道 JavaScript 的 抽象操作 (类型转换规则)
抽象操作 是指仅供内部使用的操作
ToPrimitive 将引用类型转换成相应的基本类型值ToString 将非字符串值转换成字符串ToBoolean 将非布尔值转换成布尔值ToNumber 将非数字值转换成数字值ToPrimitive 用来处理引用类型到基本类型的类型转换
ToPrimitive 转换规则
Symbol.toPrimitive()
TypeError 错误valueOf()
toString()toString()
TypeError 错误