韩顺平javascript笔记全套解析Word格式.docx

上传人:b****6 文档编号:19625904 上传时间:2023-01-08 格式:DOCX 页数:62 大小:3.11MB
下载 相关 举报
韩顺平javascript笔记全套解析Word格式.docx_第1页
第1页 / 共62页
韩顺平javascript笔记全套解析Word格式.docx_第2页
第2页 / 共62页
韩顺平javascript笔记全套解析Word格式.docx_第3页
第3页 / 共62页
韩顺平javascript笔记全套解析Word格式.docx_第4页
第4页 / 共62页
韩顺平javascript笔记全套解析Word格式.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

韩顺平javascript笔记全套解析Word格式.docx

《韩顺平javascript笔记全套解析Word格式.docx》由会员分享,可在线阅读,更多相关《韩顺平javascript笔记全套解析Word格式.docx(62页珍藏版)》请在冰豆网上搜索。

韩顺平javascript笔记全套解析Word格式.docx

scripttype=”text/javascript”>

****************************************************************************************<

noscript>

/noscript>

是一种防御性编码,如果用户的浏览器不支持javascript或者是设置过高的安全级别,那么就会显示出相应的提示洗洗,避免了在用户不知情下停止运行或者的都错误结果。

*******************************************************************************

(2)在javascript中用分号表示一个语句的结束

(3)Javascript是弱类型语言。

什么叫做弱类型语言。

在强类型语言中,使用变量之前,必须先声明变量的类型,才能使用。

而javascript则不需要这样使用。

 

5.案例1:

你的第一个程序,javascript高手都是从这里开始的,这个程序完成一个非常简单功能,在网页中弹出一个对话框,显示“helloworld!

(1)js的位置:

js的位置可以随意,但是一般用在<

标签

(2)js必须用

scriptlanguage=”javascript”>

js代码

☞如果没有使用<

包含起来的话,则浏览器则会视为普通文本

6.案例2:

对前面的程序,改成一个简单加法运算程序

◆js的变量的类型是怎样决定?

(1)js的数据类型是弱数据类型语言。

即在定义变量的时候,统一使用var表示,甚至可以去掉var关键字

(2)js中的数据类型是有js引擎来决定的。

数据类型可以变化的。

varname=”shopping”;

//js引擎知道name是字符串

name=22;

//这时name自动变成了数

varkk=2;

//kk是整数

varyy;

//y是undefined类型

7.javascript中的标识符

标识符指的是javascript中定义的符号,例如,变量名,函数名,数组名等。

标识符可以有任意顺序的大小小字母、数字,下划线和美元符号($)组成,但是标识符不能以数字开头,不能是javascript的保留关键字。

8.javascript是严格区分大小写的。

javascript中每条语句用分号“;

”结束。

9.注释:

单行注释//多行注释/**/

10.javascript的基本语法---数据类型:

Ø

基本数据类型:

通过typeof关键字,可以看到数据的类型

(1)Number(数值类型)

✧整型常量(10进制\8进制\16进制)

16进制以0x或者是0X开头,例如:

0x83;

8进制必须以0开头:

✧实型常量

12.32193.985E7等

✧特殊数值:

NaN(notisanumber)、Infinity、isNaN()、isFinite()

(2)Boolean(布尔类型)

true和false

(3)String字符串

“thisisabook”

复合数据类型:

特殊数据类型:

(1)undefine的例子:

scriptlanguage="

javascript"

>

vara;

window.alert("

a的数据类型"

+typeofa);

(2)null的例子:

vara=null;

11.javascript的基本语法---定义变量、初始化、赋值:

(1)定义变量:

vara;

(2)初始化变量:

在定义变量的时候,就赋值:

vara=45;

(3)给变量赋值:

先定义变量:

varnum;

再赋值:

num=33

12.javascript的基本语法---数据类型转换:

(1)自动转换:

javascript的数据类型是动态的

请看一个案例:

//num先定义成Number数据类型

varnum=22;

num="

helloword"

;

window.alert("

num的数据类型"

+typeofnum);

<

(2)强制转换:

请看案例:

如何将字符串转换成数字

//num先定义成String数据类型

vars="

123"

varnum=parseInt(s);

window.alert(typeofnum);

13.javascript中的运算符和java中的一样的,但是有几个注意点:

