JavaScript基础知识完整版课件.ppt
《JavaScript基础知识完整版课件.ppt》由会员分享,可在线阅读,更多相关《JavaScript基础知识完整版课件.ppt(364页珍藏版)》请在三一办公上搜索。
1、JavaScript,第一章JavaScript概述,第一节 JavaScript简介,一、JavaScript是什么?JavaScript是一种基于对象(内置了许多对象)和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。,知识扩充:1、事件驱动:用户与网页交互时产生的操作,称为事件。事件可以由用户引发,也可能是页面发生改变,甚至还有你看不见的事件(如Ajax的交互进度改变)。绝大部分事件都由用户的动作所引发,如:用户按鼠标的按键,就产生click事件,若鼠标的指针在链接上移动,就产生mouse
2、over事件等等。在JavaScript中,事件往往与事件处理程序配套使用。,2、客户端脚本语言:不同于服务器端脚本语言,例如PHP与ASP,JavaScript是客户端脚本语言,也就是说JavaScript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行。JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。解释语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行,并且速度较慢。,二、JavaScript发展历史:1、1995年2月,就职于NetScape公司 布
3、兰登 艾奇,开发一种名为LiveScript的脚本语言,为了赶在发布日期前完成LiveScript的开发,NetScape与Sun公司建立了一个开发联盟。为了搭上媒体热炒的Java的顺风车(当时Java已经很火),临时把LiveScript改名为JavaScript(1.0)。2、此时,微软在其Internet Explorer 3中加入了名为JScript的JavaScript实现(命名为JScript是为了避开与NetScape有关的授权问题)。,3、微软推出JScript后,JavaScript出现了3个不同的版本:NetScape Navigator中的JavaScript、Inter
4、net Explorer中的JScript和ScriptEase中的CEnvi。当时没有标准规定JavaScript的语法和特性,3个版本并存的局面已经暴露了这个问题(不兼容问题)。所以,JavaScript的标准化问题被提上了议事日程。4、1997年,欧洲计算机制造商协会(ECMA)完成了ECMA-262(发音“ek-ma-script”)的新脚本语言的标准。,5、以后,浏览器开发商就开始致力于将ECMAScript作为各自JavaScript实现的基础,也在不同程度上取得了成功。注:虽然JavaScript和ECMAScript通常都被人们用来表达相同的含义,但JavaScript的含义却
5、比ECMA-262中规定的多得多。一个完整的JavaScript实现由下列3个不同的组成部分:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。,三、JavaScript开发及运行环境1、开发环境:JavaScript是一种脚本语言,代码不需要变异成二进制,而是以文本的形式存在,因此任何文本编辑器都可以作为其开发环境,比如记事本(虽然很少人使用)、EditPlus、Ultra Edit(UE)、Dreamweaver等。,2、运行环境:JavaScript依赖于浏览器,即浏览器是JavaScript的运行环境。当前主流浏览器都能运行今后学习的JavaScript代
6、码,若出现浏览器兼容问题,到时会请同学们注意。不同的编辑器会对语法进行简单的错误识别,不同的浏览器也提供对JavaScript程序的调试功能。问:还记得当前主流的浏览器吗?,注意:一个页面中只要一个地方JavaScript语法错误,则整个JavaScript程序都不执行。为我们找错和调试带来了困难。,第二节 定义和使用JavaScript方式,1、定义方式(1)嵌入HTML文件中一般放在(事实上可以放在任何位置)中,格式:/此处为JavaScript代码,(2) 定义专门的外部文件 将JavaScript代码写在一个独立的脚本文件(扩展名为.js)中,在页面中使用时直接导入该脚本文件即可,导入
7、的格式: 注意:不能这么写: 错误!必须有结束标签,知识扩充:除了上面两种最为常用的方式外,还可以在一下地方定义JavaScript代码:(1)在HTML的元素事件属性中 比如,按钮的单击事件,代码:示例:,(2)在超链接中定义 语法:超链接示例:效果:,2、一个简单的JavaScript的例子(1)嵌入到HTML文件中,单击后显示的效果,(2)定义专门的js文件A、定义一个扩展名为.js的文件,其中定义如下代码:,B、定义一个HTML文件,导入该外部js文件,并调用js文件中的代码:,C、单击“按钮”后,同样实现效果:,三、作业1、在HTML嵌入一段JavaScript代码,并定义一个按钮,
8、当点击按钮时,弹出“欢迎学习JavaScript”。2、将上题的JavaScript代码放在单独的js文件中,运行。,第二章 JavaScript语言基础,一、对一些问题的说明:1、区分大小写:JavaScript中的变量、函数名和操作符都区分大小写,关键字不能做变量或函数名字。所以,test和Test是两个变量,typeof因是关键字所以不能是函数名或者变量名。2、标识符:就是变量、函数、属性、函数的参数等。规定:(1)第一个字符必须是字母、下划线(_)、美元符号($)。(2)其他字符可以是字母、下划线、美元符号或数字。,第一节:数据类型、变量和运算符,3、注释:包括单行注释和多行注释。(1
9、)单行注释:/ 如: /这是一个单行注释(2)多行注释 /* */如:/*这是一个多行注释*/,4、语句:JavaScript中语句以一个;结尾(英文分号)。但可以省略 ; 。比如:注:分号虽不是必须的,但建议必须加上它,这样可以提高效率(解析器不必再花时间推测应该在哪里插入分号了)和避免错误。,5、在控制语句中,单行语句可以不加(不放在代码块中),但强烈加上即使代码块中只有一条语句。多行语句如果放在一个代码块中执行,必须加,二、数据类型JavaScript是弱类型脚本语言,使用变量之前,无须定义,想使用某个变量时直接使用即可,JavaScript会根据需要自动确定数据类型和进行数据类型的转换
10、,但每个变量还是要确定数据类型的。JavaScript中数据类型基本数据类型(简单数据类型)和复合数据类型(复杂数据类型)两类,不同大类下面又有自己的小类,如下表:,1、typeof操作符:用来检测给定变量的数据类型对一个值使用typeof操作符可能返回下列某个字符串之一:(1)undefined:值未定义时。(2)boolean:值是布尔值时。(3)string:值是字符串时。(4) number:值是数值时。(5)object:值是对象或者null(代表空对象引用)。(6)function:值是函数时。,示例:,注:A、typeof操作符的操作数可以是变量也可以是数值字面量。如:B、因ty
11、peof是一个操作符而不是函数,所以可以使用小括号(())将操作数括起来,也可以不使用,如:C、typeof(null) 返回值是object,原因在于特殊值null被认为是一个空对象的引用(一个对象为空时,值是null)。上页中有例子。,2、Undefined类型:该类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量值就是undefined。(注意值为小写,JS大小写敏感)。示例:,知识扩充:包含undefined值的变量和尚未定义的变量是不一样的。例如:,对于尚未声明的变量,可以使用typeof操作符检测其数据类型。返回值也为:undefined
12、值,和定义后未赋初值的变量一样。即使用一个未定义的变量时没有值,但其类型为Undefined。,建议:定义一个变量时显式地初始化变量。,3、Null类型:只有一个值,即:null。null值表示一个空对象(这正是使用typeof检测null值会返回“object”)。如:,知识扩充:如果定义的变量准备将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样,直接检查null值就可以判断相应的变量是否已经保存了一个对象的引用:var car=null;/其他操作if(car!=null) /前提是car已赋初值null/对car进行某些操作另:,4、Boolean类型:该类型有两个值
13、:true和false。(必须全是小写)可以将其他值通过Boolean()函数转换为Boolean类型,返回值取决于要转换值的数据类型和实际值。,其他类型转为Boolean类型的规则:,知识扩充:使用流控制语句(比如if语句)时,会将其他值自动转换为相应的Boolean转换(根据相应的数据类型和对应的值)。比如:运行结果:,5、Number类型:包括整数和浮点数值(双精度数值)。除了常用的十进制外,还可以表示八进制和十六进制。八进制的第一位必须是0,后跟(07),十六进制前两位是0 x,后跟(09及AF)。八进制和十六进制表示的数值最终将被转换为十进制。,(1)浮点数值:该数值中必须包含一个小
14、数点。var num1=1.1;var num2=0.1;var num3=.1;/有效,但不推荐。如果数值只有小数部分,则可以省略整数部分的0。,(2)数值转换:2个函数将非数值转换为数值:parseInt():用于将字符串转换成整数数值。parseFloat():用于将字符串转换成浮点型数值。,arseInt():将字符串转换为整数。规则:A、它会忽略字符串前面的空格,直至找到第一个非空格字符,如果第一个字符不是数字字符或者负号,则返回NaN。B、转换空字符串返回NaN。 C、如果第一个字符是数字字符,会接着进行解析,直到完成或者遇到非数字字符。,D、使用该函数的第二个参数指定转换时要转成
15、的进制数。指定基数会影响到转换的输出结果:,arseFloat():将一个字符串转成浮点数。和parseInt基本相同,区别:(1)字符串中的第一个小数点是有效的,第二个小数点是无效的,后面的字符串会被忽略。“22.34.5” 转成 22.34(2)始终会忽略前导0(把前导0直接去掉),十六进制数始终被转成0,只解析十进制数,所以没有第二个参数。即只能转成十进制(3)字符串中没有小数点或小数点后边全是0,则该函数返回整数。,注意:如果需要将表单中的数值(字符串)在前台通过JS进行算数运算时,必须先使用parseInt或者parseFloat进行转换再运算。,知识扩充:(1)保存浮点数值需要的内
16、存空间是保存整数的两倍,因此js会自动将一些能够转换为整数的自动转换为浮点数,如小数点后没跟任何数字(如1.)或者浮点数本身是个整数(如1.0)。如:结果都为1:,(2)可以使用e表示法(科学计数法),值为e前面的*10的指数次幂。var num=3.125e7; /等价于 31250000var num=3e-7;/0.0000003;,(3)由于精度问题,导致进行浮点数的算数运算时有时结果不准确。如:第一个alert输出: 第二个输出:,(4)数值范围:ECMAScript表示的最小数值是:Number.MIN_VALUE(一般浏览器该值是:5e-324)能够表示的最大值是:Number.
17、MAX_VALUE.上面两个值,不同浏览器会有区别,使用下面的语句可测出:,(5)NaN:(Not a Number)。表示一个本来要返回数值的操作未返回数值的情况,比如:任何涉及NaN的操作(如NaN/10)都会返回NaN 。NaN与任何值都不想等。包括NaN本身。alert(Nan=Nan);/falseisNaN(),用来判断数值是否“不是数值”,不是数值时返回true,否则,返回false。,6、String类型:表示由0或多个16位Unicode字符组成的字符序列(每个字符16位Unicode编码),即字符串。字符串既可以是双引号()也可以是单引号()表示。下面的表示都是合法的:va
18、r str1 = “hello”; var str2 = hello这两种表示的语法在解释上没有任何区别,但必须匹配,否则会出现错误。,(1)有一些转义字符具有特殊含义:n (换行)t(制表)b(空格) r(回车) f(进纸) (斜杠) (单引号) ”(双引号),(2)length:该属性返回字符串的长度。关于汉子等双字节字符,length属性可能不会精确地返回字符串中的字符数目。(实际上,js中双字节字符算一个长度,是由unicode编码决定的(该编码用2个字节表示) alert(软件系.length);/3,(3)【了解】字符串是不可变的,即,字符串一旦创建,值不能再改变。要改变某个变量保
19、存的字符串,首先要销毁原来的字符串,然后再用一个包含新值的字符串填充该变量。var lang=”Java”;/开辟空间lang = lang+”Script”;/Scirpt字符串也会开辟空间。再开辟一个容纳Java和Script的空间放新串,并且销毁原来的2字符串空间。这样对于以前的浏览器性能较低,现在已解决了这个效率低的问题。,(4)【了解】将其他数值转换为字符串: A:.toString():函数 可以将其他数值(包括字符串,除了null和undefined值)转换为字符串表现。 var age=11; var ageAsString = age.toString();/”11” var
20、 bool=true; var boolAsString = bool.toString();/”true”特别注意null和undefined无法转成字符串。可以为该函数指定一个参数(值为2、8、10、16)分别用以转换数值时变成不同进制的字符串数据。,var num=10;num.toString(2);/1010 ,转成二进制num.toString(8);/12,转成八进制num.toString(10);/10 ,转成十进制num.toString(16);/A 或a ,转成十六进制B:String(要转换的数值):该函数和.toString()的区别在于可以转换null和undef
21、ined值。var value1=null,value2;String(value1);/nullString(value2);/undefined,作业: 1、使用typeof关键字测试不同变量的数据类型,并输出他们的数据类型。 2、使用parseFloat函数,编写一个可以进行加、减、乘、除、取余运算的简单计算器。,三、变量:JavaScript的变量是松散类型的,所谓松散类型是可以用来保存任何类型的数据;并且一个变量的值类型是可变的。,1、定义方式:A、使用var操作符(关键字),后跟变量名的形式。,B、不适用var关键字,使用时直接赋初值。【不推荐】,2、作用范围:根据范围不同,变量分
22、为:全局变量和局部变量。函数外边直接定义的变量称为全局变量,函数内部定义的变量称为局部变量。如:,很奇怪的是:JavaScript中函数内定义的变量没有块范围,而是在整个函数内有效,如:哪怕是在函数中间使用var声明的变量,在函数开始处照样有效,只是此时没有赋初值。,3、使用var和不使用的区别:A、使用var定义变量,程序会强制定义一个新变量;B、不使用var定义变量,系统会优先在当前上下文中搜索是否存在该变量,只有变量不存在的前提下,才会重新定义一个新变量。当然,推荐使用var在函数外边定义全局变量,而在函数内部使用var定义局部变量。,函数内部去掉var后,输出不同的结果:,四、操作符:
23、,1、+:既是字符串运算符又是加法运算符,在进行变量的运算时取决于变量的类型。 数字字符串和数值相加时,数值自动转为字符串再运算;想减时,字符串自动转为数值再运算。,2、=和=区别(!=和!=区别相同)=:先进行类型转换,再比较类型和值。(值相等,类型不同,则为true)=:不进行类型转换,比较类型和值。(值相等,类型相同,才为true),3、关系运算符也可以比较字符串,规则是按照字母的Unicode值进行比较,若第一个字母相同,则进行第二个的比较,以此类推。,4、typeof运算符,前面已经详细介绍。5、instanceof判断某个变量是否为指定类的实例。如:,作业:1、使用var声明两个整
24、型变量,分别输出它们的和、差、积、商、取余结果。2、声明 var=5和var=5,使用=和=判断它们是否相等。3、练习instanceof的用法。,第二节流程控制和函数,一、流程控制:1、选择结构:if 、switch2、循环结构:while 、do while、for、for in 3、终止循环:break、continue,关于for in:作用:(1)遍历数组中的所有数组元素 (2)遍历JavaScript对象的所有属性结果:,二、函数:1、定义函数的方式(2种):A、定义命名函数格式:function funcName(参数值)/函数体,比如:如:function sayHi(name
25、,message)alert(“hello”+name+”,”+message);,B、定义匿名函数:格式:var 变量名 = function(参数)/函数体,比如修改上面的函数为var sayHi = function (name,message)alert(“hello”+name+”,”+message);此处,sayHi的作用就是指向定义的函数,类似函数的名字。,2、函数调用的方式(3种):A、直接调用:函数名(实参值) ; /如果函数有参数时。比如调用sayHi函数:,B、在表达式中调用这种方式比较适合有返回值的函数,返回值作为表达式的一部分参与运算,有时还会和(alert、doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaScript 基础知识 完整版 课件

链接地址:https://www.31ppt.com/p-1565816.html