js 不是空字串的空字串引起的bug

2021-10-08 18:55:28 字數 642 閱讀 6858

今天在用js的時候,使用了兩段完全相同的**,可是乙個報錯,乙個好好的

**如下:

注意,這兩段**一模一樣(眼睛看起來是的),但是執行結果卻是:

你們在執行時,要複製我的**,不要自己敲,就能出現上面的結果。

這個問題困擾了我好幾個小時,我在想,到底是什麼原因呢?

為了解決這個問題,我將兩段**各種換來換去,發現下面的和上面的肯定不一樣。

於是,我用firefox除錯,發現了乙個很驚訝的結果:

首先結果一樣:乙個出錯,乙個正確

我通過火狐瀏覽器進入檔案,下面就是神奇的時刻,

很顯然,得出乙個結論:兩個console.log("a");前面的空格不一樣。

通過其他前輩的幫助,我了解了,是因為兩個空格,乙個是在半形輸入法下的,乙個是在全形輸入法下的。

在全形輸入法下,空格是佔空間的,不是真正意義的空格,它巢狀進程式設計中,無法編譯就報錯了。

這會導致,明明看起來是相同的**,卻因為看不見的空格導致執行不一樣。

空字串斷言

最近稍微研究了下正規表示式,在網上看了一篇正規表示式30分鐘入門教程.教程點這裡 30分鐘入門 在平衡組中講到 斷言一定匹配不成功.想了半天不明白.我是這麼理解 斷言的.a b 能夠匹配右邊不是b的a,那a 的意思就是匹配右邊什麼都沒有的a.然後我輸入了qwea發現不能匹配.感覺非常奇怪.糾結了2,...

空字元與空格字元 NULL 空字串

在許多的程式語言內,空字串的標記為兩個雙引號 而null又有以下理解 1.字面理解,null就是無效的 無價值的 2.在程式設計中,變數以null結尾,表示其後沒有可用的資料,資料讀取在此結束。3.null在資料庫中表示不知道 unknown 的資料,主要有3種意思 a 知道資料存在,但不知道具體值...

Oracle資料庫空字串和空字串比較的問題

今天在公司遇到了乙個問題,頁面上傳輸回來的值總是有問題,一路排查下來發現是sql出現了,檢視sql中發現從頁面上傳回來了兩個值都是空的,就是 這個樣子的。然後再對這個兩個值進行了等於判斷 然後oracle返回的是false。舉例 select from empwhere1 1結果 然後我們更變條件變...