javascrip基础知识积累 1

1. javaScript 中对函数参数的定义
 a. 参数名可以重复,但通过此参数名获取的值为实际传递参数值的最后一个,
 例如function getA(a ,a ,b ,b){} 如果在此方法内调用此变量,则a,b的值都为实际传参的第二个,会覆盖
 如果实际传递参数值的个数少于重名参数个数,那么通过此参数名获取的值为undefined
 例如function getA(a ,b ,c ,d){} 如果调用函数为getA(a ,b) ,则在此方法内调用此变量,那么c ,d就是为undefined
 
 b. 即使函数申明了参数,调用时也可以不传递参数值
 这个在工作中经常遇到,不像java,他的函数传参可以任意传参数
 
 c. 调用函数时可以传递若干个参数值给函数,而不用管函数声明时有几个参数,并且实际传递的参数值还都可以在函数内获得
 这中情况我倒没有相同,那多传的参数可以这么在函数内获得了?都没有变量啊?
 
 上面的这些特性是因为函数再被调用时候,一个arguments对象就会被创建,他负责管理参数和一些其他属性,包括获取所有实际参数值
 
2. 内部函数 ,匿名函数
 既然函数是一种数据类型,那么它也可以被赋值给变量,函数的另一种创建方式如下:
 //创建一个匿名函数
 var func = function() {
  alert('func');
 }
 调用此函数就是
 func(); 这也是我们公司框架里面常用的js函数创建方式,以前还不懂为什么可以这样做,现在懂了。
 
 //返回函数类型的值
 var func = function() {
  return function() {
   alert('这是一个内部匿名函数');
  }
 }
 func()(); //两次调用第一次是返回一个函数,再次调用才返回这个函数的值,第一次还没看懂这个用法,后来看了几遍看懂了
 
 //还有一种特殊的函数
 (function() {alert('创建后直接运行')})();
 
3. 代码中同一个object实例对象有两个引用,所以必须释放着两个引用,垃圾收集器才认为这个对象不再被调用

4. 宿主对象的定义:Flash实现了动画的制作,那么Flash就是宿主,对于浏览器中的JS,浏览器就是宿主
 把不依赖于宿主而实现的对象就做本地对象。
 
5. arguments 对象
 a. caller
 var a = new Function("alert ('a:'+a.caller)");
 function b(){
  a();
  alert('b:' + b.caller);
 }
 b();
 
 上面的第一次调用 alert出来的董事就是function b 的内容
 而第二次是为空 null
 caller 属性并不是arguments对象的,而是函数本身的属性,它显示了函数的调用者,如果函数在全局执行环境被调用,那么他得知为null,如果在另外一个函数中被
 调用,他的值就是那个函数。
 
6. callee是arguments对象的属性,表示正在执行的函数,也就是函数本身,如下:
 (function () {
  alert(arguments.callee);
 })()
 
 运行后的结果就是这个函数本身,在匿名函数中没有获取函数对象的引用,所以arguments对象提供了callee属性
 
7、 css中只支持一种注释格式如下
 /*   */
 
 

你可能感兴趣的:(javascrip)