日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

javascript - 奇怪的Symbol的問題

瀏覽:223日期:2023-05-26 10:48:23

問題描述

javascript - 奇怪的Symbol的問題

這是抽出來的兩行代碼 var name = Symbol(’test’) 一直提示 無法轉換,是關鍵字保留?還是其他原因?為什么換一個var name1 = Symbol(’test’)卻可以通過編譯?其他普通的var s1 s2也可通過編譯。

問題解答

回答1:

這問題挺有意思的,我也從來沒有注意到,翻了翻資料,發現原來是很多事情巧合的湊合到一塊兒,然后出現了這個問題。準確的來說,是瀏覽器的默認行為和JavaScript的隱式類型變換搗的鬼。

一點一點來,首先,var和let的區別在哪里?

var聲明的變量會被提升至當前函數作用域頂端,如果是在全局那么這個變量將會成為window的一個屬性。 而對于let聲明的變量,它會將變量提升至當前塊級作用域,并且如果是在全局,當前變量也不會成為window的屬性。

所以,在全局中會出現這樣的事情:

var test1 = ’test1’;let test2 = ’test2’;console.log(window.test1); // test1console.log(window.test2); // undefined

然后,name為名的變量和別的變量有什么區別? 上面我們知道了,var name = ’test1’;實際上可以等同于window.name = ’test1’,很容易就能想到,name是不是固定的保留字?

翻翻規范,還真是的。 window.name屬性表示的是當前窗口上下文的名稱。下面是window的部分接口:

