JavaScript 基础介绍

这篇博客主要介绍了JavaScript的基础知识,包括JavaScript的起源、浏览器组件、数据类型、操作符、流程控制和数组等内容。详细讲解了变量的命名规则、数据类型转换、字符串、数值、逻辑运算符的使用,以及循环和条件语句的实现。还提到了数组的创建、获取元素及函数的基本概念,以及JavaScript中的对象和DOM操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript 介绍

1.1 JavaScript最初的目的

    判断客户端的输入是否合法

1.2   JavaScript 现在的目的

     页面特效(PC端的网页效果)

     移动端(移动webAPP

    异步和服务器交互

    服务端开发nodejs

    浏览器:

            1.User Interface 用户界面,我们走看到的浏览器

            2.Browser engine 浏览器引擎,用来查询和操作渲染引擎

            3.Rendering engine 用来显示请求的内容,负责解析HTMLCSS

            4.Networking 网络,负责发送网络请求

            5.JavaScript Interpreter (解析者)JavaScript解析器,负责执行JavaScript的代码

            6.UI Backend  UI后端,用来绘制累死组合框和弹出窗口

            7.Data Persistence (持久化) 数据持久化,数据存储 cookieHTML5中的sessionStorage

1.3 JavaScript是世界上用的最多的脚本语言

    脚本语言:不需要编译,直接运行时边解析边运行的语言。

    编译:一次性把代码转换成CPU可以看懂的语言(01010101),一行一行执行。

    解析:一行一行解析,解析一行执行一行。

1.4 JavaScript 是一种客户端的脚本语言,运行在浏览器上;

1.5 JavaScript 发展历史,略。

1.6 JavaScript 组成:

    ECMAScript: JavaScript的语法规范;

    DOM: JavaScript 操作网页上元素的API

    BOM: JavaScript 操作浏览器部分功能的API

Script 标签

1.2 引入JavaScript

     HTML页面书写

    引入外部 JavaScript文件

1.3 标签属性

     Type

        Type=”text/javascript”

        可以省略

    async 

        async=”async”

        值可以省略,立即异步下载外部JS,不影响页面的其它操作,JS下载完毕立即执行。

        Async 异步: 多个人同时做多件事情(跟生活中的理解相反)

        Sync 同步,一个人有序的做多件事情(跟生活中的理解相反)

    Defer

        Defer=”defer”

        值可以省略,脚本延迟到文档完全被解析和显示后再执行,只有外部脚本可以使用

变量

    变量是在计算机中存储数据的一个标识符

    变量可以在声明的时候赋值,也可以稍后赋值。

    可以在一行上定义多个变量。例如:var name,age,sex;

变量命名规则和规范
规则

    -由字母、数字、下划线、$组成

    -不能是关键字和保留字

    -区分大小写

规范(建议遵守)

    -变量的名称要有意义

    -变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写

    -例如:userName

注释

单行注释

    - //单行注释

多行注释

    -/* 多行注释 */

注释的应用

    -注释一般用于解释某些复杂代码的逻辑,方便后期的维护和开发

    -注释一般用于对整个模块进行分割划分,方便代码查找和维护

    -注释一般用于:模块、函数、复杂逻辑注解、文件注解、维护记录等

数据类型

    四种常用的数据类型

    - Number

    - String

    - Boolean

    - Undefined

数据类型

    计算机在存储数据的时候是有类型的

    JavaScript 中的数据类型

    - 简单(基本、值)数据类型

        NumberstringBooleanundefinednull

    - 复杂(引用)数据类型

       Objectarraydate

查看当前变量的数据类型

     Typeof name

     Typeof name

数值字面量

    字面量

    - 固定的值,让你从“字面上”理解其含义

    数值字面量

    - var age = 18;//数值字面量,18为字面值。

Number 类型

十进制

var num = 9;

进行算数计算时,八进制和十六进制表示的数值最终都会转换为十进制数值。

十六进制

var num = 0~a;

数字序列范围:0~9以及A~F

八进制

Var num1 = 07; //对应十进制的7

Var num2 = 019;//对应十进制的19

Var num3 = 08;//对应十进制的8

浮点数

Var n = 5e-324;

浮点数值的最高精度为17位小数,但在进行算数计算时,其精确度远远不如整数

- var resule = 0.1 + 0.2;//结果不是0.3,而是0.30000000000000004

- console.log(0.07*100);

永远不要测试某个特定的浮点数值(不要判断两个浮点数是否相等)

数值范围

由于内存的限制,ECMAScript 并不能保存世界上所有的数值

最小值:Number.Min_VALUE,这个值为:5e-324

最大值:Number.Max_VALUE,这个值为:1.7976931348623157e+308

无穷大:Infinity

无穷小:-nfinity

数值检测

NaN 非数值(Not a Number

Console.log(“abc”/18);//结果是NaN

NaN与任何值都不相等,包括NaN本身

IsNaN():任何不能被转换为数值的值都会导致这个函数返回true

IsNaN(NaN);//true

IsNaN(“blue”);//true

IsNaN(123);//false

String 类型

字符串字面量

-var name =“张三”;//”张三”字面量

字符串要用引号引起,单引号和双引号的作用是等效的

例如:

var name = “zhangsan”;

var name = ‘zhangsan’;

错误示范

var name = ‘zhangsan”;//单引号和双引号要成对出现

字符串是由一个一个字符组成的,获取一个字符串中的字符个数可以使用length

例如:var name = “zs”;alert(name.length);/

转义符

要想打印“  ”或者‘  ’怎么办?

Var str = “hello \”world\””;//打印输出helloworld

转义符

\n 换行符

\t 制表符

\b 空格符

\r 回车符

\f 进纸符

\\ 斜杠符

\’ 单引号

\” 双引号

\xnn 以十六进制代码nn表示的一个字符(其中n0~F,例如:\x41表示A

\unnnn 以十六进制nnnn表示的一个Unicode字符(其中n0~F),例如:\u30a3 表示希腊字符

字符串的不可变

ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。

要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量

例如:var str = “123”; str = str + “abc”;

字符串拼接

如果有两个字符串变量a,b, 如何把这两个变量的值连接起来?

例如:Var a = “hello”;

  Var b = “world”;

  Var c = a + b;

思考:var a = “hello”;

  Var b = 100;

  Var c = a + b;//结果是什么?

Boolean 类型

Boolean 类型有两个字面量:truefalse,并且区分大小写!

虽然Boolean 类型的字面值只有这两个,但EDMAScript 中所有类型的值都有与这两个Boolean值等价的值

例如:

Var result = Boolean(“a”);

Console.log(resule);//结果是true

 

Var result = Boolean(100);

Console.log(result);//结果是true

转换成Boolean类型

任何类型可以转换成Boolean类型,一般使用在流程控制语句后面

例如:

Var message = “hello”;

If(message){ alert(message + “world”)};

空字符串 NaNnull undefined-----转换为false

 

判断变量是否有值

Var msg = “0”;

If(msg){   //有值  }else{   //无值  } 自动将msg 转换为Boolean模式

判断其是否有值

Undefined 类型

Undefined 这是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefined

例如:var message;

  Console.log(message);//结果是undefined

Undefinedundefined类型的字面量

例如:var messagte = undefined;

  Console.log(message);

Typeof message;获取到的是undefined

思考:

下面代码输出的结果?

Var message;

If(message){

Alert(“有值)

}else{

Alert(“无值”);

}

目标,掌握三种类型的转换

转换成字符串类型

转换成数值类型

转换成布尔类型

转换成字符串

三种转换成字符的方法

1. 几乎每一个值都有toString()方法

a) 例如:

b) Var age = 18

c) Var ageString = age.toString();

d) Console.log(ageString);//结果18

 

