gpt4 book ai didi

javascript - JavaScript/ECMAScript 是一种常规语言吗?

转载 作者:行者123 更新时间:2023-11-29 21:58:19 24 4
gpt4 key购买 nike

我已经尝试了一些谷歌搜索,但我找不到任何解决这个问题的文章/以前的问题。原因是我与某人就使用输入验证来拒绝可能的 XSS 有一个小争议。我知道 HTML 不是常规语言这一事实​​,但我不能为 javascript 提出同样强烈的论点。

我检查了这个链接:

http://www.dlsi.ua.es/~mlf/nnafmc/pbook/node46.html

我想出了这个:因为 html 中的标签可以无限嵌套,所以这是一个关于为什么 HTML 不是常规语言的直观概念。推而广之,由于您可以使用 {} 无限嵌套 JavaScript 代码块,因此 javascript 也不是一种常规语言。

我希望看到支持或反对这个非正式提议的更正式的陈述。或者甚至是关于编程语言中正则表达式扩展的讨论,也许可以在不编写解析器的情况下完成这种事情。

最佳答案

的确,JavaScript 不是一种常规语言,大括号必须像您的直觉所建议的那样平衡这一事实可以证明这一点。

证明语言不规则的有用工具是 Pumping Lemma .你可以用它来证明如果 JavaScript 是规则的,一些序列就像

function(){ function() { function(){ ... function () {

(其中{不匹配)被某个前缀和后缀包围时可以重复任意次,这显然与必须匹配花括号的事实相矛盾。

关于javascript - JavaScript/ECMAScript 是一种常规语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com