电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

原生JS中應該禁止出現的寫法

瀏覽:119日期:2024-03-28 18:12:51
塊級函數

嚴格模式下,在 ES6 之前應禁止使用。ES6 開始可以使用,函數的作用域為聲明該函數的塊內部。非嚴格模式下應禁止使用。

if(true) { function test() { //塊級函數console.log(1); }}test();直接修改對象的 prototype 原型

瀏覽器對原型進行了優化,在調用實例之前,會為對象的方法提前規劃內存位置。所以不可以直接修改 prototype 原型。以下兩種方法都應禁止使用

使用 Object.setPrototypeOf 修改原型

function a(){}a.prototype = { a_prop: 'a val'};function b(){}var proto = { b_prop: 'b val'};Object.setPrototypeOf( proto, a.prototype);b.prototype = proto;var test = new b;console.log(test.a_prop); // a valconsole.log(test.b_prop); // b val

直接修改對象的 __proto__ 屬性

function a(){}a.prototype = { a_prop: 'a val'};function b(){}var proto = { b_prop: 'b val', __proto__: a.prototype //直接修改 b 對象的 __prototype__ 屬性};b.prototype = proto;var test = new b;console.log(test.a_prop); // a valconsole.log(test.b_prop); // b valwith

with 的用法:

var a = { p1: 1, p2: 2}with (a) { p1 = 3;}console.log(a.p1);

應該禁止使用 with,例如:

function a(arg1, arg2) { with (arg2){ console.log(arg1); // 無法確定是要輸出第一個參數還是要輸出 arg2 的 arg1 屬性 }}var arg2 = {arg1:1}a('arg1', arg2)callee

arguments.callee 表示當前正在執行的函數:

function a(arg1) { if (arg1 > 1) {return arg1 * arguments.callee(arg1 - 1); } else {return 1; }}console.log(a(3)); // 6

當一個函數必須調用自身的時候, 應禁止使用arguments.callee(),直接通過函數名字調用該函數。

function a(arg1) { if (arg1 > 1) {return arg1 * a(arg1 - 1); // 直接通過函數名稱調用 } else {return 1; }}console.log(a(3)); // 6caller

caller 表示函數的調用者,應禁止使用,該特性不是標準的。

function a() { console.log(a.caller); // function b() { a(); }}function b() { a();}b();eval

eval() 可以把傳入的字符串參數當成JavaScript代碼執行。

eval('var a = 1, b = 2; console.log(a+b)'); // 3

禁止使用 eval。eval 比一般JavaScript執行要慢,因為瀏覽器對 javascript 進行了優化。eval 方法也不安全,因為它使用與調用者相同的權限執行代碼,而且 eval() 被調用時,它的作用域也會暴露。應該用 Function 代替:

var a = new Function('a', 'b', 'console.log(a+b)')a(1,2); // 3

以上就是原生JS中應該禁止出現的寫法的詳細內容,更多關于原生JS中應該禁止的寫法的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 建筑资质代办-建筑资质转让找上海国信启航 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 压砖机_电动螺旋压力机_粉末成型压力机_郑州华隆机械tel_0371-60121717 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 苏州柯瑞德货架-仓库自动化改造解决方案 | 珠海网站建设_响应网站建设_珠海建站公司_珠海网站设计与制作_珠海网讯互联 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 天然气分析仪-液化气二甲醚分析仪|传昊仪器 | 苏州柯瑞德货架-仓库自动化改造解决方案| 深圳宣传片制作-企业宣传视频制作-产品视频拍摄-产品动画制作-短视频拍摄制作公司 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 锻造液压机,粉末冶金,拉伸,坩埚成型液压机定制生产厂家-山东威力重工官方网站 | 锡膏喷印机-全自动涂覆机厂家-全自动点胶机-视觉点胶机-深圳市博明智控科技有限公司 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 伸缩器_伸缩接头_传力接头-巩义市润达管道设备制造有限公司 | 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 客服外包专业服务商_客服外包中心_网萌科技 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 算命免费_生辰八字_免费在线算命 - 卜算子算命网 | 天津散热器_天津暖气片_天津安尼威尔散热器制造有限公司 | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 |