JS高级——with语句、eval函数、严格模式

一、with语句

with语句的作用:扩展一个语句的作用域链
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

不建议使用with语句,因为它可能是混淆错误和兼容性问题的根源。并且,在浏览器开启严格模式下,使用with会报错:
在这里插入图片描述

二、eval函数

eval是一个特殊的函数,它可以将传入的字符串当做JavaScript代码来运行。

在这里插入图片描述

不建议在开发中使用eval:

  • eval代码的可读性非常的差(代码的可读性是高质量代码的重要原则);
  • eval是一个字符串,那么有可能在执行的过程中被刻意篡改,那么可能会造成被攻击的风险;
  • eval的执行必须经过JS解释器,不能被JS引擎优化;

三、认识严格模式

在ECMAScript5标准中,JavaScript提出了严格模式的概念(Strict Mode):

  • 严格模式很好理解,是一种具有限制性的JavaScript模式,从而使代码隐式的脱离了 ”懒散(sloppy)模式“;
  • 支持严格模式的浏览器在检测到代码中有严格模式时,会以更加严格的方式对代码进行检测和执行;

严格模式对正常的JavaScript语义进行了一些限制:

  • 严格模式通过 抛出错误 来消除一些原有的 静默(silent)错误;在这里插入图片描述

  • 严格模式让JS引擎在执行代码时可以进行更多的优化(不需要对一些特殊的语法进行处理);

  • 严格模式禁用了在ECMAScript未来版本中可能会定义的一些语法;

四、开启严格模式

那么如何开启严格模式呢?严格模式支持粒度话的迁移:

  • 可以支持在js文件中开启严格模式;
    在这里插入图片描述

  • 也支持对某一个函数开启严格模式;
    在这里插入图片描述

严格模式通过在文件或者函数开头使用 use strict 来开启。

五、严格模式限制

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

写 一个PHP脚本遇到的问题总结

在项目中,因为之前的人员,基础数据没有处理好,后面需要写一个脚本来处理这个问题,经验少,总结如下:1.在linux下直接连接跑处理MySQL数据的脚本,要用PDO的方式连接数据库,长时间在框架…

nts包如何下周 php_windows下PHP7安装方法(ts版和nts版)

1.首先到官网下载PHP的Zip安装包http://windows.php.net/download/(1)VC14 x64 Non Thread Safe (2015-Dec-17 00:17:18)(2)VC14 x64Thread Safe (2015-Dec-17 00:17:17)下载的是这两个版本,可以分别解压到C盘根目录目录存放如下NTS: C:/phpTS:C:/php-tsVC14 需要自…

JS面向对象——Object.defineProperty

一、JavaScript的面向对象 JavaScript其实支持多种编程范式的,包括函数式编程和面向对象编程: JavaScript中的对象被设计成一组属性的无序集合,像是一个哈希表,有key和value组成;key是一个标识符名称,val…

Oracle Minus关键字

Oracle Minus关键字  SQL中的MINUS关键字  SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果 中。如果有的话,那这一笔记录就被去除,…

极大似然函数求解_极大似然估计法的理解指南

原标题:极大似然估计法的理解指南今天讲一个在机器学习中重要的方法——极大似然估计。这是一个,能够让你拥有拟合最大盈利函数模型的估计方法。01什么是极大似然估计法极大似然估计是 1821 年由高斯提出,1912 年由费希尔完善的一种点估计方法…

json字符串和字典类型的相互转换(转载)

转自:http://www.cnblogs.com/YUTOUYUWEI/p/5585863.html 在开发过程中,有时候需要将json字符串转为字典类型,反之亦然,通常采用.Net的开源类库Newtonsoft.Json进行序列化,这里我也是采用这个,不过我更喜欢…

JS高级——对象的原型__proto__、函数的原型prototype、构造函数

一、认识构造函数 我们先理解什么是构造函数? 构造函数也称之为构造器(constructor),通常是我们在创建对象时会调用的函数;在其他面向的编程语言里面,构造函数是存在于类中的一个方法,称之为构造…

python各种数据类型的常用方法_Python之数据类型的常用方法

常用方法汇总1. int类方法汇总:变量名.to_bytes(数字,"little"\"big") # (把数字转换成bytes)# 数字表示转换后几个字节表示 little在前面,big在后面(大小端)int.from_bytes("要转换的东西","little"…