var resule = true;

var resultString = result.toString();

congsole.log(resultString);//结果:true

2. 数值类型的toString,可以携带一个参数,输出对应进制的值

a) Var num = 10;

b) Console.log(num.toString()); //”10”默认是10进制

c) Console.log(num.toString(10)); //”10”

d) Console.log(num.toString(8)); //”12”

e) Console.log(num toString(16)); //”a”

f) Console.log(num toString(2)); //”1010”

3. String 函数

a) 例如:

b) Var age = 18;

c) Console.log(String(age));//结果“18

d) Var result = true;

e) Console.log(String(result));//结果true

f) Console.log(String(undefined));结果undefined

4. String ()函数存在的意义:有些值没有toString(),这个时候可以使用String().比如:undefined  null

5. 使用拼接字符串

a) 例如1

b) Var age = 18;

c) Var str = age + “”;

d) Console.log(str);

e) 例如2

f) Var str = “”+ 18;  //结果是18

转换成数值类型

三个把值转换成数值类型的函数:Number parseInt()parseFloat()

Nunber() 可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN

例如:

Var num1 = number(true);//true返回1 false返回0

Var num2 = Number(undefined);//返回NaN

Var num3 = Number(“hello”);//返回NaN

Var num4 = Number(“”);//如果是空字符,返回0