[ReplaceableNamedProperties] interface Window { // the current browsing context readonly attribute WindowProxy window; readonly attribute WindowProxy self; readonly attribute Document document; attribute DOMString name; //..}

name屬性在這里的最后一行,沒有readonly的前綴,說明它是可讀可寫的,它的數據類型則是DOMString。 DOMString是指UTF-16的字符串,在JavaScript中它會直接映射到String。

所以當我們給window.name賦值的時候,這個值會被強制轉換為String。

我們可以試試看:

var name = { a:1, b:2 };console.log(window.name); // [object Object]var name = [0, 1, 2, 3];console.log(window.name); // 0,1,2,3

到了這里大概就能猜到,var name = Symbol(’test’);的錯誤,應該是Symbol變量在做類型轉換的時候出了問題。而實際報的錯誤也證實了我們的猜測:TypeError: Cannot convert a Symbol value to a string。

但是,似乎不太對,Symbol變量是可以轉換成字符串的啊,比如:

let test = Symbol(’test’);console.log(test.toString()); // Symbol(test)console.log(String(test)); // Symbol(test)

嘛,這就是比較老生常談的東西了,JavaScript的隱式類型變換和顯式的強制轉換對于部分變量是不同的。很不幸,在這里Symbol就是這么一類。

Symbol被隱式的轉換時,它會首先調用其內部的ToPrimitive接口,拿到其原始值,然后在其中再調用ToString函數轉換為字符串。注意,這里的這個ToString函數是其內部的抽象方法,和暴露在外的Symbol.prototype.toString()不是一個東西。

對于Symbol變量而言,當其調用ToString的時候就會報錯,更詳細的我就不展開了,有興趣的可以自己看看規范:ToString ( argument )。

回答2:

我剛剛也在控制臺試了一下,確實是個很神奇的BUG,不過你將

var name = Symbol('test'); //改成let name = Symbol('test'); //試試。。

然后驚奇的發現BUG又沒了。。我猜跟瀏覽器是怎么解析語法有關,但這些東西我也不懂啊。

回答3:

name是window的特有屬性,如果你換個變量試試就不會報錯了。。。

回答4:

name 是 window 的特有屬性,在全局環境下定義的name變量,賦任何值都會自動轉化成字符串,而Symbol類型不能直接轉化為字符串,所以報錯了。

你可以

var name = 1;console.log(name);

就知道了。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
性欧美精品高清| 亚洲精品动态| 激情国产在线| 国产精品成人一区二区不卡| 久久精品国产在热久久| 国语对白精品一区二区| 免费不卡中文字幕在线| 麻豆久久精品| 91精品韩国| 中文精品视频| 丁香六月综合| 久久裸体视频| 欧美日韩国产欧| 成人在线丰满少妇av| 伊人成人网在线看| 国产一区二区精品久| 天堂va欧美ⅴa亚洲va一国产| 国产欧美午夜| 久久一二三区| 日韩大片在线| 美女性感视频久久| 欧美日韩伊人| 日韩欧美2区| 国产精品主播在线观看| 婷婷丁香综合| 精品国产成人| 国产精品chinese| 91欧美在线| 国产精品视频一区二区三区综合| 9国产精品视频| 久久中文视频| 亚洲欧美日本视频在线观看| 日韩激情av在线| 亚洲人成高清| 蜜臀av性久久久久蜜臀aⅴ四虎| 免费久久精品视频| 亚洲高清久久| 国产在线不卡| 亚洲欧美日本国产专区一区| 亚洲一区二区免费看| 最新国产拍偷乱拍精品| 亚洲一级影院| 好看的av在线不卡观看| 黑丝一区二区三区| 国产精品婷婷| 蜜臀av性久久久久蜜臀aⅴ流畅| 丝瓜av网站精品一区二区| 三上悠亚国产精品一区二区三区| 91精品推荐| 亚洲丝袜啪啪| 久久精品五月| 九九99久久精品在免费线bt| 久久wwww| 成人小电影网站| 国产视频欧美| 日韩成人在线看| 国产91一区| 日韩国产一区二区三区| 国产一区二区三区探花| 高清av不卡| 色婷婷久久久| 欧美成人亚洲| 91精品xxx在线观看| 亚洲性色av| 最新国产拍偷乱拍精品| 中文字幕av一区二区三区人| 中文无码久久精品| 亚洲精品伊人| 久草精品视频| 黑丝一区二区三区| 日韩精品一区二区三区中文| 麻豆久久一区二区| 久久激情中文| 日本欧美一区| 久久久一二三| 国产日韩在线观看视频| 亚洲伦乱视频| 亚洲激情中文在线| 国产美女久久| 亚洲高清影视| 国产精品一站二站| 日韩理论片av| 日韩中文字幕在线一区| 欧美精品资源| 国产日韩1区| 欧美精品激情| 麻豆91小视频| 蜜桃tv一区二区三区| 日韩精品免费一区二区夜夜嗨| 在线成人动漫av| 一区二区精品伦理...| 美日韩一区二区三区| 青草综合视频| 国产精品一区高清| 亚洲一区二区三区免费在线观看| 国模精品一区| 国产欧美二区| 青草国产精品| 日精品一区二区三区| 亚洲一区二区小说| 国内精品99| 性欧美videohd高精| 久久久国产精品网站| 免费一级欧美片在线观看网站| 欧美精品中文| 国产乱论精品| 国产精品久久久久久久久久妞妞 | 亚洲欧美视频一区二区三区| 亚洲精品成人一区| 色偷偷偷在线视频播放| 欧美日韩亚洲一区在线观看| 欧洲激情综合| 韩国女主播一区二区三区| 日韩一区二区三区精品 | 日韩欧美久久| 免费国产亚洲视频| 欧美~级网站不卡| 亚洲性色av| 日韩综合一区| 精品高清久久| 久久精品伊人| 欧美极品中文字幕| 日韩福利在线观看| 蜜臀a∨国产成人精品| 免费视频亚洲| 一区免费在线| 亚洲一二av| 中文字幕亚洲精品乱码| 欧美gv在线| 久久久9色精品国产一区二区三区| 国产黄大片在线观看| av在线最新| 久久久9色精品国产一区二区三区| 日韩在线欧美| 国产综合婷婷| 中文字幕一区二区三区日韩精品 | 日精品一区二区三区| 欧美色综合网| 美女国产一区二区三区| 精品深夜福利视频| 国产成人精品999在线观看| 久久婷婷国产| 久久视频精品| 亚洲午夜免费| 国产精品欧美大片| 亚洲黄色中文字幕| 亚洲国产综合在线看不卡| 久久国产精品亚洲77777| 欧美一区影院| 日韩精品永久网址| 国产精品普通话对白| 国产亚洲一卡2卡3卡4卡新区| 成人在线免费观看91| 久久成人亚洲| 国产精品theporn| 免费污视频在线一区| 日韩中出av| av资源亚洲| 日韩综合小视频| 色婷婷久久久| 欧美一级二级视频| 亚洲午夜精品久久久久久app| 日韩精品视频在线看| 久久亚洲专区| 蜜臀精品久久久久久蜜臀| 国产高潮在线| 国产三级一区| 国产日韩专区| 久久天堂成人| 成人三级高清视频在线看| 三级在线观看一区二区| 在线精品亚洲欧美日韩国产| 日本v片在线高清不卡在线观看| 人人精品亚洲| 国产成人精选| 国产精品久久久久久久久久白浆 | 中文字幕日韩高清在线 | 日本综合精品一区| 国产高清一区| 中文字幕色婷婷在线视频| 中文不卡在线| 国产亚洲一区在线| 国产真实久久| 欧美日韩国产在线观看网站| av最新在线| 亚洲三级欧美| 欧美国产免费| 97久久亚洲| 国产日韩亚洲| 欧美三区不卡| 日韩欧美美女在线观看| 亚洲另类黄色| 亚洲精品伊人| 91成人在线精品视频| 欧美天堂在线| 欧美亚洲tv| 另类小说一区二区三区| 麻豆高清免费国产一区| 精品国产一区二区三区av片| 欧美精品不卡|