位置: 编程技术 - 正文

Javascript学习笔记4 Eval函数(javascript要怎么学)

编辑:rootadmin
eval的作用其实很简单,就是把一段字符串传递给JS解释器,由Javascript解释器将这段字符串解释成Javascript代码,并且执行他。 举个最简单的例子: 很简单,把字符串解释成JS代码并执行,弹出2。 当然,上面的例子只是个玩具,在实际中没有人会傻到这么用。我想大家最基本的使用eval函数都是应该在DOM中,例如我们有div1,div2,div3,那么在document.getElementByID时我们的ID没有办法去得到,那么最简单的办法就是在for循环中,使用eval来拼接这么一段程序。例如这样: 最基本的用法说完,相信大家还是对这个函数意犹未尽,如果这个函数只有这么点用法,那就太无聊了。那我们就一点点来剖下一下eval()函数。 我们就先从eval的作用域说起,先看这样一段函数: 代码很简单,结果可以弹出3。接下来再对比这段代码: 结果是首先弹出3,然后是undefined。 那么说明:eval()函数动态执行的代码并不会创建新的作用域,其代码就是在当前的作用域执行的。因此也就是说,eval()函数也完全可以使用当前作用域的this,argument等对象。 在IE中,支持这样一种和eval()非常类似的函数叫做:execScript()。我们可以来写段简单的代码。 结果弹出了2个3,这也就看出了execScript函数的特点,首先他和eval相类似,都能将字符串解释成JS代码并且执行,但是他的作用域不是当前作用域,而是全局作用域。当我们把上面的代码放到Firefox和谷歌浏览器上去试试:发现在Firefox上execScript上代码是无效的,那么也说明一个问题,execScript代码的浏览器兼容性是有问题的。 那么就引申出这样一个问题,我们如何能把这两个函数的“优点”给汇总到一起呢,也就是说,全局+浏览器兼容性。上网搜了下,自己给汇总了一下,大概是这样: 这样就可以完美地兼容FF和IE了,其本质代码就在于在FF中eval和window.eval并不等效,这是个很奇妙的事。 另外,我们还可以用eval+with实现一些奇淫技巧。 我们在一般意义上可以写出这样的代码: 或者是这样: 再或者是这样: 无论怎么样,你是不是对这样的this感觉厌烦了呢?那就让我们采取个很另类的办法吧,让至少在感官上可能会舒服一点。 这个很勉强,那么好,我们不讨论什么看着舒服不舒服。我们来讨论这样一种情况。 我们又是否可以把这个看成是一个简陋的模板方法模式呢?呵呵。我们也可以把这个称为利用eval和with配合改变函数的上下文。 不过话又说回来,Eval在一般的情况中是很少被用到的,我们是完全可以避免来使用它的。

推荐整理分享Javascript学习笔记4 Eval函数(javascript要怎么学),希望有所帮助,仅作参考,欢迎阅读内容。

Javascript学习笔记4 Eval函数(javascript要怎么学)

文章相关热门搜索词:javascript学习指南,javascript怎么学,javascript教程完整版,javascript怎么学,javascript学习指南,javascript基础笔记,javascript学习指南,javascript教程推荐知乎,内容如对您有帮助,希望把文章链接给更多的朋友!

Javascript学习笔记5 类和对象 面向对象语言三大特点:继承,多态,封装,这三点虽然Javascript没有提供天然的语法实现,但是我们都可以通过prototype等技巧来实现,因此这种说法似

Javascript学习笔记6 prototype的提出 首先我们继续上文的代码,我们来把这段代码延伸一下:scripttype="text/javascript"varPerson=function(name,age){this.name=name;this.age=age;this.Introduce=function(){alert("Mynamei

Javascript学习笔记7 原型链的原理 我们先看看这样一段代码:scripttype="text/javascript"varPerson=function(){};varp=newPerson();/script很简单的一段代码,我们来看看这个new究竟做了什么?我们可以把ne

标签: javascript要怎么学

本文链接地址:https://www.jiuchutong.com/biancheng/382897.html 转载请保留说明!

上一篇:Javascript学习笔记3 作用域(javascript基础笔记)

下一篇:Javascript学习笔记5 类和对象(javascript基础笔记)

  • 外贸企业进项税不抵扣分录
  • 不动产租赁税率9%
  • 出口货物不能退税的原因
  • 管理费里面可以取现金吗
  • 专利在审可以入库吗
  • 租地建厂房合同
  • 收到生育津贴会计分录怎么做
  • 企业所得税可以抵扣吗
  • 进料边角料内销作进口报关单时为何要在备注栏备注活期
  • 收付转凭证如何排序装订
  • 员工借款会计科目
  • 购买财务软件账务处理规定
  • 公司为员工买保险好还是个体户为员工买保险好
  • 个人独资企业是法人吗
  • 公司没有员工需要缴纳社保吗
  • 营改增后企业所得税
  • 印花税在什么情况下需要申报
  • 怎么开个体工商户
  • 应收账款的周转率怎么算
  • 坏账核销谁来审批
  • 企业的财产清查无论什么情况,均应先通过
  • 投资款缴纳印花税税目是什么
  • 利息调整摊销额等于什么
  • 房子转租扣钱吗
  • 其他业务成本借贷方向表示
  • steam打开速度
  • 鸿蒙3.0系统哪些手机可以升级
  • 为职工缴纳的意外保险费用
  • h5实现扫码功能
  • ajax获取php数据
  • 装win7ahci
  • 以前年度多计提的工资怎么处理
  • 长期应收款在哪一章
  • 清算资金往来的余额方向
  • 购买方未抵扣,销售方申请红字
  • 固定资产为什么提折旧,有何实际意义
  • vue3获取dom元素的方法
  • vue入门
  • php二维数组foreach
  • 联营企业和合营企业是什么意思
  • 误餐补助所得税处理
  • 应收账款保理会计处理相关会计准则
  • 差旅费津贴与差旅费补助
  • 如何更改电子税务局办税人员
  • 个税专项扣除子女教育可以怎么扣
  • 车辆上牌费用会涨吗
  • 营业外收入需要报增值税吗
  • 公司申报是每月一次吗
  • 现金流量表现金等价物有哪些
  • 酒店电费 水费需要另外算吗
  • 前端日报
  • vue2响应式原理面试回答
  • Pythonround函数作用
  • 母子公司资产划转税收政策
  • 小型商贸企业
  • 电汇汇款方式的基本流程
  • 利润分配未分配利润期末有余额吗
  • PostgreSQL中调用存储过程并返回数据集实例
  • 企业所得税预缴申报表
  • 个税申报错误已经扣税款怎么处理
  • 股东权益合计等于净资产吗
  • 息税前利润与盈亏平衡点
  • 报表与账不符情况说明
  • 购入啤酒会计分录
  • 投资性房地产在建
  • 购买超市购物卡有优惠吗
  • 年中重新建账还要年初数吗?
  • 非营利医疗机构免征哪几种税
  • CentOS6.7 mysql5.6.33修改数据文件位置的方法
  • linux系统中用户账户有哪些分类
  • win8.1怎么设置
  • 安装win7旗舰版变了家庭版
  • win10系统无法运行exe文件
  • win7 64位旗舰版下载后怎样禁用搜索记录?win7禁用搜索记录的设置方法
  • cocos2dx游戏案例
  • css并集
  • javascript中函数的作用域分为全局作用域
  • 云南省低保查询网上查询
  • 西宁市房屋维修基金收费标准2021
  • 视同销售行为的进项税额抵扣方法?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设