javascript中的with语句学习笔记及用法


Posted in Javascript onFebruary 17, 2020

在JS中,with 语句的作用是将代码的作用域设置到一个特定的对象中。其语法如下:with (expression) statement;

定义 with 语句的目的主要是为了简化多次编写同一个对象的工作,如下面的代码:

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

上面几行代码都包含 location 对象。如果使用 with 语句,可以把上面的代码改写成如下所示:

with(location){
 var qs = search.substring(1);
 var hostName = hostname;
 var url = href;
}

下面的代码使用 with 语句关联了 location 对象。这意味着在 with 语句的代码块内部,每个变量首先被认为是一个局部变量,而如果在局部环境中找不到该变量的定义,就会查询

location 对象中是否有同名的属性。如果发现了同名属性,则以 location 对象属性的值作为变量的值。

大量使用with非常耗性能,而且在严格模式下使用with语句会报错。所以建议没什么 必要不要用with语句

实例扩充

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>With语句(类似于VB中的)</title>
<script type="text/javascript">
 function Student(name, age) {
  this.name = name;
  this.age = age;
 }
 var stu = new Student('罗纳尔多', 36);
 with (stu) {
  //With语句(类似于VB中的),用于简化代码
  alert("Name:" + name + ",Age:" + age);
 }
</script>
</head>
<body>
</body>
</html>

以上就是三水点靠木小编整理分享的全部知识点内容,感谢大家的支持。

Javascript 相关文章推荐
国外大牛IE版本检测!现在IE都到9了,IE检测代码
Jan 04 Javascript
jquery实现搜索框常见效果的方法
Jan 22 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
jQuery使用deferreds串行多个ajax请求
Aug 22 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
Mar 06 Javascript
vue.js实现价格格式化的方法
May 23 Javascript
微信小程序Redux绑定实例详解
Jun 07 Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 Javascript
微信小程序module.exports模块化操作实例浅析
Dec 20 Javascript
vue路由传参页面刷新参数丢失问题解决方案
Oct 08 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
Jan 05 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 Javascript
JS实现百度搜索框关键字推荐
Feb 17 #Javascript
js实现百度淘宝搜索功能
Feb 17 #Javascript
JavaScript使用canvas绘制随机验证码
Feb 17 #Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 #Javascript
Vue 中使用 typescript的方法详解
Feb 17 #Javascript
vue框架中props的typescript用法详解
Feb 17 #Javascript
JS通用方法触发点击事件代码实例
Feb 17 #Javascript
You might like
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
深入理解Python中的元类(metaclass)
2015/02/14 Python
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python的标准模块包json详解
2017/03/13 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
python实现xlsx文件分析详解
2018/01/02 Python
python实现数据库跨服务器迁移
2018/04/12 Python
PyCharm代码格式调整方法
2018/05/23 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
python中的decimal类型转换实例详解
2019/06/26 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
学习三严三实心得体会
2014/10/13 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书