javascript高手必经之路(一)

1.javascript中没有块级作用域,函数中声明的所有变量,无论是在哪里声明的,在整个函数体中她们都是有定义的,用这一规则可以产生惊人的结果,以下结果说明了这一点
<script type="text/javascript">
<!--
var global = "global";
function f(){
alert(global);
var global;
}
f();
//-->
</script>
上面的代码输出undefined在函数体中alert的global变量其实是用的函数体中定义的变量,函数体中定义变量的顺序与使用无关,以上代码等价于
<script type="text/javascript">
<!--
var global = "global";
function f(){
var global;
alert(global);
}
f();
//-->
</script>
相反,如果删除“var global;”就会输出“global”,因为这里引用了全局变量,所以,将所有的变量集中起来放在函数的开头是一个良好的编程习惯。

2.javascript中数值,布尔值,null,和undefined都属于基本类型,对象和数组属于引用类型。
基本类型在内存中具有固定的大小,数值类型是基本类型中最大的数据类型,为八个字节

3.javascript中的变量和对象的属性之间没有根本的区别,当javascript的解释器开始运行的时候,它首先要做的事情之一就是在执行任何javascript代码之前创建一个全局对象,这个对象的属性就是javascript程序的全局变量,当生命一个javascript的全局变量的时候,实际上所做的是定义了那个全局变量的一个属性。而局部变量和函数的参数实际上是作为一个叫做调用对象的属性而存储的,用一个完全独立的对象来存储局部变量使得javascript可以防止拒不变量覆盖同名的全局变量的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值