尚硅谷李立超JavaScript笔记

目录

1.JS简介

1.ECMAScript是JavaScript的标准
2.一个JS包含三个元素:ECMAScript,DOM(文档对象模型: 如何通过JS操作网页),BOM(浏览器对象模型: 如何通过JS操作浏览器)
3.JS是一种解释形语言,动态语言(和Py一样的一个变量多类型),是OOP语言

2.JS的HelloWorld

  • 注意
1. JS代码要写在HTML的script标签中,type=text/javascript (默认)
2. 代码以分号结尾
  • 在浏览器中弹出一个警告框:
alert("XXX")弹出一个通知框,显示XXX内容,出现一个“确定”按钮
  • 页面上输出内容
document.write("XXX");直接在网页中显示双引号的HTML代码,例如:write("1</br>2</br>3"),值得注意的是显示的文字并不会出现在网页原代码的body部分
  • 向控制台输出某句话
console.log("XXX")向控制台输出一个内容

课程截图

3.JS代码编写的位置

可以将JS代码编写到标签的onclick属性中,当我们点击代码的时候JS代码就会执行,例如如下代码会在点击的时候弹出"讨厌,你点我干嘛~"

<button onclick="alert('讨厌,你点我干嘛~')">点我一下</button>

*注意:alert( )里面用的是’’,单引号

可以将JS代码写在超链接的href属性中,这样当点击超链接时,会执行js代码,要记得在前面写javascript:

 <a href="javascript:alert('让你点你就点!!');">你也点我一下</a>

但是这种直接写在标签里面的形式不方便维护,所以不推荐使用,和CSS一样JS可以写在script里面,也可以写在外部文件里面, 外部引用的写法:

<script type="text/javascript" src="./xxx"></script>

