JavaScript高级 js语言通识
创始人
2024-02-02 12:25:31
0

    产生式(BNF)

    - 用尖括号括起来的名称来表示语法结构名

    - 语法结构分成基础结构和需要用其他语法结构定义的复合结构

        - 基础结构称为终结符

        - 复合结构称为非终结符

    - 引号和中间的字符表示终结符

    - 可以有括号

    - * 表示重复多次

    - | 表示或

    - + 表示至少一次

    通过产生式理解乔姆斯基谱系

   

    - 0型 无限制文法

        - ?::=?

    - 1型 上下文相关文法

        - ??::=??(第一个问号叫上文第二个问号叫下文,后面的问号同理)

    - 2型 上下文无关文法

        - ::=?

    - 3型 正则文法

        - ::=?

        - ::=?(错误写法)

   

    一般来说,JavaScript总体属于上下文无关文法,在特例如{

        get a {return 1}

        get: 1

    }

    与 2 ** 1 ** 2中使用上下文相关文法来分析,所以严格意义上来说JavaScript属于上下文相关文法

    VB中, < 可能是小于号,也可能是XML直接量的开始,取决于当前位置是否可以接受XML直接量

    JavaScript中, / 可能是除号,也可能是正则表达式开头,处理方式类似于VB,字符串模板中也需要特殊处理 } ,还有自动插入分号规则

    语言的分类

    形式语言--用途

        - 数据描述语言

            如 JSON,HTML,XAML,SQL,CSS

        - 编程语言

            如 C,C++,Java,Python,Ruby,Perl,Lisp,T-SQL,Clojure,Haskell,JavaScript

    形式语言--表达方式

        - 声明式语言

            如 JSON,HTML,XAML,SQL,CSS,Lisp,Clojure,Haskell

        - 命令型语言

            C,C++,Java,C#,Python,Ruby,Perl,JavaScript

    图灵完备性

        命令式--图灵机

            - goto

            - if和while

        声明式--lambda

            - 递归

    动态与静态

        - 动态

            - 在用户的设备/在线服务器上

            - 产品实际运行时

            - Runtime

        - 静态

            - 在程序员的设备上

            - 产品开发时

            - Compiletime

    类型系统

        - 动态类型系统与静态类型系统

        - 强类型与弱类型

            String + Number

            String == Boolean(最臭名昭著的失败的设计)

        - 复合类型

            结构体

            函数签名

        - 子类型

        泛型

            逆变/协变

       

        凡是能用Array的地方,都能用Array

        凡是能用Function的地方都能用Function

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...