传递参数

function setName(obj){
obj.name="Nicholas";
obj=new object();
obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name); //"Nicholas"

在函数体内重新new一个Object,并将它赋值为"Greg",但在函数外部访问name属性时,其值仍为"Nicholas".实际上,当函数内部重写obj时,这个变量引用的就是一个局部对象了。
而这个局部对象会在函数执行完毕后立即销毁。

检测类型

如果变量的值是一个对象或null,则typeof操作符会像下面例子中所示的那样返回"object";

var n=null;
var o=new object();
alert(typeof n); //object
alert(typeof o); //object

延长作用域链

当执行流进入下列任何一个语句时,作用域链就会得到加长:
try-catch 语句的catch块
with语句

function buildUrl(){
var qs="?debug=true";
with(location){
var url=href+gs;
}
return url;
}

在此,with语句接收的是location对象,因此其变量对象中就包含了location对象的所有属性和方法。

没有块级作用域

if(true){
var color="blue";
}
alert(color);

如果是在C,C++或是JAVA中,color会在if语句执行完毕后被销毁,但在javascript中,if语句的变量声明会将变量添加到当前的执行环境。在使用for语句时尤其要牢记这一差异,如:

for(int i=0;i<10;i++){
doSomething();
}
alert(i); //

最新文章

  1. sqlServer去除字段中的中文
  2. JS的prototype和__proto__ Constructor
  3. HTML学习之canves元素
  4. Oracle备份与恢复之exp/imp
  5. HDFS的运行原理(转)
  6. Missing artifact com.sun:tools:jar:1.5.0:system 补充
  7. MySQL Error Handling in Stored Procedures---转载
  8. 关于pv的那些事!!
  9. 在React+Babel+Webpack环境中使用ESLint
  10. DIV+CSS清除浮动方法
  11. github和本地仓库关联
  12. eclipse远程调试Tomcat方法(测试成功并且说说遇到的坑)
  13. fcn训练及预测tgs数据集
  14. Apache虚拟主机
  15. mui---获取入口文件对象
  16. 在VMware安装Centos7
  17. (转)shlex — 解析 Shell 风格语法
  18. Proud Merchants(01背包变形)hdu3466
  19. input type=file 选择图片并且实现预览效果的实例
  20. 键盘 Input子系统

热门文章

  1. oracle中的nvl(), nvl2()函数
  2. Spring与Quartz的整合实现定时任务调度(转)
  3. webpack入门(一)——webpack 介绍
  4. JS keycode 事件响应
  5. KVM虚拟机内存不足,调整参数
  6. HTML5 之Canvas绘制太阳系
  7. 动态修改attr里的多个属性
  8. PHP 三元运算符省略写法
  9. 在linux终端执行clear或top命令时出现:&#39;xterm&#39; unknown terminal type的错误
  10. 几个Jquery对话框插件