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

為什么js中不推薦使用eval函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了為什么js中不推薦使用eval函數(shù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

eval函數(shù)的作用

'eval'函數(shù)是javascript中的一個(gè)內(nèi)置函數(shù),它的主要作用是將傳入的字符串作為代碼來執(zhí)行。換句話說,'eval'可以將動(dòng)態(tài)生成的字符串當(dāng)作javascript代碼來執(zhí)行,并返回執(zhí)行結(jié)果。

我的理解就是它可以執(zhí)行傳入的代碼,并返回執(zhí)行結(jié)果。

為什么不推薦使用eval

1、安全性問題:

'eval'可以執(zhí)行任何傳入的字符串,所以意味著如果不小心,惡意代碼或用戶輸入的不受信任的數(shù)據(jù)可能會(huì)被執(zhí)行,導(dǎo)致安全漏洞。將造成代碼注入攻擊。

2、性能問題:

因?yàn)?eval'在運(yùn)行時(shí)動(dòng)態(tài)解析和執(zhí)行代碼,所以它會(huì)比直接編寫的代碼運(yùn)行更慢。這對于性能敏感的應(yīng)用程序來說可能是一個(gè)問題。

3、限制作用域:

在'eval'中聲明的變量通常會(huì)在全局作用域中創(chuàng)建,而不是包含在'eval'的函數(shù)的作用域中??赡軙?huì)導(dǎo)致不希望的變量覆蓋或污染全局作用域

全局作用域內(nèi)的 eval:如果 eval 函數(shù)在全局作用域內(nèi)調(diào)用,它可以訪問和修改全局作用域中的變量。

var x = 10;
eval("x = 20;");
console.log(x); // 輸出 20,全局作用域中的 x 被修改

函數(shù)作用域內(nèi)的 eval:如果 eval 函數(shù)在函數(shù)內(nèi)部調(diào)用,它可以訪問和修改函數(shù)作用域中的變量,并且可能會(huì)創(chuàng)建新的局部變量。

function example() {
  var y = 30;
  eval("var y = 40;");
  console.log(y); // 輸出 40,eval 創(chuàng)建了一個(gè)新的局部變量 y
}

example();

4、可維護(hù)性問題:

使用'eval'可能使代碼變得難以理解和維護(hù),因?yàn)樗勾a的執(zhí)行路徑更加不明確。動(dòng)態(tài)生成和執(zhí)行代碼的方式通常不利于代碼的可讀性和可維護(hù)性

5、不利于代碼優(yōu)化:

由于'eval'的代碼是動(dòng)態(tài)生成的,javascript引擎很難對其進(jìn)行優(yōu)化??赡軙?huì)導(dǎo)致代碼在某些情況下運(yùn)行得更慢。文章來源地址http://www.zghlxwxcb.cn/news/detail-710453.html