例如:

  1. 创建外部文件:script.js
  2.  <script type="text/javascript" src="js/script.js"></script>`
    
  • script标签一旦用于引入外部文件了,就不能再编写代码了,即使编写了浏览器也会忽略。如果需要则可以再创建一个新的script标签用于编写内部代码
  • JS代码是按照自上向下的顺序执行的

4.JS的基本语法

1.JS的注释:单行//,多行/**/,注释会显示到源代码中,可以通过注释对代码进行简单的调试
2.HTML不区分大小写,但是JS严格区分大小写
3.JS中每一条语句以分号结尾(如果不写分号,浏览器会自动添加,但是消耗内存,而且有些时候浏览器会加错分号)
4.JS中忽略多个空格与换行,可以利用这个特性进行代码格式化

5.字面量与变量

1.字面量: 可以认为字面量是常量,是一些不可改变的值,比如1 2 3 4 5
2. 字面量都是可以直接使用的,但是一般都不会直接使用字面量
3.变量可以用来保存字面量,并且变量是可以任意改变的,变量更加方便我们使用,所以在开发的时候都是通过变量去保存一个字面量,而很少直接使用字面量

  • 在JS中使用var关键字来声明一个变量, 但是刚声明的变量没有进行赋值不能直接使用,例如
var a;
console.log(a);

这里会输出undefined, 但是和没有声明不一样,没声明报错:Uncaught ReferenceError: XXX is not defined

  • 声明赋值可以同时进行

  • 可以通过变量对字面值进行描述

6.标识符

在JS中所有可以自主命名的全部可以称为标识符,例如: 变量名、函数名、属性名都属于标识符

  • 注意
  1. 命名一个标识符的时候我们可以写 字母 数字 下划线 $
  2. 不能以数字开头
  3. 标识符不能是JS中的关键字的保留字,例如var
  4. 标识符建议采用驼峰命名法:首字母小写,其余单词开头大写(helloWord, xxxYyyZzz)
  5. JS在保存标识符的时候采用的是Unicode编码,所以理论上Utf-8中含有的内容都可以作为标识符。(中文可以,但是千万别这样用)

附:关键字和保留字符
在这里插入图片描述

7.数据类型

数据类型指的是字面量的类型,在JS中一共有六种数据类型

  • String(字符串)

  • Number(数值)

  • Boolean(布尔值)

  • Null(空值)

  • Undefined(未定义)

  • Object(对象)

    其中String、Number、Boolean、Null、Undefined属于基本数据类型,Object属于引用数据类型

ps. 动态语言的好处,把很多类型直接整合到一起

其中基本数据类型就是除了Object之外的,Object属于引用数据类型

可以使用运算符号typeof()检查变量类型,例如

var a=123;
var b="123"

console.log(a);
console.log(b);
console.log(typeof(a));
console.log(typeof(b));

输出结果:

123
123
number
string
  • String字符串:
    1. JS中字符串需要用引号(单引号或双引号均可)引起来
    2. 注意单引号里面用双引号,双引号里面用单引号
    3. 如果你就是不想用单引号,那么就要告诉浏览器你这里的双引号是用来干啥的,是框字符串的还是一个普通的双引号,这里我们可以使用\作为转意字符,例如",例如var str2=“我说:“今天天’气真不’错””;,转意字符还有\n: 换行,\t: 制表符,\表示\

    和C语言完全一样

  • Number数值:

     1. 在JS中所有类型的数字全是Number不区分float,int
     2. Number的最大值: 可以输出Number.MAX_VALUE 为: 1.7976931348623157e+308, 如果我们要求输出Number.MAX_VALUE * Number.MAX_VALUE结果会显示Infinity(表示正无穷)。
     3. 注意Infinity是一个字面量,允许被赋值,值得注意的是一定不能加引号,否则就是字符串了,并且注Infinity的typeof是Number, 存在-Infinity
    4.  两个字符串相乘的结果是NaN 表示Not a Number, 与Infinity同理,字面量可以赋值,typeof是Number,不要引号。
    5.  Number可以表示的最小精度Number.MAX_VALUE,也就是最小正值
    6. JS的浮点数运算可能不精确,所以千万不要用JS进行高精运算,这些给服务器去算
    
  • Boolean布尔值:
    布尔值只有两个,主要用来做逻辑判断 ture/false
    使用typeof检查一个布尔值时,会返回boolean

var bool =ture;
console.log(typeof bool);
console.log(bool);
运行结果
“boolean”
"ture"
  • Null空值:
    只有一个数据元素就是null
    专门用来表示空对象
    值得注意的是用typeof看null,视频上说会显示Object
    但是本机上是null,null绝对不是一个对象,null有自己的类型,它是一个 特殊的类型,至于为什么会null返回object,这是官方承认的错误

    undefined未定义:
    声明变量不给他赋值就输出会显示这个
    不声明就输出会报错
    typeof()是undefined

8.强制类型转换

  • 指的是将一个数据类型转化为String,Number,Boolean
1. 转化为String:

调用被被转化类型的toString方法:

方法一: (XXX.toString())
调用xxx的yyy方法:xxx.yyy()
注意:
1.他不会修改原变量,而是作为返回值返回
2.bool的toString是"true"/"false"但是存在问题
3.null,undefined 的toString会报错Uncaught TypeError: Cannot read property ‘toString’ of null,因为这两个类型没有toString

  方法二:调用String()函数: 将被转化的数据作为参数传入, 这个支持Null与Undefined,`*C++的构造函数*`
   var a;
    a=ture;
    a=a.toString();
    console.log(typeof a);
    console.log(a);    
    运行结果
    “string”
    "ture"
2. 转化为Number

方法一:使用Number()函数:
非数字的字符串转Number会NaN,空string串(允许包含任意空格)会转化为0, bool=true转为1,false转化为0, null转为0, undefined转为0

方法二:专门对付字符串的方式:(可用于10px等css中的计算)

  1. parseInt()与parseFloat(),可以将字符串中有效的对应内容解析
  2. parseInt(“123r456”)会先解析123然后遇到r直接break!
  3. parseInt()只能取整数,parseFloat()可取小数
  4. 如果对非String使用parseInt()或parseFloat(),它会先将其转化为String,然后再操作
  5. 利用parseint可以取整
3. 转化为boolean

Boolean函数
Number 非0:true ,0:false,
String 非空:true ,空:false,
Null 为false, undefined为false, Object为true

9.其他进制的数字

  1. 表示16进制(需要以0x开头): var a=0x3f3f3f3f; 输出会自动转化为10进制
  2. 表示8进制(需要以0开头): var a=070; 输出会自动转化为10进制
  3. 表示2进制(需要以0b开头): var a=0b10; 输出会自动转化为10进制
  • 注意parseInt(“070”)会被不同浏览器解析成10或8进制,只需改为parseInt(“070”,10)或parseInt(“070”,8)即可

10.算数运算符

运算符也叫操作符,例如:+,typeof()[返回值是string]

算数运算符:+,-,*,/,%:

  • +: 对非Number进行运算的时候遵循上面的规律进行转化运算,NaN参与运算结果一定是NaN,特殊的,两个字符串相加(只有相加)的结果是两个字符串拼接,任何值与字符串相加数字会转化为字符串任何拼接,包括NaN,利用这个性质可以任意类型+空字符串得到字符串类型,隐式类型转化
 Infinity+"hello"
 "Infinityhello"
  NaN+"hello"
 "NaNhello"

运算是自左向右的所以"1"+2+3=“123”,1+2+“3”=“33”

  • -/ *//:对非Number进行运算的时候遵循上面的规律进行转化运算,NaN参与运算结果一定是NaN,特殊的,字符串相减的时候会转化为Number,利用这个性质可以做string隐式类型转化为Number

  • %取模运算

一元运算符

一元运算符:+,-

  • Number:+不会产生影响,-会取反
  • 非Number会先转化成Number再运算,例如-true=-1,-NaN=NaN
  • 利用这个性质+a可以把a转化为Number,例如+“1”+2+3=6

自增自减

  • 自增可以使得变量在自身的基础上加1,a++ <=> a=a+1,++a <=> a=a+1,自带赋值,前后++与C语言相同
  • 自减可以使得变量在自身的基础上减1,a-- <=> a=a-1,–a <=> a=a-1,自带赋值,前后–与C语言相同
  • a++的值等于原变量的值(自增前的值)
    ++a的值等于新值(自增后的值)
  • 唯一的区别是后++是先给值然后马上自增。例如
var b=10;
console.log(b++ + ++b + b);
结果是
   10+12+12=34       
并且注意
var b=10;
b=b++;
console.log(b);
等价于
var b=10;
var c=b++;
b=c;
console.log(b);
同样的--同理

逻辑运算符

三个:非!,与&&,或||

  • !:对bool进行运算就是取反,对非bool会先转化为bool。如果对一个值进行两次取反,它不会变化。
    我们可以利用该特点,来将一种其他的数据类型将其转化为bool,方法是!!tmp,原理和Boolean()函数一样
var a=false;
console.log(!a);
console.log(!!a);

var b=10;
console.log(!b);
console.log(!!b);

得到结果

true
false
false
true
  • && 与
    –&可以对符号两侧的值进行与运算并返回结果
    –运算规则:
    —两个值中只要有一个值为false就返回false
    只有两个值都为ture时,才会返回ture
    —JS中的“与”属于短路的与
    如果第一个值为false,则不会看第二个值
  • || 或
    –运算规则:
    —JS中的“或”属于短路的或
    如果第一个值为false,则会检查第二个值

-&&,||与C相同,也有短路,非bool进行运算需要先转换为bool进行运算,然后返回原值

  • 与运算:

    1. 如果两个值都是true,则返回后边的
      – result = 5&&6; 输出6
    2. 如果两个值中有false,则返回靠前的false
      – result = 0&&6; 输出0
      规则小结:
      如果第一个值是ture, 则返回第二个值
      如果第一个值是false,则返回第一个值
  • 或运算:
    如果第一个值是ture, 则返回第一个值
    如果第一个值是false,则返回第二个值

返回值就是在加入短路原则之后最后判断的那个元素

赋值运算符

+=,-=,*=,/=,%=与C完全相同

关系运算符

关系成立返回true,关系不成立返回false
>,>=,<,<=,==,!=

除了==与!=符号:

非数值的情况: 转化为Number, 任何值与NaN比较都是false

 特殊的: 
      符号两侧都是字符串会分别比较字符的Unicode编码
      比较两个字符串时,比较的是字符串的字符编码、
      比较字符编码时是一位一位进行比较
      如果两位一样,则比较下一位,所以借用它来对英文进行排序
      比较中文时没意义
      如果比较

前面的一样短的小, 所以谨慎比较两个数字字符串

对于==与!=符号: 类型不同会自动进行类型转化,但是左边转右边还是右边转左边都不一定,注意的是undefinednull,任何值NaN都为false, 包括NaN

===,!,!=

简单来说: == 代表相同, ===代表严格相同

这么理解: 当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行=比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而=比较时, 如果类型不同,直接就是false.

操作数1 == 操作数2, 操作数1 === 操作数2

比较过程:

双等号==:

如果两个值类型相同,再进行三个等号(===)的比较
如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
如果一个是null,一个是undefined,那么相等
如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较

三等号===: 

如果类型不同,就一定不相等
如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)
如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
如果两个值都是true,或是false,那么相等
如果两个值都引用同一个对象或是函数,那么相等,否则不相等
如果两个值都是null,或是undefined,那么相等
JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是由事件引发 解释执行:先读到的先执行,后读到的会替代先读的 可以使用任何文本编辑工具编写 JavaScript 代码,然后由浏览器解释执行。 JavaScript常用于实现如下功能: |--控制文档的外观和内容; |--对浏览器的控制; |--与 HTML 表单的交互; |--与用户的交互; |--执行计算等。 1.单击事件:定义在按钮的开始标签中 语法:onclick="js语句" 弹出警告:alert(‘字符串’) 强调:1.js区分大小写 2.字符串单双引号不区分 [removed]标签:页面中专门集中编写JavaScript的区域 js的方法定义:function方法名([参数列表]){ 方法体 [return 返回值] } 注意:js中的方法可以直接写在代码中,不需要“类”包裹 使用方法:方法名()-->方法调用-->立即执行 2.js文件:网页外专门保存js脚本的文件--推荐 强调:HTML、CSS、JS都要使用UTF-8编码保存(window系统) 使用js文件引入网页:[removed][removed] 强调:一旦定义src属性则其中的代码失效 解释执行:语句也可以直接写在js文件中,边解释边执行 3.***调试*** |--①.只有在执行时,才会报错 |--②.错误信息,浏览器页面看不到--没效果 | 解决:控制台--(工具-->JavaScript控制台或F12) | 包含错误信息;指向错误位置的超链接 |--③.打桩:在指定变量位置输出变量或对象的内容 console.log(内容);-->出现在控制台-->日志 4.变量:js中的变量不需要提前指定类型,由赋值时动态决定 所有的变量都用var声明 5.数据类型: |--String(字符串类型) |--Number(数字类型) |--Boolean(布尔类型)0、-0、null、""、false/undefined或NaN,则该对象设置为false。其余都可以当true 6.数据类型的隐式转换: |--数字 + 字符串:数字转换为字符串 |--数字 + 布尔值:true转换为1,false转换为0 |--字符串 + 布尔值:布尔值转换为字符串true或false |--布尔值 + 布尔值:布尔值转换为数值1或0 7.数据类型转换函数 :(方法前不需要对象调用的:全局函数) |--toString():转换成字符串。所有数据类型均可转换为 string 类型; |--parseInt():强制转换成整数。如果不能转换,则返回 NaN(not a number); |--parseFloat():强制转换成浮点数。如果不能转换,则返回 NaN(Not a Number) |--typeof():查询数值当前类型。 |--isNaN():判断是否为数字。返回 true:不是数字/false:是数字 | |--isNan(""):对空字符串不验证,直接返回false | |--如果输入的是字符串类型的数字,返回false--不能判断数据类型,只判断内容 | |--如果输入的是boolean,返回false。因为boolean可以和number类型直接做计算 | |--和任何数字计算都得NaN;和任何数字作比较都得false |--注:[removed]();节点输出,即在当前位置输出括号里的内容 *凡是从页面上进入js的都是字符串类型 8.查找元素:抓住根节点,就等于抓住整棵树 网页的根节点:document对象 要找元素,必须利用document对象(当前网页文件) 精确查找某个ID的元素:document.getElementById(id名); 9.null和undefined: |--null:一个特殊的值,表示“无值”--空对象。数据类型为Object |--undefined:表示声明了变量但从未赋值或者对象属性不存在 10.双等号(==)和全等号(===): |--“==”为确定两个运算数是否相等,“==”运算符会进行类型转换。转换后运算数相等就返回true,否则返回false |--“===”不执行类型转换,即,只有在无需类型转换运算数就相等的情况下,才返回true,否则返回false |--附:if(null)、if(defined)、if(NaN)都相当于if(false) -----猜数字游戏----- 失去焦点时,判断猜对猜错 获得焦点:onfocus 失去焦点:onblur 当事件就发生在获得内容的当前元素上: this直接获得当前内容对象。可以代替当前对象完成一切操作,拥有当前对象的所有属性 前端优化:js中最好用三目运算代替if else 11.String: |--查找:x.indexOf(‘关键字’[,开始位置下标]) | 每次只查找第一次出现的位置 |--替换:x.replace(‘关键字’[,‘替换内容’])--不会修改原x字符串 | 每次只替换第一次找到的 |--查找和替换所有:while循环 | |--String 对象的常用方法有: |--x.toLowerCase()、x.toUpperCase():大小写转换方法; |--x.charAt(index):返回指定位置的字符; |--x.charCodeAt(index):返回指定位置字符的Unicode编码; |--x.indexOf(findstr,index)、x.lastIndexOf(findstr,index): 获取指定字符; |--x.substring(start, end): 获取子字符串; |--x.replace(findstr,tostr):替换子字符串; |--x.split(bystr): 拆分子字符串。 |--String与正则表达式 |--str.match(regExp);--查找str中匹配正则表达式的关键字 | 返回:如果没找到,返回null。若找到,返回1个数组,数组的每个元素是每个找到的匹配关键 | |--str.replace(regExp,"替换值")--替换str中所有匹配的关键字 | 强调:replace方法不改变元字符串,只能返回新字符串。必须用变量接收新字符串 | |--js中正则表达式语法:/正则表达式/[属性后缀]--其中属性后缀,g:全局匹配 i:忽略大小写(仅英文有效) 如果不适用模式匹配方式,将执行原文匹配 结果:如果正则表达式写错,也将执行原文匹配 12.Array笔试题:js中数组声明方式: A new Array(7) B new Array(7,‘a’,true) C [7,'a',true]--js中所有[]都表示数组 D []--实例化一个空数组对象 实例化空数组:var arr=[]; 特点:元素个数不限定,元素类型不限制 13.Array 对象的常用方法: |--1.join()方法--用于把数组中的所有元素放入一个字符串   | eparato表示要使用的分隔符。如果省略该参数,则使用逗号作为分隔符 |--2.toString()方法--可把数组转换为字符串,并返回结果 |--3.concat()方法--用于连接两个或多个数组,该方法不会改变现有的数组 |--4.slice()方法--截取元素。根据给定的范围可从已有的数组中返回选定的元素 14.Function:js中一切都是对象,连方法都是1个对象!! 笔试题:js中方法定义集中方式: A:function compare(a,b){return a-b;}---*可以任意地方声明方法* B:var compare=function(a,b){return a-b;} ---| --其实方法名也是方法对象的变量名;等号右边其实就是1个匿名方法对象 |--*必须在传递之前声明方法对象* C:var compare=new Function('a','b','return a-b') ---| --其实js底层就是new Function;构造函数中的参数都是字符串 结论:所有的方法都是function类型的。 15.JavaScript中的所有事物都是对象,分为三类: |--简单对象:String、Number、Boolean |--组合对象:Array、Math、Date |--复杂对象:Function、Regex、Object等 16.Array排序: |--升序:function compare(a,b){return a-b;} |--降序:function compare(a,b){return b-a;} 比较器用法:arr.sort(比较器方法名); 遍历:for(var i=0;i<arr.length;i++)--等同Java Array倒转:arr.reverse();用于颠倒数组中元素的顺序 17.Array元素操作: |--arr.push(x);向数组增加1个新元素x(位于数组最后位置) |--arr.splice(开始位置,删除几个[,x1,x2,x3...]) |--arr.indexOf(x) 返回x在数组中的下标---经常用于判断元素是否存在。如返回-1,x则不在数组中 18.Number对象: |--x.toFixed(num):可把Number四舍五入为指定小数位数(num:0-20)的数字 |--x.toString():用于把一个 Number 对象转换为一个字符串,并返回结果 19.正则表达式对象:(专门用于查找和验证) reg.test(‘要验证的完整字符串’)匹配返回true,否则返回false 强调:如果正则表达式使用了^和$,必须完整匹配才行。反之则部分匹配 20.Date对象:(计算方法:先get,再计算,最后set回去) |--1.每个分量上都有一对get/set方法 |--2.命名:get|set年月日,单数;get|set时分秒,复数(s) |--3.除了日期从1开始到31结束外,其余都从0开始到-1结束 |--Date对象的常用方法 |--1.获取日期数据 getDate()、getDay()、getFullYear()等 |--2.修改日期数据 setDate()、setDay()、setFullYear()等 |--3.获取日期格式的字符串 toString()、toLocaleTimeString()、toLocaleDateString()等 21.argument参数:所有方法都隐藏的一个数组对象 作用:不设置任何的形参的情况下,自动接收所有传入参数 arguments.length:获得参数个数 arguments[i]:获得每个参数--都要判断和类型转换 22.全局函数:不用任何对象点(.)就可以调用--可用于所有的 JavaScript 对象 常用的全局函数有:parseInt/parseFloat、isNaN、eval、decodeURI/encodeURI等。 encodeURI和decodeURI: |--encodeURI:可把字符串作为 URI 进行编码 |--decodeURI:decodeURI()函数可对encodeURI()函数编码过的 URI 进行解码 eval() 函数可计算某个字符串,并执行其中的的JavaScript代码 23.BOM:操作浏览器窗口的对象模型。 --即浏览器对象模型 ,用来访问和操纵浏览器窗口,使 JavaScript 有能力与浏览器“对话” DOM:操作网页中元素对象的对象模型--即文档对象模型,用来操作文档 window对象的常用属性: |--document:窗口中显示的 HTML 文档对象 |--history:本次浏览过窗口的历史记录 | --前进:history.go(1);后退:history.go(-1);刷新:history.go(0); |--location:窗口文件地址对象(地址栏) |--event:事件对象 |--screen:屏幕对象 |--name:窗口名称 |--opener:打开当前窗口的 window 对象 |--navigator:有关浏览器的信息 |--cookieEnable:判断当前浏览器是否启用cookie |--userAgent:获得浏览器的名称和版本号 window 对象的常用方法有: |--alert();--警告框--只能点确认 |--confirm();确认框--可以选择确认或取消 |--prompt();对话框--用于显示可提示用户进行输入 |--window.open('url'[,'name']):打开1个选项卡 |--window.close():关闭当前选项卡 24.定时器:凡是网页中自动动态的效果都是用计时器实现的 |--周期性定时器:每隔一个时间段自动执行一次,循环执行 | |--setInterval() 启动-->用于启动一个周期性定时器 | 语法:timer=setInterval(方法名,间隔毫秒数) |--clearInterval() 停止-->用于停止一个周期性定时器 语法:timer=clearInterval(timer) |--1次性定时器:先等待一段时间,再自动执行一次,自动结束 |--setTimeout() 启动-->用于启动一个一次性定时器 |--clearTimeout() 停止-->用于停止一个一次性定时器 附: |--表单控件,读写内容:.value |--普通html元素,要想读写开始标签和结束标签之间的内容:[removed] 计时器:1.做什么事:方法; 2.一个变量:存计时器的线程号 3.何时启动计时器:事件 25.document:1.代表当前网页文档; 2.所有网页元素的根元素; 3.查找和操作元素,都要依靠document; 节点:nodeName--标签名或属性名 DOM操作样式:对象.className属性 等效于 DOM树:当前节点向上:txtObj[removed]() 向下:txtObj.getElementByTagName() 26.表单中查找控件对象:document.getElementsByName('name属性') DOM增加新节点:两种方法 创建新节点:document.creatElement('标签名') --此时新元素对象仅在内存中游离,页面看不见! 添加新节点:找到父元素! |--appendChild() 方法只能将新节点作为某节点的最后一个子节点 | --此时新元素追加到了父元素的末尾 |--parentNode.insertBefore()(新元素对象,A)--其中A为新元素要插入位置的后一位元素 DOM删除元素:node.removeChild(childNode)--node为父节点,childNode为要删除的节点 27.HTML DOM Select和Option对象: select对象:代表HTML表单中的一个下拉列表,每个 标签即表示一个 Select 对象 |--属性: |--options:返回包含元素中所有的一个数组,每个元素对应一个标签,索引从0开始 |--selectedIndex:设置或返回下拉列表中被选选项的索引号 |--size:设置或返回下拉列表中一次显示显示的选项数 |--方法: |--add(option):用于向添加一个元素。 |--remove(index):从下拉列表删除选项 Select对象有事件onChange当改变选择时调用的事件句柄。Select对象的onChange属性引用了一个事件句柄函数。当用户选 中一个选项,或者取消了对一个选项的选定时,就会调用该句柄。这个事件不会指定新的选项是什么,必须通过Select对象的 selectedIndex属性,或者各个Option对象的selected属性来确定这一点。 option对象:代表HTML表单中下拉列表中的一个选项,每个标签表示一个Option对象 |--创建:var o = new Option(text,value); |--属性: |--index:返回下拉列表中选项的索引位置 |--text:设置或返回选项的文本值; |--value:设置或返回选项的值; |--selected:设置或返回选项的 selected 属性的值,该属性设置选项的当前状态,如果为 true,则该选项被选中 28.table对象: rows数组:表中所有行对象 方法:var row=table.iusertRow(i);--返回刚添加的新行 table.deleteRow(i); --i:行的下标。如果i取-1,即在表格末尾追加一行 tableRow对象: cells数组:当前行中所有单元格的对象 方法:var 刚添加的新单元格=tr.iusertCell(i); tr.deleteCell(i); tableCell对象:取单元格内容--td[removed] 29.事件冒泡: |--1.由外向内,捕获事件:记录哪级元素有什么事件 |--2.由内向外,冒泡执行:按记录的顺序由内向外执行 取消冒泡: |--1.获得事件对象!--event onclick="func(event)"--其中event和this都是关键字,表示事件对象 func(e)--此时e就是事件对象 |--2.取消冒泡:e.cancelBubble=true; 何时用:如果大量子元素拥有相同事件,应将相同事件统一定义在1个父元素上1次即可
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值