我的javascript学习笔记

虽然现在能用硬编码与隐藏帧的方式进行异步的调用了,也作了很多东西。但对javascript的细节和特性还是很模糊的,还是停留在对“顺序-循环-选择”基本概念上。用一点,查一点。虽然现在工作很忙,也很累。但只要一天学一点,可能一年之后就不一样了。古人云:不积跬步,无以至千里;不积小流,无以成江海。不学那么多,一天一点点。

基本认识:脚本语言 解释执行 基于对象 弱类型 应用环境多样 很流行

[2008-02-15]关于JavascriptJscript

在学习javascript之前,应该对javascriptjscript之间的联系与区别有一个基本的认识!jscript是“微软”公司对“ECMA262规范[ECMAScript 编辑器 3]”的一种实现,至于什么是ECMA不在讨论的范围,可以到网上Down一些相关资料。Javascript是从Livescript发展而来的,是由原Netscape(网景)开发的,以浏览器为宿主的客户端脚本语言。它们在词法、语法上没有不同,只是在一些细节方面有些出入。就语言本身并无太大区别,,只是应用的环境不同。Javascript主要运行中浏览器中[在IE中,你也可以写成jscript.谁让都是微软孩子呢]。Jscript主要应用是WEB服务端脚本,如:在ASP框架之中,,在.Net搭建Jscript.Net的环境中。不过在很长一段时间,ASP/Javascript Jscript.Net 的应用不是太常见,也一直被人视为异端。不过可以看到,由于AJAXjavascript的面向对象重构思考,ASP/Jscript 也会在javascript的革命中受益!这只是一些肤浅的认识,关于Jscriptjavascript的种种关系和ECMA还要许多没有清楚的地方,应用的时候根据环境的不同有很大的区别!下面是关于javascript的一段定义!

//-------------------------------------------------------------------------------------------------------------------------------------------

JavaScript语言的前身叫作Livescript。自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原有的Livescript 重新进行设计,并改名为JavaScript。
JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,有了JavaScript,可使网页变得生动。使用它的目的是与 HTML超文本标识语言、Java 脚本语言一起实现在一个网页中链接多个对象,与网络客户交互作用,从而可以开发客户端的应用程序。它是通过嵌入或调入在标准的HTML语言中实现的。
JavaScript语言和Java语言它们是两个公司开发的不同的两个产品,Java是SUN公司推出的新一代面向对象的程序设计语言,特别 适合于Internet应用程序开发;而JavaScript是Netscape公司的产品,其目的是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言。
JavaScript是基于对象的,而Java是面向对象的,也即Java是一种真正的面向对象的语言,即使是开发简单的程序,也必须设计对 象。JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象和事件驱动的编程语言。因而它本身提供 了非常丰富的内部对象供设计人员使用。[javascript的名字完全出于商业考虑,是为了沾JAVA的光。他的语法看起来像JAVA,而实际便更像scheme\self等函数式语言](functional language)]

//-------------------------------------------------------------------------------------------------------------------------------------------
[2008-02-16]javascript基础知识
语句
:js语句以分号为终止符。可用一对{}括起来形成语句块[有时是必须的],通常函数与条件语句中使用语句块!
注释:单行使用“//”.多行以“/*”开始,以“*/”结尾,注意多行注释的嵌套。
变量声明:显示声明可以用var ,隐式声明可以真接给一个“标识符”赋值!在没有显示或隐式的声明一个变量之前,使用它会报错不存在。如果在声明变量时没有赋值,则会自动取值undefined。那么undefined与null有什么区别呢。在microsoft的文档中有如下说法:JScript 中 nullundefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN (不是一个数字)。对 null 值和 undefined 值作比较总是相等的。

 