到了這里,關(guān)于為什么js中不推薦使用eval函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Spring】淺談spring為什么推薦使用構(gòu)造器注入

    因本人實(shí)力有限,該文章主要內(nèi)容(在文章基礎(chǔ)上加了點(diǎn)點(diǎn)東西)均來自: 原文鏈接:https://www.cnblogs.com/joemsu/p/7688307.html 作者:joemsu ? Spring框架對Java開發(fā)的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反轉(zhuǎn))和AOP,平時(shí)使用最多的就是其中的IOC,我們通過

    2024年02月13日
    瀏覽(24)
  • Vue3為什么推薦使用ref而不是reactive

    Vue3為什么推薦使用ref而不是reactive

    reactive 本身具有很大局限性導(dǎo)致使用過程需要額外注意,如果忽視這些問題將對開發(fā)造成不小的麻煩;ref更像是vue2時(shí)代 option api 的 data 的替代,可以存放任何數(shù)據(jù)類型,而 reactive 聲明的數(shù)據(jù)類型只能是對象; 先拋出結(jié)論,再詳細(xì)說原因:非必要不用 reactive ! (官方文檔也有對應(yīng)的推薦

    2024年02月07日
    瀏覽(26)
  • vue js 回調(diào)函數(shù) 異步處理 為什么要 let that = this

    1?異步就是開個(gè)事務(wù)( 只有主線程 等主線程空閑 ),用that 值 做處理,然后返回處理結(jié)果,而that的值是開啟 事務(wù)那一刻 的this的值.而在主線程處理的時(shí)候,this的一直在變化, that的值保留在那一刻 ps 或是將本obj 傳遞給其他的obj使用處理 ps 開啟新事務(wù)或開啟新子線程都是 在新的ob

    2024年02月11日
    瀏覽(21)
  • 【密碼學(xué)】為什么不推薦在對稱加密中使用CBC工作模式

    這篇文章是我在公司內(nèi)部分享中一部分內(nèi)容的詳細(xì)版本,如標(biāo)題所言,我會(huì)通過文字、代碼示例、帶你完整的搞懂為什么我們不建議你使用cbc加密模式,用了會(huì)導(dǎo)致什么安全問題,即使一定要用需要注意哪些方面的內(nèi)容。 注:本文僅從安全角度出發(fā),未考慮性能與兼容性等因

    2024年02月06日
    瀏覽(94)
  • 為什么Spring和IDEA不推薦使用@Autowired注解,有哪些替代方案?

    為什么Spring和IDEA不推薦使用@Autowired注解,有哪些替代方案?

    在使用Spring框架和JetBrains IDEA集成開發(fā)環(huán)境(IDE)進(jìn)行Java開發(fā)時(shí),你可能經(jīng)常會(huì)遇到@Autowired注解。@Autowired是Spring框架中用于實(shí)現(xiàn)依賴注入的核心注解之一。然而,近年來,Spring和IDEA都不再推薦使用@Autowired注解,并提出了更好的替代方案。本文將詳細(xì)分析為什么Spring和IDEA不

    2024年02月07日
    瀏覽(23)
  • 為什么使用ioutil.ReadAll 函數(shù)需要注意

    當(dāng)我們需要將數(shù)據(jù)一次性加載到內(nèi)存中, ioutil.ReadAll 函數(shù)是一個(gè)方便的選擇,但是 ioutil.ReadAll 的使用是需要注意的。 在這篇文章中,我們將首先對 ioutil.ReadAll 函數(shù)進(jìn)行基本介紹,之后會(huì)介紹其存在的問題,以及引起該問題的原因,最后給出了 ioutil.ReadAll 函數(shù)的替代操作。

    2024年02月13日
    瀏覽(14)
  • Vue-33、Vue中為什么使用render函數(shù)

    Vue-33、Vue中為什么使用render函數(shù)

    1、main.js 2、查看引入vue 引入的dist/vue.runtime.esm.js 查看vue.runtime.esm.js 大小 此時(shí)引入的是殘缺的Vue 無模板解析器。打包之后體積小一點(diǎn)。 而render: h = h(App), 可以進(jìn)行模板解析。

    2024年01月23日
    瀏覽(22)
  • 為什么分類問題不能使用mse損失函數(shù),更容易理解版本

    分類問題通常不適合使用均方誤差(Mean Squared Error,MSE)損失函數(shù),原因如下: 輸出差異的度量不同:MSE損失函數(shù)是基于預(yù)測值和真實(shí)值之間的差異的平方和進(jìn)行計(jì)算的,適用于回歸問題(建立一個(gè)模型來預(yù)測連續(xù)數(shù)值輸出的問題, eg: 房價(jià)預(yù)測;股票價(jià)格預(yù)測…),其中

    2024年04月26日
    瀏覽(19)
  • 為什么我不再推薦枚舉策略模式

    一、為什么講策略模式 二、經(jīng)典策略模式 三、基于枚舉的策略模式 四、基于工廠的策略模式 策略模式,應(yīng)該是工作中比較常用的設(shè)計(jì)模式,調(diào)用方自己選擇用哪一種策略完成對數(shù)據(jù)的操作,也就是“一個(gè)類的行為或其算法可以在運(yùn)行時(shí)更改” 我個(gè)人的理解是 將一些除了過

    2024年02月07日
    瀏覽(18)
  • 記錄--為什么推薦用svg而不用icon?

    記錄--為什么推薦用svg而不用icon?

    使用背景: 1.因?yàn)閟vg圖標(biāo)在任何設(shè)備下都可以高清顯示,不會(huì)模糊。而icon會(huì)在顯卡比較低的電腦上有顯示模糊的情況 2.svg圖標(biāo)在頁面render時(shí) 速度會(huì)比icon稍微快一點(diǎn) 3.實(shí)現(xiàn)小程序換膚功能 ;方案見:www.yuque.com/lufeilizhix… SVG基礎(chǔ)可參考:www.yuque.com/lufeilizhix… inline svg是目前前

    2024年02月08日
    瀏覽(31)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包