日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js里面字符数字和数字相加_「译」5 个奇怪的只会在 JS 里才发生的趣事

發布時間:2025/4/16 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js里面字符数字和数字相加_「译」5 个奇怪的只会在 JS 里才发生的趣事 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaScript 是一門棘手的語言,就其代碼的解析和運行方式,容易讓人感覺困惑。這是一門面向對象的語言,但很多年來語言標準里沒有類。它最初是為瀏覽器創造的,但現在也可以在服務器上運行,還可以操作文件系統。

多年以來,我碰到了一些特殊且有趣的代碼。下面展示的這些例子僅適用于 JavaScript,我總結了 5 個。

1. 連接數組得到的是字符串

用 + 號連接數組得到的結果是字符串。

這件令人困惑的事情發生的原因,在于這里的兩個數組都被轉為對象、然后再相加的:

[1, 2, 3, 4] + [5, 6, 7, 8]// 被解釋為:"1,2,3,4" + "5,6,7,8"// 結果如下:"1,2,3,45,6,7,8"

2. BaNaNa?

下面展示了連接值時 JavaScript 類型推斷機制對結果的影響作用:

這是底層發生的事情:

"b" + "a" + + "a" + "a" // 被解釋為:"b" + "a" + (+"a") + "a"// (+"a") 以為以 + 開頭,因此這是要把 "a" 轉為數字,// 但 "a" 是不能正確轉為數字的,因此結果是 NaN (not a number):"b" + "a" + NaN + "a"// NaN 在連接的時候轉成了字符串,變成 "NaN" 了:"b" + "a" + "NaN" + "a"// 以下就是最終的連接結果了:"baNaNa"

3. 這是一段有效的 JS 代碼(稱為 JSF***)

[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]][([]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+(!![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+[+[]]]+([]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!

完整代碼太長了,這里展示了部分,可以訪問 jsf___example.js 文件查看完整代碼。

是的,這是一段有效的 JS 代碼。在控制臺執行后,會看到下面的結果:

事實證明,任何 JavaScript 函數、字符串、變量或數據類型都可以在 JS 中由 6 個字符的組合表示,并生成完全有效的現成JavaScript 代碼。 在 Brainf*** 編程語言之后,這個想法被稱為 JSF***。

你可以在這個 Github 倉庫里查看更多關于 JSF*** 的信息。

4. 可以在 JavaScript 中使用 HTML 注釋

在 JavaScript 中使用 HTML 代碼是完全有效的,可以用來替換我們常用的 // 或 /**/ 注釋。實際上, 和 這些標記在 JavaScript 中什么事情都不做,會被忽略。

許多 JavaScript 語法高亮器都沒有解釋這個符號。所以,盡管很有趣,但在 JS 中全部使用 HTML 注釋可能并不實際。

這是因為在

總結

以上是生活随笔為你收集整理的js里面字符数字和数字相加_「译」5 个奇怪的只会在 JS 里才发生的趣事的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。