变量命名:与其它语言的命明则是一样的。只能以[大小写字母或下划线开头],且变量命名只能使用大小写字母、数字、下划线。
转换:js是一种弱类型的语言,不像其它的强类型语言[如:c,c#,java],必须对变量的数据类型进行声明且运算时须将不同类型的值强制转换。js的变量可以赋任何值 ,任何值都可能进行运算。
下面是一些规则[microsoft jscript帮助文档,我就在看这个文档学习]
运算 结果
数值与字符串相加 将数值强制转换为字符串。
布尔值与字符串相加 将布尔值强制转换为字符串。
数值与布尔值相加 将布尔值强制转换为数值。
var x = 2000; // 一个数字。
var y = "Hello"; //
一个字符串。
x = x + y; // 将数字强制转换为字符串。
document.write(x); // 输出 2000Hello
数据类型
基本类型:数值[整数与浮点数]、字符串、布尔
引用类型:对象、数组
特殊类型:Null与undefined [Null等于undefined]
              Null:Js中Null不等于0/typeof(null)返回object,非null
              Undefined:对象属性不存在/声明变量未赋值 返回undefined
[2008-02-22]javascript运算符
运算符简表

计算 逻辑 位运算 赋值 杂项          
描述 符号 描述 符号 描述 符号 描述 符号 描述 符号
负值 - 逻辑非 ! 按位取反 ~ 赋值 = 删除 delete
递增 ++ 小于 < 按位左移 << 运算赋值 oP= typeof 运算符 typeof
递减 -- 大于 > 按位右移 >>     void void
乘法 * 小于等于 <= 无符号右移 >>>     instanceof instanceof










除法 / 大于等于 >= 按位与 &     new new
取模运算 % 等于 == 按位异或 ^     in in
加法 + 不等于 != 按位或 |        
减法 - 逻辑与 &&            
    逻辑或 ||            
    条件(三元运算符) ?:            
    逗号 ,            
    严格相等 ===            
    非严格相等 !==            
特别记忆的
delete[从对象中删除一个属性,或从数组中删除一个元素。在javascript中对象实际上就是一个化装了的数组,你可用数字下标,可以用键行索引]
//--
    格式:delete 表达式
    返回值:boolean
    例:   
        <script language="JavaScript">
            <!--
                var myarray=new Array("a","b","c");    
                //输出数组
                alert(myarray);
                //删除数组元素,并输出
                delete myarray[2]
                alert(myarray);
            -->
        </script>
//--
in [检对象是否存在对应的方法]
//--
    格式:方法名[字符串类型]   in   对象
    返回值:boolean
    例:
   
        <script language="JavaScript">
            <!--
                var nobj=new Object;
                nobj.nmethod=function()
                {
                    alert('aptana is good!');
                }
                alert("nmethod" in nobj);
            -->
        </script>
//--
instanceof[检查对象是不是一个类的实例]
    格式:对象  instanceof   class
    返回:boolean
    例:
   
//-
         <script language="JavaScript">
            <!--
            function class1(){}
            function class2(){}
            var newclass=new class1();
            alert(newclass instanceof class2);
            alert(newclass instanceof class1);
            -->
        </script>
//-
Javascript程序控制
1.选择结构
   
  • 单一选择结构(if),
  • 二路选择结构(if/else),
  • 内联三元运算符 ?:
  • 多路选择结构(switch)。
    if()
    {单语句可选}
   
    if()
       {}
    else
        {}
 

    if()
    {}
    elseif()
    {}
    else
    {}
   
    Switch(表达式)
    {
    case lable:
          counite//break;
    ..
    default:
    }
2.循环结构
  • 在循环的开头测试表达式(while),
  • 在循环的末尾测试表达式(do/while),
  • 对对象的每个属性都进行操作(for/in),
  • 由计数器控制的循环(for)。
[2008-03-17]

js提供了一些内部函数
我们也可以自定义函数,注意区分大小写。参数的实际数量并不影响调用。
Javascript函数
function a(a_,b)
{
    alert(a_);
}

调用时可以 a('a');即可,我很喜欢这一点很灵活!

使用消自框
1。alert();警告
2。confirm();确认操作,返回true 或 false
3。prompt;要求输入,我在IE7下用的时候用些问题。!

posted on 2008-02-15 13:37  问题不大  阅读(359)  评论(0编辑  收藏  举报

导航