De facto standard 世界上不可思议的事实标准_基础知识
前些天IEBlog中提到实现互通并不是只靠标准就行,其中举出了一些关于事实上的标准的考虑——所谓“事实上的标准”,也就是并非标准,但大家都遵循着它去做事情的那么一种东西。
这些事实上的标准(也写作“De facto standard”)往往是在某一种事物还没有标准的时候由当事的各方相互妥协而形成的,——有趣的是,作为妥协的结果,这些“事实上的标准”自身往往和其它的东西并不协调;而真正被称作“标准”的东西往往是在发生了很多事情之后才产生的,所以几乎任何地方都有“事实上的标准”和“标准”有些格格不入的感觉。
说了半天废话,该说正题了:
在本文开头的那个链接中的博文里,提到了一个关于正则表达式的语法问题:
像是“/]/”这样的形式,由于“]”本身是“匹配这些字符中的任意一个”的语法中的一部分,故ECMAScript标准中把这样的形式标记为“无效的表达式”——但是同时这样的用法由于构成简单,理解起来也并不容易产生歧义,所以实际上在大部分浏览器中这么用都是被认为“有效”的。
当IE9的开发团队刚开始测试他们的新JavaScript引擎“Chakra”的时候,它们发现有一些本来运行得很好的JavaScript代码在“Chakra”中不能运行,其中一个原因就是最初“Chakra”是按照ECMAScript标准来实现的,而旧代码中包含很多像是这样的在标准中无效的东西——若要兼容,并且“互通”,“Chakra”需要做的就不只是和标准一致,还要能认可这样的表达式。
这是“实现互通并不是只靠标准就行”的一个好例子。
除了这个以外,JavaScript中一些其它的事实标准,比方说:
在一个字符串中如果在反斜线“”之后输入一个换行标记,无论是[LF]( 实际代表的含义),还是[CR]( 实际代表的含义),还是[CR][LF]( \n实际代表的含义),都会和反斜线一起完全被忽略掉——说“忽略掉”还不够准确,也许应该说“这种组合会被认为是把一个字符串拆在多行代码里”之类的。
如果这样说还是觉得不好理解(甚至是莫名其妙)的话,通过一些代码例子就应该比较容易理解了。
比方说,这样的代码:
var s = "This is an\
one line string.";
其实是和
var s = "This is an" +
" one line string.";
等价的。
而如果写成
var s = "This is an
one line string."
就会产生一个语法错误,原因是“未结束的字符串”。
刚开始的时候它只是在IE中使用的JScript引擎独有的一个特性,但是现在几大主流浏览器都支持了这种写法,就像我刚刚提到的,它也是“事实上的标准”之一。
我很有兴趣多讲一些关于“事实上的标准”的事情,但是无奈这种东西实在是太多了,我只知道其中的很小一部分——而且还常常记不起来,所以今天我也只能写到这里了,如果我再想起来什么的话也许会另外写篇新博文吧

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

隨著PHP在Web開發中的重要性不斷提高,PHP函數庫設計也成為了開發中的關鍵問題之一。好的函數庫不僅可以提高開發效率,還能確保程式碼的品質和可維護性。因此,設計函數庫需要遵循一些基本原則和標準。一、可重複使用性好的函數庫應該是可重複使用的,可以在不同的項目中使用。因此,函數應該是抽象的、通用的,不能和特定的項目或場景捆綁在一起。二、易用性函數庫應該易於使用,傳遞參數

PHP函數可依多種標準分類:目的(字串處理、陣列處理等)、作用域(內建函數、使用者自訂函數)和傳回值(有傳回值、無回傳值)。實戰案例:explode()函數可將字串以指定分隔符號分割成陣列。

如何判斷黏性定位的標準?揭秘黏性定位的關鍵要素導語:黏性定位作為一種市場定位策略,對企業的品牌推廣和市場競爭起到至關重要的作用。然而,如何判斷黏性定位的標準卻是個令人頭痛的問題。本文將揭秘黏性定位的關鍵要素,幫助企業更能判斷黏性定位的標準。一、認清黏性定位的意義黏性定位是指企業透過獨特的品牌特性和核心競爭優勢,使消費者產生強烈的認同與忠誠度,從而形成一種

黏性定位的標準是指在市場競爭中,一個企業或品牌能夠長期佔據消費者心智中的固定位置,並且能夠穩定地維持市場份額和品牌忠誠度的能力。黏性定位是行銷的重要概念,它強調在激烈競爭的市場環境中,企業需要建立自己獨特的定位,並與消費者建立緊密的關係,以保持競爭優勢。黏性定位的核心要求包括以下幾個面向:獨特性:一個企業或品牌在市場上的定位必須是獨特且與競爭對手有所

在Web開發中,PHP是一種廣泛應用的程式語言,它的標準標記是PHP程式碼中的特殊標記符號,用來識別PHP程式碼的開始和結束。深入了解PHP的標準標記是非常重要的,因為它們直接影響PHP程式碼的解析和執行過程。本文將深入探討PHP的標準標記,並提供具體的程式碼範例,幫助讀者更能理解並運用PHP程式設計。一、PHP的標準標記在PHP中,最常用的標準標記是「

最近,關於生成式人工智慧工具的討論越來越多,特別是在多個大型語言模型和圖像生成器(如DALL-E或Midjourney)發布之後。這些發明再次將通用人工智慧(GPAI)置於人們的關注的目光下,並再次提出了諸如GPAI是否應該受到監管等假設性問題。在人們進一步探索可能性之前,先了解GPAI的概念,它的意義,它是什麼時候引入的等等。什麼是通用人工智慧?兩年前,也就是2021年4月,歐盟委員會推出了通用人工智慧。最初的人工智慧法案提案免除了通用人工智慧創建者遵守一些法律文件和其他責任標準的責任。原因

黏性定位是一種常見的網頁佈局技術,透過使元素在滾動時保持固定位置,提供更好的使用者體驗。本文將解析黏性定位的標準、要素和要求,並提供具體程式碼範例。一、黏性定位的標準相容性:黏性定位應在主流瀏覽器上正常運作,如Chrome、Firefox、Safari等。滾動效果:元素在滾動時應平滑過渡,避免閃爍或抖動的情況。響應式設計:黏性定位應適應不同裝置和螢幕大小,確

標題:Go語言是否符合上層語言的標準?近年來,Go語言作為一種新興的程式語言受到了廣泛關注和應用。作為一種靜態類型、編譯型的語言,Go語言在並發程式設計、記憶體管理和程式碼可讀性方面具有獨特的優勢,但在一些程式設計師眼中,它並不完全符合上層語言所應該具備的標準。本文將從幾個面向探討Go語言是否符合上層語言的標準,並結合具體的程式碼範例展開討論。一、程式碼簡潔性上層語言通常被