JS面向对象——原型链、通过原型链实现继承、借用构造函数实现继承

一、JavaScript原型链 在真正实现继承之前,我们先来理解一个非常重要的概念:原型链。 我们知道,从一个对象上获取属性,如果在当前对象中没有获取到就会去它的原型(__proto__)上面获取: 二、…

echart自定义动画_echarts动画效果

最近工作中碰到一个需求,要求动态展示柱状图,大概效果如下:图片是我用操作宽度模拟的效果,但是echarts以前没接触过,今天看了下文档,梯形也没做出来,想请教下大家echarts能否完成图中效果&#…

基于bootstrap框架在ie8以下,兼容媒体查询[css样式]

1 <style type"text/css">2 /*基于bootstrap框架在ie8以下&#xff0c;兼容媒体查询*/3 .row [class^"col-"] {4 float: left \9;5 }6 7 .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1 {8 width: 8.33333333% \9;9 …

JS面向对象——原型式继承函数、寄生式继承函数、寄生组合式继承

一、原型式继承函数 回顾一下JavaScript想实现继承的目的&#xff1a;重复利用另外一个对象的属性和方法. 最终的目的&#xff1a;student对象的原型指向了person对象&#xff1b; 二、寄生式继承函数 寄生式(Parasitic)继承是与原型式继承紧密相关的一种思想, 并且同样由道格…

k8s pod内部容器_第三章 pod:运行于kubernetes中的容器

本章内容涵盖创建、 启动和停止 pod使用标签组织 pod 和其他资源使用特定标签对所有 pod 执行操作使用命名空间将多个 pod 分到不重叠的组中调度 pod 到指定类型的工作节点上一章 已经大致介绍了在 Kubemetes 中创建的基本组件&#xff0c;包括它们的基本功 能概述。 那么接下来…

JS面向对象——Object对象的方法补充、原型继承关系图

一、Object.create() 这个方法用于创建一个新对象。被创建的对象的__proto__指向create函数第一个参数的原型对象prototype&#xff0c;在创建新对象时可以通过create函数第二个参数指定一些属性。 二、Object.hasOwnProperty() 对象是否有某一个属于自己的属性&#xff08…

Could not obtain connection metadata

用hibernate连接数据库出现错误2010-3-16 17:23:39, 093 [main] WARN [org.hibernate.cfg.SettingsFactory] - Could not obtain connection metadata java.sql.SQLException: 不支持的特性 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134 ) at …

JS面向对象——class定义类、类的构造函数、实例方法、访问器方法、静态方法、继承、super、多态

一、认识class定义类 我们会发现&#xff0c;按照前面的构造函数形式创建 类&#xff0c;不仅仅和编写普通的函数过于相似&#xff0c;而且代码并不容易理解。 在ES6&#xff08;ECMAScript2015&#xff09;新的标准中使用了class关键字来直接定义类&#xff1b;但是类本质上依…

ES6(一)——字面量的增强、解构、let/const、块级作用域、暂时性死区

一、字面量的增强 ES6中对 对象字面量 进行了增强&#xff0c;称之为 Enhanced object literals&#xff08;增强对象字面量&#xff09;。 字面量的增强主要包括下面几部分&#xff1a; 属性的简写&#xff1a;Property Shorthand方法的简写&#xff1a;Method Shorthand计算…

MapReduce算法形式四:mapjoin

案例四&#xff1a;mapjoin&#xff08;对个map共同输入&#xff0c;一个reduce&#xff09; 这个方法主要解决的是&#xff0c;几个表之间的比较&#xff0c;类似于数据库的内外连接&#xff0c;还有一些左右连接之类的&#xff0c;简而言之就是&#xff0c;A表没有的B表有&am…

python开发出来的crm系统_用Python打造一个CRM系统(三)

在上一篇中我们基于cookiecutter-django创建了一个one_crm的项目&#xff0c;在本文中将在本地进行初始化&#xff0c;并成功运行起来。本地初始化之前先确保环境先安装了Python3.8、PostgreSQL&#xff0c;并创建了一个虚拟环境。1. 安装依赖库基于cookiecutter-django创建的项…

bzoj1053: [HAOI2007]反素数ant

51nod有一道类似的题。。。我至今仍然不会写暴搜&#xff01;&#xff01;&#xff01; #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define rep(i,s,t) for(int is;i<t;i) #define dwn(i,s…