javascript 中的with语句使用

在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语句

原文地址:https://www.cnblogs.com/huzhuhua/p/12321740.html

时间: 2024-11-10 07:34:26

javascript 中的with语句使用的相关文章

JavaScript中:表达式和语句的区别

JavaScript中:表达式和语句的区别 Javascript语言精粹:表达式是由运算符构成,并运算产生结果的语法结构.程序是由语句构成,语句则是由":(分号)"分隔的句子或命令.如果在表达式后面加上一个":"分隔符,这就被称为"表达式语句".它表明"只有表达式,而没有其他语法元素的语句" 原文:http://www.2ality.com/2012/09/expressions-vs-statements.html 本文要讲

JavaScript 中表达式和语句的区别

1.语句和表达式 JavaScript中的表达式和语句是有区别的.一个表达式会产生一个值,它可以放在任何需要一个值的地方,比如,作为一个函数调用的参数.下面的每行代码都是一个表达式: myvar3 + xmyfunc("a", "b") 语句可以理解成一个行为.循环语句和if语句就是典型的语句.一个程序是由一系列语句组成的.JavaScript中某些需要语句的地方,你可以使用一个表达式来代替.这样的语句称之为表达式语句.但反过来不可以:你不能在一个需要表达式的地方放

Javascript中的Label语句

在javascript中,我们可能很少会去用到 Label 语句,但是熟练的应用 Label 语句,尤其是在嵌套循环中熟练应用 break, continue 与 Label 可以精确的返回到你想要的程序的位置. Label 语句,按书本上说的语法是: Label: statement 如: begin: for (var i = 0; i < 10 ; i++ ){ alert(i); } 举一个比较典型的例子,看完后即明白 Label 的应用:(未添加 Label) var num = 0;

JavaScript中的with语句使用方法

1)简要说明         with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性.要给对象创建新的属性,必须明确地引用该对象. 2)语法格式  with(object instance)  {          //代码块  }         有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现:  w

JavaScript中的分支语句

Javascript的分支语句有两种,if...else...分支语句:switch...case...分支语句. if...else...分支 if后面的括号里面需要一个bool值或者一个逻辑表达式,如果后面只有一行要执行的语句,花括号可以省略不写.如果有多个条件判断,可以在else后面加上if判断即可. 看下面的几个示例: var num = 100; //定义变量num,并赋值 //if语句开始,判断num是否等于100,如果是,则执行花括号内的语句 if (num == 100) { n

JavaScript中的label语句,及应用

label语句:可以在代码中添加标签,以便将来使用. 语法:label : statement 示例: start: for(var i=0;i<10;i++){ console.log(i); }; 示例扩展: start: for(var i=0;i<10;i++){ console.log(i); for(var j=0;j<5;j++){ console.log('j'+j); if(i>5){ // break; //只终止了最近的一个循环,上一个循环未终止 break

3:JavaScript中的各类语句

上面我们说完了数据类型和基本运算  下面说的就是各种类型的语句 --- ------------------------------------------------------------------------ 块语句{} var申明语句 try--catch语句 函数function switch 循环 等等

【JS】JavaScript中的执行环境与作用域

JavaScript中的执行环境定义了变量或函数有权访问的数据(每个函数都有自己的执行环境),全局执行环境是最外围的执行环境,在浏览器中,全局执行环境就是window对象,所以所有的全局变量和函数都是作为window对象的属性和方法创建的.当某一个执行环境中所有代码执行完成后,该环境就被销毁,保存在其中的变量和函数也将被销毁,全局执行环境在关闭网页或浏览器时才被销毁. 当代码在一个环境中执行时,会创建变量对象的一个作用域链(保证对执行环境有权访问的变量和函数的有序访问),如果环境是函数,将其活动

Javascript基本概念(语句和函数)

语句 for语句 for语句中的初始化表达式,控制表达式和循环后表达式都是可选的,将这三个表达式省略,就会创建一个无线循环. ECMAScript中不存在块级作用域,因此在循环内容部定义的变量也可以在外部访问到. for-in语句 主要用来枚举对象的属性(数组也是对象的一种) var obj = { a:'this is a', b:'this is b', c:'this is c' }; var arr = [ 'arr1', 'arr2', 'arr3' ]; for(var o in o