发表于: 2017-04-06 20:13:51

1 532


今天完成的事情:公司路由器坏了,看了一天的javascript高级程序设计,看完第三、四章。

明天计划的事情:如果有网的话就开始写任务三。。。

遇到的困难:在看javascript高级程序设计的第四章的过程中,有两个地方不是很懂。首先就是传参这个知识点。

<script>
function setName(obj) {
obj.name= "asd";
  }
var person = new Object();
  setName(person);
  console.log(person.name);
</script>

这个代码可以理解,控制台输出的是asd;因为person对象通过调用setName函数得到person.name的值asd,然后再通过控制台显示出来。但是接下来如果再setName函数中加上var obj = new Object();obj.name="123";

输出值仍为asd;

function setName(obj) {
obj.name= "asd";
   var obj=new Object();
   obj.name= "123";
}
var person = new Object();
setName(person);
console.log(person.name);

第二个问题就是没有块级作用域的时候,例如if条件语句

if (true){
var color= "blue";
}
console.log(color);

按照以前的想法控制台会出现underfine,结果还是出现了blue值。。。

收获:1.学习基本类型和引用类型;基本类型指的是underfined,full,number,string,boolean;引用类型指的是object;

2.了解传递参数机制,ECMAScript中所有的函数都是按值传递的。也就是说把函数外部的值复制给函数内部的参数,相当于把值从一个变量到另一个变量一样。

3.了解执行环境和作用域。执行环境分为全局执行环境和局部执行环境。在web浏览器中,全局执行环境可以理解为windows对象。而局部执行环境一般都是有函数构建出来的。当代码在一个执行环境中执行时,会创建变量对象的一个作用域链。


返回列表 返回列表
评论

    分享到