国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript高級(六)---with和eval函數(shù)

這篇具有很好參考價值的文章主要介紹了JavaScript高級(六)---with和eval函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?with

作用域只有全局作用域和函數(shù)作用域(塊作用域暫時不提及), 使用with后有一個單獨的作用域。不建議使用with語句,因為它可能是混淆錯誤和兼容性問題的根源。

    
    var message = "hello";
    var obj = {
        name: "malong",
        message:"malong obj"
    }
       
    // 使用with 后會形成一個單獨的作用域
    with(obj) {
        console.log(message) //會打印 malong obj
    }
    

eval

eval是一個特殊的函數(shù),它可以將傳入的字符串當(dāng)做JavaScript代碼來運行。

  • 不建議在開發(fā)中使用eval
    • 可讀性很差
    • 存在安全問題,eval是一個字符串,在執(zhí)行的過程中如果被惡意篡改,會造成安全問題
    • eval的執(zhí)行必須經(jīng)過JS解釋器,不能被JS引擎優(yōu)化
          var str = ' var msg = "test"; console.log("malong" + msg)'
      
          eval(str)
      

嚴(yán)格模式 ues strict

嚴(yán)格模式很好理解,是一種具有限制性的JavaScript模式,從而使代碼隱式的脫離了 ”懶散(sloppy)模式“。支持嚴(yán)格模式的瀏覽器在檢測到代碼中有嚴(yán)格模式時,會以更加嚴(yán)格的方式對代碼進(jìn)行檢測和執(zhí)行;文章來源地址http://www.zghlxwxcb.cn/news/detail-847549.html

  • 嚴(yán)格模式分類
    • 全局嚴(yán)格
    • 局部嚴(yán)格
  • 嚴(yán)格模式的好處
    • 消除代碼運行的一些不安全之處,保證代碼運行的安全;
    • 提高編譯器效率,增加運行速度;
    • 消除Javascript語法的一些不合理、不嚴(yán)謹(jǐn)之處,減少一些怪異行為;
  • 嚴(yán)格模式對JavaScript語義進(jìn)行了一些限制
    • 嚴(yán)格模式通過拋出錯誤來消除一些原有的靜默(silent)錯誤
    • 嚴(yán)格模式讓JS引擎在執(zhí)行代碼的時候得到更多的優(yōu)化(不需要對特殊的代碼進(jìn)行處理)
    • 嚴(yán)格模式禁用了在ECMAScript未來版本中可能會定義的一些語法
  • 嚴(yán)格模式具體的一些限制
      1. 無法意外的創(chuàng)建全局變量
      1. 嚴(yán)格模式會使引起靜默失敗(silently fail,注:不報錯也沒有任何效果)的賦值操作拋出異常
      1. 嚴(yán)格模式下試圖刪除不可刪除的屬性
      1. 嚴(yán)格模式不允許函數(shù)參數(shù)有相同的名稱
      1. 不允許0的八進(jìn)制語法
      1. 在嚴(yán)格模式下,不允許使用with
      1. 在嚴(yán)格模式下,eval不再為上層引用變量
      1. 嚴(yán)格模式下,this綁定不會默認(rèn)轉(zhuǎn)成對象
      • 嚴(yán)格模式下,setTimeout中的this還是指向window,這跟瀏覽器有關(guān),有想研究的可以看一下瀏覽器源碼,文件很大。而且對于我們來說,setTimeout是怎么執(zhí)行的我們也不知道,這種我們稱為黑盒子,但是其實我的猜想是通過apply調(diào)用觸發(fā)的函數(shù)的自執(zhí)行。
 