(1)案例一:

b先转成9,在比较

vara=9;

varb=’9’

if(a==b){

window.alert(“ok”);

}else{

window.alert(“faile”);

}

(2)在逻辑运算中,0、“”、false、null、undefined、NaN均表示false

vara=0;

if(a){

14.函数:

为完成某一个功能的代码的集合。

函数定义:

函数名位于关键字function之后,为了让代码易于理解,函数名应具有一定的意义。

注意点:

函数没有返回值类型。

形参数不写具体的类型。

15.eval()可以将一个字符串当成一个脚本运行

例如:

scriptlanguage=”javascript”type=”text/javascript”>

varstr=”window.alert(“ok”)”;

eval(str);

16.escape()可以将中文或日文转为ascii码:

unescape()反之。

一般这个函数相互配合,防止在浏览器中出现乱码:

varstr=”江西”;

varstr2=escape(str);

//转回来

varstr3=unescape(str2);

17.数组:

(1)为什么需要数组?

将一组数据放在一起,组成集合。

它由一对方括号[]包围,数组的每个元素用逗号分隔,数组元素可以是任意类型的数据

(2)创建数组:

var数组名=[元素值,元素值,```]

vara=[“shopping”,123,1.1,4.5,true]

(3)二维数组:

vara=[[1,2,3],[“hello”,”world”,”jiangxi”]]

=============================================================================================================================================================================================================================================

Js面向(基于)对象编程

一、⊙澄清概念

js中基于对象==js面向对象

js中没有类class,但是它取了一个新的名字叫原型对象,因此,类==原型对象

二、⊙为什么需要对象

问题提出:

/*

张老太养了两只猫:

一只名字叫小白,今年3岁,白色,还有一只叫小花,今年10岁,花色。

请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色。

如果用户输入小猫的名字错误时,则显示张老太没有这只猫猫。

*/

//传统方法比较麻烦

cat1_name="

小白"

varcat1_age=3;

varcat1_color="

白色"

//解决办法,把猫的属性集中,创建一种新的数据类(原型对象/类)

//用面向对象的方法来解决上面的问题

//这里就是一个类cat类

functioncat(){

}

//如果这样用

//cat()//函数

varcat1=newcat()//类

//这时cat1就是一个对象(实例)

cat1.name="

cat1.age=3;

cat1.color="

//从上面的代码我们可以看出

//1.js中的对象的属性可以动态添加

//2.属性没有限制

window.alert(cat1.name+cat1.age+cat1.color+cat.hobby);

三、⊙类(原型对象)和对象的区别和联系

(1)类是抽象的,概念,代表类事物

(2)对象是具体的,体表一个实体

(3)对象是以类(原型对象)为模板创建起来的实体

四、⊙创建对象的方式有五种

(1)工厂方法—使用newObject创建对象并添加相关属性.

(2)使用构造函数来定义类(原型对象).

(3)使用prototype

(4)构造函数及原型混合方式.

(5)动态原型方式.

目前我们先讲使用构造函数来定义类(原型对象),然后再创建对象实例.

基本语法:

function类名/原型对象(){

创建对象:

var对象名=new类名()

现在对对象特别说明:

1.js中一切都是对象

functionPerson(){}

window.alert(Person.constructor);

vara=newPerson();

window.alert(a.constructor);

//a对象实例的构造函数

window.alert(typeofa);

//a的类型是什么

varb=123;

window.alert(b.constructor);

window.alert(typeofb);

varc="

window.alert(c.constructor);

window.alert(typeofc);

//思考:

如何判断一个对象实例是不是Person类型?

if(ainstanceofPerson){

a是Person1"

);

if(a.constructor==Person){

a是Person2"

五、⊙补充说明(全局变量与局部变量的区别)

//全局变量

varabc=89;

functiontest(){

//在函数里,如果不带var,则表示使用全局的abc变量

//如果带var,则表示在test()中,定义了一个新的abc变量(局部变量)

abc=900;

test();

window.alert(abc);

访问对象的属性有两种方法:

(1)普通方式

对象名.属性名

(2)动态访问

对象名[“属性名”]

functionperson(){}

varp1=newperson();

p1.name="

阿华"

window.alert(p1.name);

//普通方式

window.alert(p1["

name"

]);

varval="

na"

+"

me"

window.alert(p1[val]);

//动态方式

对象引用问题的说明(图)

js还提供一种方式,主动释放对象内存

delete对象名.属性、;

//这样就会立即释放对象的这个属性的空间

六、⊙this

◇问题的提出:

functionPerson(){};

varp1=newPerson();

p1.name="

老韩"

p1.age=30;

window.alert(p1.name+"

"

+p1.age);

varp2=newPerson();

window.alert(p2.name);

//这里会输出什么呢?

(undefine);

这里我们可以看到window.alert(p2.name)会输出undefined

在实际编程中,我们可能有这样的需求,当我们创建一个对象后,就希望该对象自动的拥有某些属性

[比如:

当我们创建一个Person对象后,就希望该对象自动拥有name和age属性,这又怎么办?

]

◇使用this来解决

functionPerson(){

this.name="

abc"

this.age=30;

varp1=newPerson();

+p2.name);

◇可能有人会这样去思考问题

//***有些同学可能会这么想:

varname="

//私有的,只能在内部使用

varage=30;

this.name2="

abc2"

//this.name2表示name2这个属性是公开的

this.show=function(){//函数这就是Person类里面的一个公开的方法

+name+"

age"

+age);

functionshow2(){//这就是Person类里面的一个私有的方法,只能在类内部使用,

//如要一定要使用,只能通过公开方法(特权方法)来调用私有方法来实现

show2()"

p1.show();

//p1.show2();

//这里会报错

//window.alert(p1.name+"

//错误的

记住一句话:

哪个对象实例调用this所有的函数,那么this就代表哪个对象实例

This注意事项:

This不能放在类的外部使用,否则调用就变成window调用了

◇对象---成员函数

给一个对象添加(指定)函数的几种方式

1.通用常用方式:

this.show=function(){

name:

"

+this.name+"

age:

+this.age);

2.方式二:

functionshow1(){

window.alert(show1);

//这个解释下面的p2.show=show2的疑惑.这个输出的是上面

//的函数代码.(构造函数)

p2.show=show1;

//记住不要加括号

p2.show();

3.方式三:

varp3=newPerson();

p3.show=functionshow2(){

p3.show();

加强思考题看它们会输出什么?

题1.

+this.name);

show1();

//注意思考会输出什么?

提示谁调用它.this就代表谁

答案:

空白(undefined)

题2.

Varname="

nane:

abc2

4.方式四:

前几种方法有一个问题,那就是以上对象独占函数代码,这样如果对象过多,则会影响效率,js设计者,给我们提供了别一个方法,原型法:

这样多个对象可以共享函数代码,代码如下:

functiondog(){

//使用prototype去绑定一个函数给shout

dog.prototype.shout=function(){

window.alert('

小狗'

vardog1=newdog();

dog1.shout();

vardog2=newdog();

dog2.shout();

//ok

window.alert(dog1.shout==dog2.shout);

//返回true

//扩展

vardog3=newdog();

vardog4=newdog();

vardog5=dog4;

window.alert(dog3==dog4);

//false不是同一个地址

window.alert(dog4==dog5);

//true

对代码原理说明图:

补讲==号的作用

1.当==的两边都是字符串的时候,则比较内容相等否。

2.如==的两边都是数字的时候,则数的大小是否相等。

3.如==的两边是对象或对象中的函数属性,则比较地址是否相等。

六、加深对类和对象的认识

如何给类添加方法(如何给某类型的所有对象添加方法)

//创建Person实例

varP1=newPerson();

P1.name="

sp"

window.alert(P1.name);

//初步体验Object类,通过Object直接创建对象//Object超类

varP1=newObject();

window.alert(P1.constructor);

vari=newNumber(10);

//我们可以给类添加方法.

Number.prototype.add=function(a){

returnthis+a;

window.alert(i.add(10).add(30));

varb=90;

window.alert(b.add(40));

请思考给js的Array对象扩展一个find(val)方法,当一个Array对象调用该方法

时候,如果能找到val则返回其下标,否则返回-1;

//体验一下array;

vararr=newArray(3)

arr[0]="

George"

arr[1]="

John"

arr[2]="

Thomas"

//遍历该数组

for(vari=0;

i<

arr.length;

i++){

document.write('

'

+arr[i]+"

&

nbsp;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1