首页 > Web开发 > 详细

js基础细节

时间:2014-01-26 19:24:20      阅读:361      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
js细节

1.所有的全局变量都是window的属性.
语句 var a=1;
等价于 window.a=1;
用 "变量名称" in window 来验证全局变量是否声明.


2.所有的变量声明都在范围作用域的顶部.

alert("a" in window);
var a;

尽管a的声明在 alert 之后,alert弹出的依然是true;
这是因为javascript引擎首先会扫描所有的全局变量声明,
然后将这些变量声明移动到顶部,最终的代码效果是这样的:
var a;
alert("a" in window);

3.函数声明 和 变量声明 在进入执行上下文就完成了.

变量声明:
var a;

函数声明:
function functionName(arg1,arg2){
    //函数体
}

变量赋值:
var a;--变量声明
a=1;--变量赋值

函数表达式:(匿名函数赋值给变量)======>函数表达式 相当于 变量赋值
var functionName=function(arg1,arg2){
    //函数体
}
拆解:
var functionName;
functionName=function(arg1,arg2){
    //函数体
}


优先级:函数声明 会覆盖 变量声明,但不会覆盖 变量赋值


4.this 变量:永远指向函数运行时所在的对象,
而不是函数被创建时所在的对象。
如果处在匿名函数中、或者不处于任何对象中,
this 都指向宿主的根对象(在浏览器里面就是 window)

javascript中还用 call() 和 apply() 来调用函数,
再记住下面这两句话:
如果是call()、apply()、with(),指定的this是谁,就是谁 !
普通的函数调用,函数被谁调用,this就是谁。
bubuko.com,布布扣

js基础细节

原文:http://www.cnblogs.com/fumj/p/3534250.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!