Javascript入门学习第二篇 js类型

 更新时间:2008年07月06日 09:58:09   作者:  
上篇文章讲了js中的一些概念(词法结构) 和 数据类型(部分)。 这章我们 继续.然后了解下js中操作数据 和 函数的 作用域。

4,垃圾收集机制:
Js中自动释放内存。
比如:
var  s  =”heelo”;
var  b   = s.toUpperCase();
s=b; //运行到这里后,js会自动检测不再使用某个对象,因为s=b了,所以js会自动释放字符串“heelo”所占的存储空间。即我们不能再获取原始的 “heelo” 值;.

5 , javascript变量:
Js是非类型的。它的变量可以放任何类型的值。

变量的声明:
var  a  ;
var  b  ;
或者
var  a , b ;
或者
var  a=0 , b=1 ;

重复声明 是合法的,
如果 遗漏声明 , js会隐式的声明该变量。当然隐式声明的变量总是全局变量。

6 , 变量的作用域:
Js有2种:全局和局部。
从名字的定义可以知道,全局变量的作用域是全局性的。
在js代码中,处处都有定义。
局部变量的作用域是局部的。
在函数体内定义。

同名的局部变量的优先级比同名的全局变量高,下面的例子说明了这点:
var a ="abc"; //全局变量
function check(){
var a = "efg"; //同名的局部变量
document.write(a); 
}
check(); //  输出 efg

看一个比较经典的例子:
   var scope = "global";
 function f(){
     alert(scope); //输出 undefined
     var scope = "local";
     alert(scope); //输出 local
}
f();

为什么第一个会输出undefined 呢?
因为js规定当 局部变量和全局变量的名称相同的时候,函数体内的同名全局变量会被隐藏。
那么刚才例子 实际 等价于:
function f(){
var scope;
 alert(scope); 
     scope = "local";
     alert(scope);
 }
f();
OK,如果你看懂了这个例子,说明你对局部和全局的一些区别稍微了解了。

7 , 变量的作用域:
从里到外:
词法作用域    作用域链    变量查找
var x = 1;
function f(){
  var y =2 ;
 function g(){
   var z =3 ;
}

}    调用g()对象; z =3 ;

  


调用f()对象; y =2 ;




全局变量  x = 1       在此定义了吗?
         是
 否           
获得值
 在此定义了吗?
         是
 否           
获得值
在此定义了吗?
         是
 否           
获得值
 未定义

8 , 客户端全局变量:
 在客户端js中,Window对象代表浏览器窗口,他是一个全局对象。、
比如 ;我们常用的 parseInt() , Math() 都是Window对象定义的属性。

Js允许多个全局变量的执行环境,每个环境有不同的全局对象。
比如:客户端js的每个独立的浏览器窗口,或者同一窗口的不同帧。
其中的代码都运行在自己的执行环境中,具有自己的全局对象。
当然可以使用 表达式 parent.frames[0].x  ; 来引用第一个帧中的全局变量 x  ;这样就把不同帧中的代码联系起来了。
不过这里有安全性问题。

总结;
主要讲了 传值和传址 和 函数的作用域 。
对新手来说稍微难理解些。如果还有不懂,可以google 搜索资料
或者联系我 ,可以去我的blog 给我留言 :
http://www.cssrain.cn/LoadMod.asp?plugins=GuestBookForPJBlog

今天讲到这里了,呵呵,明天继续。相信大家的js技术会一步步提高的。

相关文章

  • Javascript的迭代器和迭代接口详解

    Javascript的迭代器和迭代接口详解

    这篇文章主要为大家详细介绍了Javascript的迭代器和迭代接口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • js 使用form表单select类实现级联菜单效果

    js 使用form表单select类实现级联菜单效果

    本文介绍javascript使用html中form表单中的select类实现级联菜单效果,需要的朋友可以了解下
    2012-12-12
  • 简介JavaScript中setUTCSeconds()方法的使用

    简介JavaScript中setUTCSeconds()方法的使用

    这篇文章主要介绍了简介JavaScript中setUTCSeconds()方法的使用,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • javascript数组去重方法总结(推荐)

    javascript数组去重方法总结(推荐)

    这篇文章主要介绍了javascript数组去重方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • js时间比较示例分享(日期比较)

    js时间比较示例分享(日期比较)

    这篇文章主要介绍了js时间比较示例,代码简单,运行后可以看到结果,需要的朋友可以参考下
    2014-03-03
  • 一文搞懂JavaScript中原型与原型链

    一文搞懂JavaScript中原型与原型链

    js中的原型与原型链应该是老生常谈的话题了,在前端面试中基本都是必问的一个问题,但是很多人还是稀里糊涂的,只知道其表层含义。本文将带大家深入了解JavaScript中的原型与原型链,感兴趣的可以学习一下
    2022-05-05
  • JavaScript函数节流和函数去抖知识点学习

    JavaScript函数节流和函数去抖知识点学习

    这篇文章给大家分享了JavaScript函数节流和函数去抖的相关的知识点内容,有需要的朋友们可以学习参考下。
    2018-07-07
  • ES6基础语法之函数介绍

    ES6基础语法之函数介绍

    这篇文章介绍了ES6中函数的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 关于Js中new操作符的作用详解

    关于Js中new操作符的作用详解

    这篇文章主要给大家介绍了关于关于Js中new操作符作用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • JavaScript中用于生成随机数的Math.random()方法

    JavaScript中用于生成随机数的Math.random()方法

    这篇文章主要介绍了JavaScript中用于生成随机数的Math.random()方法,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06

最新评论