到了這里,關(guān)于JavaScript高級(六)---with和eval函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 探索JavaScript中的神秘函數(shù):從基礎(chǔ)到高級

    對于任何編程語言來說,函數(shù)都是其核心組成部分之一。在JavaScript中,函數(shù)更是無處不在,無論是在瀏覽器還是Node.js環(huán)境中,你都可以看到它們的身影。在本文中,我們將深入探討JavaScript函數(shù)的基礎(chǔ)和高級用法,以及如何有效地使用它們來編寫更好的代碼。 在JavaScript中,

    2024年02月10日
    瀏覽(46)
  • 掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南之JavaScript對象(二)

    掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南之JavaScript對象(二)

    可以大體分頁3大類: 第一類:基本對象,我們主要學(xué)習(xí)Array和JSON和String 第二類:BOM對象,主要是和瀏覽器相關(guān)的幾個對象 第三類:DOM對象,JavaScript中將html的每一個標(biāo)簽都封裝成一個對象 1.1.1 基本對象 1.1.1.1 Array對象 語法格式 Array對象時用來定義數(shù)組的。常用語法格式有如下

    2024年02月07日
    瀏覽(25)
  • 掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南(一)

    掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南(一)

    html完成了架子,css做了美化,但是網(wǎng)頁是死的,我們需要給他注入靈魂,所以我們需要學(xué)習(xí)JavaScript,這門語言會讓我們的頁面能夠和用戶進(jìn)行交互。 同樣,js代碼也是書寫在html中的,那么html中如何引入js代碼呢?主要通過下面的2種引入方式: 第一種方式 :內(nèi)部腳本,將

    2024年02月07日
    瀏覽(37)
  • 掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南(三)

    掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南(三)

    BOM的全稱是Browser Object Model,翻譯過來是瀏覽器對象模型。也就是JavaScript將瀏覽器的各個組成部分封裝成了對象。我們要操作瀏覽器的部分功能,可以通過操作BOM對象的相關(guān)屬性或者函數(shù)來完成。例如:我們想要將瀏覽器的地址改為 http://www.baidu.com ,我們就可以通過BOM中提供的

    2024年02月06日
    瀏覽(32)
  • 開發(fā)語言漫談-JavaScript

    ? ? ? ?JavaScript、Java名字很相近,但它們沒有任何親緣關(guān)系,是由不同公司開發(fā)的編程語言。Java由Sun公司(后被Oracle收購)開發(fā),JavaScript最初是由Netscape公司開發(fā)的(當(dāng)年瀏覽器的霸主)。JavaScript最初的名字是 LiveScript,Netscape將其命名為 JavaScript,無非是蹭?Java流量。當(dāng)

    2024年04月16日
    瀏覽(26)
  • 30個前端開發(fā)中常用的JavaScript函數(shù)

    30個前端開發(fā)中常用的JavaScript函數(shù)

    ?????作者名稱:DaenCode ??作者簡介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 在前端開發(fā)中通常會用到校驗函數(shù),檢驗是否為空、手機號格式、身份證格式等等?,F(xiàn)按照用途分類整理出了30個常用的方法,在V

    2024年02月14日
    瀏覽(27)
  • 建站系列(五)--- 前端開發(fā)語言之HTML、CSS、JavaScript

    建站系列(五)--- 前端開發(fā)語言之HTML、CSS、JavaScript

    建站系列(一)— 網(wǎng)站基本常識 建站系列(二)— 域名、IP地址、URL、端口詳解 建站系列(三)— 網(wǎng)絡(luò)協(xié)議 建站系列(四)— Web服務(wù)器之Apache、Nginx 建站系列(五)— 前端開發(fā)語言之HTML、CSS、JavaScript 建站系列(六)— 后端開發(fā)語言 建站系列(七)— 常用前后端框架

    2024年02月09日
    瀏覽(27)
  • JavaScript高級教程(javascript實戰(zhàn)進(jìn)階)

    JavaScript高級教程(javascript實戰(zhàn)進(jìn)階)

    ? ? 分類: 基本數(shù)據(jù)(值)類型 String:任意字符串 Number:任意的數(shù)字 boolean:true/false undefined:undefined null:null 對象(引用)類型 Object:任意對象 Function:一種特別的對象(可以執(zhí)行) Array:一種特別的對象(數(shù)值下標(biāo),內(nèi)部數(shù)據(jù)是有序的) 判斷: typeof:可以判斷undef

    2024年02月07日
    瀏覽(105)
  • 發(fā)掘JavaScript潛力:掌握高級技巧,成為JavaScript編程大師!

    發(fā)掘JavaScript潛力:掌握高級技巧,成為JavaScript編程大師!

    ?? 岸邊的 風(fēng):個人主頁 ??? 個人專欄? :《 VUE 》?《 javaScript 》 ?? 生活的理想,就是為了理想的生活 ! 眾所周知, JavaScript? 是一種非常流行 ?? 的編程語言,它已經(jīng)成為了網(wǎng)頁開發(fā)的必備技能。但是,在我們從事 JavaScript編程 的時候,我們卻沒有完全發(fā)掘和利用它的

    2024年02月14日
    瀏覽(24)
  • 高級JavaScript。如何用JavaScript手?jǐn)]一個富文本編輯器?

    高級JavaScript。如何用JavaScript手?jǐn)]一個富文本編輯器?

    要素過多建議收藏 基本的技術(shù)就是在空白 HTML 文件中嵌入一個 iframe 。通過 designMode 屬性,可以將這個空白文檔變成可以編輯的,實際編輯的則是 body 元素 的 HTML 。 designMode 屬性有兩個可能的值: \\\"off\\\" (默認(rèn)值)和 \\\"on\\\" 。設(shè)置為 \\\"on\\\" 時,整個文檔 都會變成可以編輯的(顯示

    2024年01月21日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包