日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > 理解delete:javascript中的一些細節

理解delete:javascript中的一些細節

來源:程序員人生   發布時間:2014-04-27 12:19:11 閱讀次數:2708次

在javascript中,我們有時候要使用delete刪除對象。但是,對于delete的一些細節我們未必盡知。昨天,看到kangax分析delete的文章,獲益匪淺。本文將文章的精華部分翻譯出來,與各位分享。

  1. 原理
    1. 代碼類型
    2. 執行上下文
    3. 激活對象/可變對象
    4. 屬性特性
    5. 內置對象和DontDelete
    6. 未聲明的賦值
  2. Firebug 困惑
    1. 通過eval刪除變量
  3. 瀏覽器兼容性
    1. Gecko DontDelete bug
  4. IE bugs
  5. 誤區
  6. ‘delete’和宿主對象
  7. ES5嚴格模式
  8. 總結

原理

為什么我們能刪除一個對象的屬性?

var o = { x: 1 };
delete o.x;
// true
o.x; // undefined

但是,像這樣聲明的變量則不行:

var x = 1;
delete x;
// false
x; // 1

或者如此聲明的函數:

function x(){}
delete x;
// false
typeof x; // "function"

注意,當一個屬性不能被刪除時,delete只返回false。

要理解這一點,我們首先需要掌握像變量實例化和屬性特性這樣的概念--遺憾的是這些在關于javascript的書中很少講到。我將在接下來的幾個段落中試著簡明的重溫這些概念。 理解它們一點也不難,如果你不在乎它們為什么這么運行,你可以隨意的跳過這一章。

代碼類型

在ECMAScript中有三種類型的可執行代碼:全局代碼(Global code)函數代碼(Function code)Eval code。這些類型有那么點自我描述,但這里還是作一個簡短的概述:

  1. 當一段源代碼正文被視為程序時,它在全局作用域中執行,被當成全局代碼(Global code)。在一個瀏覽器環境中,SCRIPT元素中的內容通常被當作程序來解析,因此,它被當作全局代碼來評估。
  2. 在一個函數內部直接執行的任何代碼,很明顯被當作函數代碼(Function code)。在瀏覽器紅中事件屬性的內容(如:<p onclick="...">)通常被當作函數代碼(Function code)來解析;
  3. 最后,提供給內置函數eval()的文本被當作Eval 代碼(Eval code)來解析。我們很快會看到這種類型很特殊。
    生活不易,碼農辛苦
    如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
    程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: cao久久 | 亚洲国产精品网站 | 成人国产 | 欧美日韩亚洲一区二区三区 | 91欧美在线视频 | 欧美日韩亚洲激情 | 日产精品久久久久久久性色 | 成人h在线观看 | 亚洲成人观看 | 一区二区久久久 | 欧美日韩国产专区 | 日韩久久综合 | 国产精品视频一二三区 | 国产成人精品免费视频大全最热 | 亚洲国产高清在线 | 久久久国产精品一区二区三区 | 国产福利在线看 | www.99热这里只有精品 | 日韩视频一区二区在线 | 99精品国产高清一区二区麻豆 | 日韩天堂在线 | 国产视频久久 | 99精品免费久久久久久久久 | 欧美黄色网页 | 久久精品国产一区二区三区 | 日韩综合久久 | 黄色免费看网站 | 黄免费 | 久久久精品高清 | 可以在线看的av | 亚洲视频在线视频 | 国产又爽又黄免费视频 | 日本福利在线观看 | 色综合久久久 | 亚洲精品乱码久久久久久蜜桃麻豆 | 国产一区二区三区高清视频 | 国产91精品久久久久久久 | 91网站免费看 | 国产91久久精品一区二区 | 毛片基地黄久久久久久天堂 | 成人午夜毛片 |