admin 管理员组

文章数量: 887021


2023年12月21日发(作者:remble)

第一章

1、大小写敏感

2、空格与换行

代码中多余的空格会被忽略,同一个标识符的所有字母必须连续;

一行代码可以分成多行书写;

代码写于一行中,用分号作为语句结束标志

当两个程序语句处于一行中时用分号隔开,否则可以不用分号

Eg:var r = 2

var pi =

var s = pi * r * r

("半径为2单位的圆面积为:" + s + "单位")

3、单行

4、可有可无的分号

第二章

2.1基本数据类型

 在JavaScript中,字符串型数据是用引号括起的文本字符串。

在JavaScript中不区分“”和“”,字符也被当作字符串处理。字符串中可以包含用于特殊目的的字符。

Eg:var hello = "你好啊";

var name = 'Peter';

(hello + name+"

");

 数值类型

JavaScript中用于表示数字的类型成为数字型,不像其他编程语言那样区分整型、浮点型。数字型用双精度浮点值来表示数字数据,可以表示(-253,+253)区间中的值。数字的值可以用普通的记法也可以使用科学记数法。表示方法如下所示:

Eg:

10; // 数字,普通记法

10.1; // 数字,普通记法

0.1; // 数字,普通记法

3e7; // 科学记数

0.3E7; // 科学记数

2.2 复合数据类型

 对象概念

在面向对象的设计模式中,将数据和处理数据的方法捆绑在一起形成的整体,称为对象。它封装了数据和操作数据的方法,使用时要先创建这个对象,用new运算符来调用对象的构造函数。

Eg: date=new Date();

 日期对象

JavaScript将与日期相关的所有特性封装进Date对象,主要用来进行一些与时间相关的操作,比如获取当前系统时间,使用前要先创建该对象的一个实例。

 全局对象

全局对象是所有全局方法的拥护者,用来统一管理全局方法,全局方法也就是指全局函数。该对象不能使用new运算符创建对象实例,所有方法直接调用即可。

 数学对象

数学对象(Math)封装了与数学相关的特性,包括一些常数和数学函数,主要使用一些基本的数学计算。比如求正弦、余弦、正切、取绝对值等。

Eg:var r = 2

var pi =

var s = pi * r * r

("半径为2单位的圆面积为:" + s + "单位")

 字符串对象

String对象封装了所有与字符串有关的特性,主要用来处理字符串。通过String对象,可以对字符串进行剪切、合并、替换等等。可以调用该对象的构造函数创建一个实例,其实在定义一个字符串类型变量时就也创建了一个String对象实例。

调用String对象的方法或属性形式如“对象名.方法名”或“对象名.属性名”,构造函数如下:

String([strVal]);

Eg:var comment = "静夜思李白床前明月光,疑是地上霜,举头望明月,低头思故乡。";

var partial = ing(0, 3);

partial = ();

("

");

(partial);

partial = (3, 5);

("

");

(partial);

partial = (5, 17);

partial = lor("gray");

("

");

(partial);

partial = (17, 29);

partial = lor("gray");

("

");

(partial);

("

");

 数组

数组是JavaScript中另一重要的基本数据类型。内部对象Array封装了所有和数组相关的方法和属性,其内存在多个数据段组合存储。可以形象的理解为一种有很多连续房间的楼层,每个房间都可以存放货物,提取货物时只需要给出楼层号和房间编号即可。

Eg:

varpoots = new Array("王维", "杜甫", "李白", "白居易");

("古代几个大诗人:

");

for (n inpoots) {

("

" + poots[n]);

}

2.3 其他数据类型

 函数

在JavaScript中,“函数”充当了两个角色,一个运用在数据类型方面,另一个运用在子程序设计方面。

 空值

之前所讲过的每一种JavaScript数据类型都有自己的内容,而编程中却需要一种类型来表示“什么都没有”。null类型就是为此目的而产生,其表示一个空

值。可以使用null和一个变量进行比较以测试该变量是否拥有内容,通常用来判断对象的创建或引用是否成功。

 不确定的类型

null值表示一个变量拥有空值。可以理解为已经把“空”给了某个变量,而undefined则表示一个变量什么都没有得到,连“空”都没有。通常用来判断一个变量是否已经定义或已经赋值。

2.4 数据类型的转换

 隐式转换

在程序运行时,系统根据当前上下文的需要,自动将数据从一种类型转换为另一种类型的过程称为隐式类型转换。其实这个转换很多时候都在我们身边悄悄发生,比如我们使用和alert方法时,很多时候就发生了隐式转换,也就是无论你向这两个方法中输入什么类型的数据,最后都被转换为字符串型数据。

 显式转换

与隐式类型转换相对应的是显式类型转换,此过程需要手动转换到目标类型。要将某一类型的数据转换为另一类型的数据需要用到特定的方法。

Eg: varpriceOfApple = "3元";

varpriceOfBanana = "3.5元";

priceOfApple = parseInt(priceOfBanana);

var priceOfBanana2 = parseInt(priceOfApple);

if ((priceOfApple === 3) && (priceOfBanana2 === 3) &&

(parseFloat(priceOfBanana) === 3.5)) {

alert("苹果的价格:" +priceOfApple

+ "n香蕉的价格的整数部分:" + priceOfBanana2

+ "n香蕉的价格:" +parseFloat(priceOfBanana));

}

else {

alert("并没有得到预期的转换效果!");

}

第三章变量和常量

3.1 常量

3.1.1 常量的种类

在数学和物理学中,存在很多种常量,它们都是一个具体的数值和一个数学表达式。然而在编程语言中基于数据类型的分类,常量包括字符串型、布尔型、数值型和null等。

3.1.2 常量的使用方法

常量直接在语句中使用,因为它的值不需要改变,所以不需要再次知道其存储地点。

Eg:("

  • JavaScript编程,乐趣无穷!

    ");

    ("

  • " + 3 + "周学通JavaScript!");

    if (true) {

    ("

  • if语句中使用了布尔常量:" + true);

    }

    ("

  • 八进制数值常量011输出为十进制:" + 011);

    ("

  • 十六进制数值常量0xf输出为十进制:" + 0xf);

    3.2 变量

    3.2.1 什么是变量

    顾名思义,变量是指在程序运行过程中值可以发生改变的量。更为专业的说是指可读写的内存单元。可以形象的理解为一个个可以装载东西的容器,变量名代表着系统分配给它的内存单元。

    3.2.2 变量的定义方式

    Var变量名=值;

    变量名=值;// 省略了var,效果跟上面的定义一样

    Eg: varstr = "21天学通JavaScript!";

    var b = true;

    var n = 10;

    var m;

    var o = new Object();

    p = newObject();

    (str);

    ("

    ");

    (b);

    ("

    ");

    (n);

    ("

    ");

    (m);

    ("

    ");

    (o);

    ("

    ");

    (p);

    ("

    ");

    str = "这是一个字符串";

    b = false;

    n = 20;

    m = 30;

    o = newArray("data1", "data2");

    ("

    ");

    (str);

    ("

    ");

    (b);

    ("

    ");

    (n);

    ("

    ");

    (m);

    ("

    ");

    ("

    数组o的数据为:");

    (o);

    ("

    数组o的长度为:"+);

    ("

    ");

    varpp;

    (pp);

    3.2.3 变量的命名规则

    JavaScript变量的命名必须以字母或下划线开始,后可跟字母、下划线或数

    字,但不能使用特使符号。

    3.2.4 变量的作用范围

    作用域是指有效范围,JavaScript变量的作用域有全局和局部之分。全局作用域的变量在整个程序范围都有效,局部作用域指作用范围仅限于变量所在的函数体。JavaScript不像其它语言那样有块级作用域。变量同名时局部作用域优先于全局作用域。

    Eg:

    varnA = 10;

    functionfunc() {

    varnA = 20;

    ("

  • 局部作用范围的nA:"+nA);

    }

    func();

    ("

  • 全局作用范围的nA:" + nA);

    3.2.5 变量的用途

    变量主要用于存储数据,比如计算的结果、存储用户输入的数据等。一部分变量作为对象的引用,通过变量来操作对象的内容或调用对象的方法。

    3.3 JavaScript中的关键字

    关键字为系统内部保留的标识符,其用途特殊,用户的标识符不能与关键字相同。

    种类

    控制流

    常数/文字

    赋值

    对象

    运算符

    关键字

    break,continue,for,for……in,if…..else,return,while

    NaN,null,true,false,Infinity,NEGATIVE_INFINITY,POSITIVE_INFINITY

    赋值(=),复合赋值(OP=)

    Array,Boolean,Date,Function,Global,Number,Object,Math,String

    加法(+),减法(-)

    算术取模(%)

    乘(*),除(/)

    负(-)

    相等(==),不相等(!=)

    小于(<),小于等于(<=)

    大于(>),大于等于(>=)

    逻辑与(&&),或(||),非(!)

    位与(&)、或(|),非(~),异或(^)

    位左移(<<),右移(>>)

    无符号右移(>>>)

    条件(?:)

    逗号(,)

    delete,typeof,void

    递减(--),递增(++)

    函数

    对象创建

    其他

    Function,function

    new

    this,var,with

    第四章表达式与运算符

    4.1 表达式

    表达式是产生一个结果值的式子,JavaScript的表达式是由常量、变量和运算符等组成。

    表达式可以作为参数传递给函数,或将表达式结果赋予变量保存起来。

    表达式的结果值有多种类型,比如布尔型、字符串型或数值型等,因此常有逻辑表达式、数值表达式和布尔表达式之说。

    4.2 操作数

    操作数是指表达式中的变量或常量,在JavaScript中也包含表达式的返回值(实际上就是一个常量),常提供计算用的数据。

    下面是操作数在表达式中的形态。

    (A+B+C)/ D

    其中A、B、C、D就是操作数,而“+”和“/”则是操作操作符。操作数的数据类型由表达式的类型和运算符所支持的数据类型来决定的,上述代码中若表

    达式是数值表达式则需要A、B、C和D的类型皆为数值或可以转换为数值。

    4.3 运算符

    运算符是指程序设计语言中有运算意义的符号,类似于普通数学里运算符。通常,每一门数学都定义了一个数集和在数集上可以进行的运算。程序设计语言也一样,规定了其支持的数据类型以及数据可以进行的运算。JavaScript的运算符包含算术运算符、逻辑运算符和一些特殊的运算符。

    在JavaScript中有单目和多目之分,单目运算符带一个操作数,多目运算符带多个操作数。

    4.3.1 操作数的类型

    表达式中的操作数要么是常量要么是变量,常量和变量都有其特定的数据类型。构成表达式的操作数的数据类型是由变量或常量的类型来确定。

    4.3.2 算术运算符

     加法运算符:操作数类型要求为数值型,如果是字符串型则意义不同。

     减法运算符:操作数类型要求为数值型。

     乘法运算符

     除法运算符:操作数类型要求为数值型。JavaScript返回的商是实体集内的数据,也就是浮点型数据。

     模运算符:操作数的类型要求为数值型或能转换为数值型的类型。

     负号运算符(-):单目,取负也就是等于取反,等同于数学意义上的负号。

     正号运算符(+):单目,针对数值类型操作数,意义上等同于数学上的正号。

     递增运算符:操作数只能是变量,左结合(++a)在表达式中的效果是先递增再使用,右结合(a++)则是先使用再递增。

     递减运算符:情况与递增运算符相同。

    4.3.3 关系运算符

     相等运算符:两个操作数的数据类型可以任意。运行时,“==”操作符将

    两端的操作数转换为同一种数据类型后再作比较。

     不等同运算符(!=)

     小/大于运算符:返回一个布尔值

     instanceof运算符:返回一个布尔值,表面看某对象是否是某个类的实例。得到一个对象时,有时需要得知其属于哪个类,确定对象的身份。

    eg: result = ObjinstanceofClassEditPlus;

     小/大于或等于运算符

     in运算符:检查对象中是否有某特定的属性。可以通过in运算符取得数组索引集合。

    eg:Result = property in Object;

    4.3.4 字符串运算符

     连接运算符(+):将两个字符串按顺序连接成为新的字符串。

    4.3.5赋值运算符

     赋值运算符(=):用于给变量赋值。赋值运算符将值与变量绑定起来,也就是说,值写入了变量所引用的内存单元。

    通常,给变量填入数据最直接的办法就是使用赋值运算符将值赋予变量。“=”左边必须是变量,右边可以是变量、常量或表达式。

    4.3.6逻辑运算符

     逻辑与运算符(&&)、逻辑或运算符(||),操作数被当成布尔类型,可以是变量也可以是常量。

     逻辑非运算符(!),对操作数的逻辑值取反,操作数可以是变量或常量。

     左移位运算符(<<),实现整体向左移动低位补0的功能。

    当移动的是有符号数,左边空出的位用数的符号位填充,向右移动超出的位将被丢弃,称为带符号右移位操作,其运算符为“>>”。当数是无符号数时,右移后在左边空出的位上填充0,称为无符号右移位,对应的运算符是“>>>”。

    4.3.7位运算符

     位与(&)是指把两个操作数所对应的二进制位相与,对应两个位都为1

    时结果值中对应位为1,否则为0。

     位或(|)是指对应位间如果都不为0则结果的相应位为1,否则为0。

     位异或(^)是当两个操作数对应位不相同时结果的相应位为1,否则为0。

     位非(~)实现对操作数按位取反运算,单目运算符。操作数可以是任意JavaScript类型的常量或变量。

    4.3.8 其他运算符

     条件运算符(?:)

     new运算符,它是创建对象的一种方式。可以直接使用new运算符创建一个类的实例对象。

     void运算符是用在表达式不需要返回值时,可以使用void运算符来避免表达式返回值。

     类型检测运算符,通过使用typeof运算符即可获得数据的类型名。typeof返回一个表达式的值的类型名。

     对象属性存取运算符(.),其作用是读取对象的属性、保存值到对象的属性或调用对象的方法。

     数组存取运算符,JavaScript提供“[]”运算符用于存取数组元素,方括号中是要存取的元素的下标。

     delete运算符,它可以删除对象的一个属性或数组的一个元素,JavaScript对象的属性可以动态添加。对于动态添加的属性可以用delete运算符将其删除。

     this运算符,“this”严格的说是一个关键字,也可以理解为运算符。面向对象的编程中要引用当前对象,this运算符可以返回当前对象的引用。this通常用在对象构造函数中,用来引用函数对象本身。

    eg:var student = new Object();

    = "Tom";

    = 20;

    = "男";

    ("

  • " + student["name"] + ": " +

    student["sex"]+" " + student["age"]);

    ;

    ("

    删除了age属性

  • " + student["name"]

    + ": " + student["sex"] + " " + student["age"]);

    4.4 运算符的优先级

    JavaScript中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具有较高优先级的运算符先于较低优先级的运算符得到执行。同等级的运算符按左到右的顺序进行,下面这个表把运算符的优先级从高到低进行了归纳。

    . [] ()

    ++ — - ~ ! delete new

    typeof void

    * / %

    + - +

    <<>>>>>

    <<= >>= instanceof

    == != === !==

    &

    ^

    |

    &&

    ||

    ?:

    = oP=

    ,

    字段访问、数组下标、函数调用以及表达式分组

    一元运算符、返回数据类型、对象创建、未定义值

    乘法、除法、取模

    加法、减法、字符串连接

    移位

    小于、小于等于、大于、大于等于、instanceof

    等于、不等于、严格相等、非严格相等

    按位与

    按位异或

    按位或

    逻辑与

    逻辑或

    条件

    赋值、运算赋值

    多重求值

    第五章控制语句

    5.1 选择语句

     if语句

     if-else语句

    if语句仅根据表达式的值决定是否执行某个任务,没有其它更多的选择,而if-else语句则提供双路选择功能。

     if-else-if语句

    当有多个可供判断选择的条件时,单个if-else语句显然不能表达,于是有了if-else-if语句。严格的说if-else-if不是单独的语句,而是由多个if-else组合而成,实现多路判断。

     switch语句

    用if-else语句实现多路选择结构使程序看起来不清晰,也不容易维护,于是可以选择switch语句代替之。switch实现多路选择功能,在给定的多个选择中选择一个符合条件的分支来执行。

    5.2 循环语句

    在编程中有些指令需要执行很多遍,这就要编写大量的代码。而计算机则是专门用来快速完成重复和繁琐的工作,因此编程语言也就提供循环语句来减少重复指令的编写。

    将重复执行的动作放在循环语句中,计算机将根据条件执行之。

    JavaScript的循环语句包括:for、while、do-while、for-in等4种。

    5.2.1 for语句

    遇到重复执行指定次数的代码时,使用for循环比较合适。

    在执行for循环执行体中的语句前,有三个语句将得到执行,这三个语句的运行结果将决定是否要进入for循环体。其执行顺序如下:

    5.2.2 while语句

    while循环在执行循环体前测试一个条件,如果条件成立则进入循环体,否则跳到循环后的第一条语句。

    一些重复执行动作的情形比较简单时就不需要用for循环,可以使用while循环代替。

    5.2.3 do-while语句

    do-while语句先执行一遍循环体,循环体内的语句执行之后再测试一个条件表达式。如果表达式成立则继续执行下一轮循环,否则跳到do-while代码段后的第一条语句。

    5.2.4 for-in语句

    for-in语句是for语句的一个变体,同样是for循环语句。

    for-in通常用于遍历某个集合的每个元素,比如数组有很多元素,其元素索引构成了一个集合,使用for-in语句可以遍历该集合,进而取得所有元素数据。其语法结构如下:

    for ( n in set)

    {

    }

     break语句将无条件跳出并结束当前的循环结构。

     continue语句的作用是忽略其后的语句并结束此轮循环和开始新的一轮循环。

    语句组;

    5.3 异常处理语句

    程序运行过程中难免会出错,出错后的运行结果往往是不正确的,因此运行时出错的程序通常被强制中止。运行时的错误统称为异常。

    5.3.1 try-catch语句

    try-catch是一个异常捕捉和处理代码结构,当try块中的代码发生异常时,将由catch块捕捉以及处理。

    try

    {

    var n = error; // 人为引发一个错误

    }

    catch( e )

    {

    // 错误处理:仅输出错误信息

    alert( (&0xFFFF) + "号错误:" + ption );

    }

    5.3.2 try-catch-finally语句

    try-catch-finally语句作用与try-catch语句一样,唯一的区别就是当所有过程执行完毕之后前者的finally块无条件被执行。

    try

    {

    var fruit = new Array( "鸭梨", "苹果", "葡萄", "李子" ); // 水果

    for( n=0; n<; m++ ) // 遍历数组,在此人为引发一个异常

    {

    ( fruit[n] + " " );

    }

    }

    catch( e )

    {

    alert( (&0xFFFF) + "号错误:" + ption ); // 处理异常

    }

    finally // finally块中清除数组所占的资源

    {

    fruit = null;

    alert( "fruit="+fruit+"已经断开fruit数组的引用!");

    }

    5.3.3 throw语句

    当多个结构嵌套时,处于里层try-catch语句不打算自己处理异常则可以将其抛出,父级try-catch语句可以接收到子级抛出的异常。

    try

    {

    var total = 100;

    var parts= 0;

    if( parts == 0 ) // 如果除数为0则抛出异常

    {

    throw "Error:parts is zero";

    }

    alert( "每人"+total/parts+"份"); //此处将捕获try块中抛出的异常

    }

    catch( e )

    {

    alert( e );

    }

    第六章函数

    6.1函数概述

    函数是完成特定任务的可重复调用的代码段,是JavaScript组织代码的单位。

    函数的主要功能是将代码组织为可复用的单位,可以完成特定的任务并返回数据。

    6.2 定义函数

    1、JavaScript的函数属于Function对象,因此可以使用Function对象的构造函数来创建一个函数。

    2、可以使用function关键字以普通的形式来定义一个函数。

    6.2.1 函数的普通定义方式

    普通定义方式使用关键字function,也是最常用的方式,形式上跟其它编程语言一样。语法格式如下:

    function 函数名( [ 参数1, [ 参数2, [ 参数N ] ] ] )

    {

    }

    function:必选项,定义函数用的关键字。

    函数名:必选项,合法的JavaScript标识符。

    参数:可选项,合法的JavaScript标识符,外部的数据可以通过参数传送到函数内部。

    语句组:可选项,JavaScript程序语句,当为空时函数没有任何动作

    return:可选项,遇到此指令函数执行结束并返回,当省略该项时函数将在右花括号处结束。

    表达式:可选项,其值作为函数返回值。

    [ 语句组 ];

    [ return [表达式] ];


  • 本文标签: 运算符 对象 变量 语句 数据