javascript 一些需要知道的东西

这里我直接贴出代码,注释已经补全,欢迎指正:

  

  <script type="text/javascript">
/**
1,js中一切皆是对象,函数也是,
2,当定义变量不用var修饰的时候,该变量会被默认为全局变量(即window的属性)
3,js的作用链:js调用一个变量的时候,首先会在作用域链中的第一个对象中查找,如果没有,继续向外查找(最外层作用域链对象为window,所以js中不用"var"修饰的变量都作为window的属性,即为全局变量),直到找到
*/ var rain = 1;
function rainman(){
var man = 2;
function inner(){
var innerVar = 4;
alert(rain);
}
inner(); //调用inner函数
}
rainman(); //调用rainman函数 ex:以上代码涉及到的作用域链对象有inner,rainman,window var name=1;
var func=function(){
alert(name); //输出undefined -作用域:在js中是没有块级作用域的,这里的name基于作用域链,所以在func中查找到了name的定义,但是在alert(name)调用的时候"name"还没有被初始化,所以输出undefined
var name=2;
alert(name); //输出2
}
var func1=function(){ //当函数被调用的时候,js引擎会自动创建一个活动的对象,函数中定义的变量和子函数,都会成为该活动对象(函数对象)的同名属性
var funcObj=this;
funcObj.myName=function(){
console.log(funcObj);
}
}
//对于func1的调用
var initFn=function(){
var f=new func1();
f.myName();
} alert(typeof eve); //输出undefined
alert(typeof walle); //输出"function"
function eve(){} //函数表达式,由js引擎预编译
var walle=function(){} //函数定义式,运行中执行
initFn(); </script>
上一篇:leetcode 167 两数之和


下一篇:java基于xml配置的通用excel单表数据导入组件(四、DAO主处理类)