Var num5 = Number(123);//返回123,如果是数字,简单返回

Var num6 = Number(“123abc”);//NaN

Var num7 = Number(“abc123”);//NaN

ParseInt()  把字符串转换成整数

Var num1 = parseInt(“12.3abc”);//返回12,如果第一个字符是数字会解析直到遇到非数字结束

Var num2 = parseInt(“abc123”);//返回NaN,如果第一个字符不是数字或者符号就返回NaN

Var num3 = parseInt(“”);//空字符串返回NaNNunber(“”)返回0

Var num5 = parseInt(“10”);//返回10

Var num4 = parseInt(“0xA”);返回10

ParseInt () 可以传递两个参数,第一个参数是要转换的字符串,第二个参数是要转换的进制

Var num4 = parseInt(“0xA”); //返回10

Var num6 = parseInt(“A”); //返回什么?NaN

Var num1 = parseInt(“A”,16);//A16进制解析是10

Var num2 = parseInt(“10”,10);//1010进制解析是10

Var num3 = parseInt(“10”,16);//1016进制解析是16

Var num4 = parseInt(“10”,8);//108进制解析是8

Var num5 = parseInt(“10”,2);//102进制解析是2

Var num6 = parseInt(“10”,3);//103进制解析是3

ParseFloat()把字符串转换成浮点数

ParseFloat() parseFloat()非常相似,不同之处在于:

ParseFloat 会解析第一个,遇到第二个,或者非数字结束

ParseFloat 不支持第二个参数,只能解析10进制数

如果解析的内容里只有整数,则解析成整数

转换成布尔类型

两种转换成布尔类型的方式

Boolean()函数

例如:var b = Boolean(“1234”); //返回true

流程控制语句会把后面的值隐式转换成布尔类型

例如:var message;

If(message){ //会自动把message转换成false //todo…}

转换为false的值:false、“”、0 NaNnullundefined
猜猜看,下面的语句的结果

Var b = !!”123”;

第一个逻辑非操作会基于无论什么操作数返回一个布尔值

第二个逻辑非操作则对该布尔值求反

于是就得到了这个值真正对应的布尔值(结合性从右向左)

操作符
目标

算数运算符

一元运算符

逻辑运算符(&&||!)

比较运算符

赋值运算符

运算符的优先级

数学运算符

+   - *乘   /除   %求余   ++累加   --递减

+加法运算符

如果运算符有个一个操作数为字符串,则将两一个操作数转换成字符串然后再将两个字符串拼接

例如:var str = “abc”+ 123;  //返回abc123”

-减法运算符

*乘法运算符

/除法运算符

%求模(取余)运算符

/0,返回infinity

%取余,返回NaN

一元运算符
只能操作一个值的操作符叫做一元操作符,分为:前置型和后置型

顾名思义,前置型应该位于要操作的变量之前,而后置型则应该位于要操作的变量之后

执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的

++ 

前置++

Var age = 18;

++age; //结果19

执行过程

Var age = 1;

Age = age + 1;

后置++

Var age = 18;

Age++;//结果19

和前置++的不同点在于,递增操作是在整个语句求值之后执行的,此处和上面的结果没有任何区别

练习

Var a = 1;

var b = ++a + ++a;

console.log(b); // 结果为5

Var a = 1;

var b = a++ + ++a;

console.log(b); // 结果为4

Var a = 1;

var b = a++ + a++;

console.log(b); // 结果为3

Var a = 1;

var b = ++a + a++;

console.log(b); // 结果为4

--++相同

逻辑运算符

&& and 例子:(x < 10 && y > 1)为true

|| or 例子:(x == 5 || y == 5)为false

! not 例子:!(x == y)true

&& 两个操作数同时为true,结果为true,否则都是false

|| 两个操作数有一个为true,结果为true,否则为false

&&  ||  短路运算符

&& 

假如两个操作数都不是布尔类型:

如果两个值转换成布尔类型都是true,返回第二个操作数

如果有一个操作数转换成布尔类型是false,返回这个数

 

Var b = “abc”&& “bcd”;结果为bcd (前面对象为true 往后读取,bcdtrue,直接返回它的操作数)

Var b =  undefined && null; 结果为undefined,(前面短路,就不往后走了,直接返回undefined

|| 

常用的场景:

Sum(undefined,2);

Function sum(n1,n2){ n1 = n1 || 0; n2 = n2 || 0; console.log(n1 + n2);  }

!非

如果操作数是对象,返回false

如果操作数是空字符串,返回true

如果操作数是非空字符串,返回false

如果操作数是0,返回true

如果操作数是任意非0值,返回false

如果操作数是nullundefinedNaN, 返回true

上面的规则可以简化成

转换为false的值:false、“”、0NaNnullundefined

比较运算符

运算符

描述

例子

==

等于

x == 8;为false

===

全等于(值和类型)

x === 5;为true x === “5”为false

!=

不等于

x != 8;为true

>

大于

x > 8;为false

<

小于

x < 8;为true

>=

大于或等于

x >= 8;为false

<=

小于或等于

X <= 8;为true

<   <=   >=   >

在比较字符串时,实际比较的是两个字符串中对应位置的每个字符的字符编码值

在比较数值和字符串时,字符串都会被转换成数值,然后再以数值方式与另一个数值比较

如果一边是数字,另一边是Boolean,先把Boolean类型的值转换成数字,再比较。

== 、!=   相等和不相等

=== 、!==  全等和不全等

相等只比较值,全等比较的是值和类型

例如

Var result = “55” == 55; //true

Var result = “55”=== 55;//false,值相等,类型不相等

Var result = 55 === 55;//true

赋值运算符

=  +=  -=  *=  /=  %=

例如:var num = 0;

  Num += 5;//相等于  num = num + 5;

 

  Var a  /=  b;相当于 a = a / b;

  Var z = a * ( x /= y ) * x;

  Var z = a * ( x = x / y ) * x;

  Var z = a * x / y * x / y;

  Var z = a * x * x / ( y * y );

  Var z = a * x * x / y / y;

运算符的优先级

优先级从高到低

() 优先级最高

一元运算符 ++  --  

算数运算符 *  /  %   +  - 

关系运算符 >  >=  <  <=

相等运算符 == =  === ==

逻辑运算符 &&  ||

表达式练习

练习1

((4 >= 6) || (“” != “”)) && !(((12 * 2== 144&& true

(False || true&& !(false && true

True && !false

True && true

True

练习2

Var num = 10

If(5 == num / 2 && (2 + 2 * num).tostring() === “22”){ console.log(true);}

If(5 == 10 / 2 && (2 + 2 * 10).tostring() === “22”){console.log(true);}

If(5 == 5 && 22.tostring() === “22”){console.log(true);}

If(true && “22”=== “22”){console.log(true);}

If(true && true){console.log(true)}

流程控制
程序三种基本结构

顺序结构

选择结构

循环结构

判断语句if

语法:

If(condition){

Statement1

}else if{

Stetement2

}else{

Statement3

}

判断语句switch

语法:

Switch (expression){

Case value:

Statement

Break;//break关键字会导致代码执行流跳出switch语句

Case value:

Statement

Break;

Default:

Statement

}

注意:

Break 可以省略,如果省略,代码会继续执行下一个case

Switch 语句在比较值时使用的是全等操作符,因此不会发生类型转换

例如:字符串10”不等于数值 10

三元运算符

性别在数据库中存储的是10,要求输出男或女

Var sex = 1;

If(sex === 1){

Console.log(“”);

}else{

Console.log(“”);

}

简化的方式

Var sex = 1;

Sex = sex === 1 ? “”: “”;

表达式1 ? 表达式2 :表达式3

循环
循环语句for

语法

For initialization; expression; post-loop-expressionstatement

Initialization 表示:初始化表达式

Expression表示:控制表达式

Post-loop-expression 表示:循环后表达式

三者都是可选的

循环1-100

执行过程

1. 首先初始化

2. 循环的判断

3. 函数体代码

4.  post-loop-expression

5.  从第二步开始向下重复进行

三种循环语句: for    while   dowhile

当循环次数已知的时候使用for循环

Break  continue 

Break 

立即退出循环

Continue

立即退出当前循环,但退出循环后会从循环的顶部继续执行

循环语句 while

当循环次数已知的情况下用for循环

当循环次数未知的情况下用whiledo  while 循环

While  do while 的区别

While 先判断条件再循环

Do while 先循环再判断条件

数组

任意的 有序的 一组数

数组中的项,如果没有赋值就是undefined

每当我们往数组中新增一个项,都会更改length的属性

想存储多个值的时候可以使用数组,比如:班级所有学生的姓名。

数组:数据的有序列表,可以存放任意类型的数据,数组的大小可以动态调整

创建数组的两种方式:

方式1,数组字面量

Var arr1 = [ ];//创建一个空数组,数组字面量

Var arr2 = [1,3,4 ];//创建一个包含3个数值的数组,数组项间用逗号隔开

Var arr3 = [“a”,”c”];//创建一个包含2个字符串的数组

方式2Array的构造函数

Var arr4 = new Array();//创建一个空数组

Var arr5 = new Array(10);//创建一个长度为10的数组

Var arr6 = new Array(“black”,”white”,”red”,”blue”);//创建一个包含4个字符串的数组

获取数组中的值

Var colors = [“black”,”white”,”red”];

Console.log(colors[0]);//获取第一个元素的值

Colors[“1”] = “blue”;//给第二个元素重新赋值

Console.log(colors);

Colors[“4”] = “yellow”;//设置第5个元素的值,此时数组中有5个元素项

Console.log(colors);

Length属性,获取或设置数组中元素的个数

Console.log(colors.length);//获取数组中元素的个数

Colors.length = 1;//设置数组中元素的个数

Console.log(colors);

函数

函数可以封装一段JavaScript代码,它只定义一次,但可以被执行或调用任意多次

编程就是把需求分解成一组函数与数据结构的能力

函数的定义:function 函数名 var1var2varX{

//函数体

}

函数的调用:函数名();

函数包含一组语句,它们是JavaScript的基础模块单元,用于代码复用、信息隐藏和组合调用

函数的三要素:

函数的功能

函数的参数

函数的返回值

函数的参数:

形参:定义函数的时候,没有实际的值,给实参占位

实参:调用函数的时候,有实际的值

函数调用的时候,实参的个数可以不用和形参的个数相等

函数的返回值

如果return后面跟内容了,返回return后面的内容

如果return后面没有跟内容,返回undefined

如果函数内部没有写return,返回undefined

如果函数体中出现return则后面的代码不执行

当不写返回值,或者return后面没有跟内容的时候,返回的也有返回值undefined,这是和其他语言不同的地方

推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值

函数内部可以调用其它函数

执行的过程

函数执行内部调用的函数的时候,会执行内部的函数,当内部的函数执行完毕,会继续执行当前的函数

函数的几种形式

无参数无返回值

有参数无返回值

无参数有返回值

有参数有返回值


没有重载

在其它语言中,有重载的概念

重载:函数的名字相同,但是参数个数不同

JavaScript中没有重载的概念

下面相同名称的函数会把上面的函数覆盖

JavaScript中不允许有同名的函数(不是绝对的)

 

函数的两种定义方式
1. 函数声明

Function f (a,b) {

Return a + b;

}

Console.log(f(5,6));

2. 函数表达式

//myFunf等价

Var maFun = function (a,b) {

Return a + b;

}

Console.log(myFun(6,7));

函数声明和函数表达式的区别

函数声明: 函数提升

函数表达式: 变量提升

变量的作用域

变量的作用区域,变量在什么位置可以使用

块级作用域

在其它语言中,任何一对花括号{ }中的语句都属于一个块,在这之中定义的所有变量在代码块外都是不可见的

JavaScript中没有块级作用域

全局变量

只要在在<script>标签内部定义的变量  和  不使用var 声明的变量都是 全局变量

定义在script或者不属于某个函数的变量

在任何位置都可以访问

局部变量

在函数内部使用var声明的变量  就是 局部变量

定义在函数内部的变量,只能在该函数内部使用

其它

函数内部可以访问到该函数所属的外部作用域的变量(作用域链)

不使用var声明的变量是全局变量,不推荐使用 比如: 在函数内声明a = 5;

变量超出作用域之后会销毁,全局变量关闭网页或浏览器才会销毁

变量提升

变量提升

定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升

函数提升

JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面

匿名函数

Var myFun = function ( ) { }  没有定义名字的函数

一般用在绑定事件的时候

语法: function (){ }

自调用函数: function(){alert(“hello”)})()

前面小括号定义,后面小括号调用

递归

什么是递归?

函数自己调用自己,类似:从前有座山,山上有座庙。。。

方法自身调用,一般还要有结束的条件

递归是比较消耗资源的,不断的开辟新的局部作用域(新函数体)容易造成堆栈溢出而报错

函数是一种数据类型

函数是一种数据类型 function

函数可以作为另一个函数的参数

对象
面向对象介绍和内置对象
目标

会自己定义一个构造函数,创建自定义对象

什么是对象?

生活中的对象: 一辆车  一部手机 。。。

对象具有特征和行为

面向对象和基于对象

面向对象:可以创建自定义的类型、很好的支持继承和多态。面向对象的语言 c++Javac#。。。

面向对象的特征:封装、继承、多态

万物皆对象:世间的一切事物都可以用对象来描述

基于对象:无法创建自定义的类型、不能很好的支持继承和多态。基于对象的语言JavaScript

JavaScript中的对象

无序属性的集合

其属性可以包含基本值、对象和函数。

对象就是一组没有顺序的值。

可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。

对象的特征和行为

特征----属性

行为----方法

构造函数

New Object ();

New 后面调用函数,我们称为构造函数

Object ()我们把它视为一个构造函数,构造函数的本质就是一个函数,只不过构造函数的目的是创建新对象,为新对象进行初始化(设置对象的属性)。

JSON

什么是JSON?

JavaScript Object Notation (JavaScript 对象表示形式)

JavaScript 的子集

JSON和对象字面量的区别

JSON的属性必须用双引号引起来,对象字面量可以省略

name: 盖伦           name: “盖伦

JSON是描述数据的一种标准规范

复习JavaScript的数据类型
简单(基本)数据类型:Number String Undefined Null Boolean 五种
复杂(引用)数据类型:Object Array Date Function
基本(简单)类型和引用(复杂)类型
Array

数组引用类型—JavaScript中的内置对象

Array对象的属性

Length 获取数组的长度(元素的个数)

常用方法

检测数组

Instanceof  检测是否是数组 var a = [];    a instanceof Array;

Array.isArray(); HTML5中新增

转换数组

ToString();  把数组转换成字符串

ValueOf();返回数组对象本身

Join:将数组的数值转换为字符串,并在字符串中间添加符号输出,默认为逗号

Typeofinstanceof 的区别

Typeof 可以获取任意变量的类型,任意类型的对象使用typeof获取到的都是Object

Instanceof 只能判断对象的类型 精确判断对象具体的类型

DOMBOM
DOM

DOM Document Object Model)文档对象模型 ,又称为文档树模型,是一套操作HTML XML文档的API

DOM 可以把HTMLXML描述为一个文档树,树上的每一个分支都可以视为一个对象,

通过DOM可以添加、修改和移除文档上的某一部分

DOM的相关概念

DOM就是把HTML视为一个层次结构(树形结构)的文档

文档(Document)就是指HTMLXML文件

节点(Node HTML文档中所有的内容都可以称之为节点

元素(ElementHTML文档中的标签可以称为元素

文档元素(根元素)文档中的第一个元素,HTML文档中的根元素就是<html>

文本节点

属性节点

父节点 parent

子节点 child

兄弟节点 sibling

DOM可以做什么

找对象(元素element

设置元素的属性

设置元素的样式

动态创建、修改和删除元素

事件—--触发响应

事件的触发者(事件源)

事件的名称

事件的响应程序

获取页面元素

DOMCore---可以用在任何DOM文档中

GetElementById()  根据id属性获取一个DOM对象,区分大小写,符合代码规范

GetElementsByTagName() 根据标签返回多个DOM对象

HTML-DOM  仅仅能够用在HTML文档中

GetElementsByName()

HTML5中新增

GetElementByClassName()

DOM 对象的属性

DOM对象的属性和HTML的标签属性几乎是一致的

SrctitleclassNamehref

innerHTML   会把内容解析到DOM树上

获取标签之间的内容

设置标签之间的内容

InnerHTMLFFtextContent  会对内容转义

获取标签之间的内容

设置标签之间的内容

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值