0基础前端学习---第七天

目录

JavaScript内置对象+this和自定义属性+DOM

1、JavaScript内置函数(1)

1.1 获取系统时间

​1.2 获取系统时间-特定格式

1.3 倒计时

1.4 string对象

1.5 string对象方法

2、this和自定义属性

2.1 循环控制语句-for-in

2.2 循环控制语句-while与do-while

2.3 其他-break与continue

2.4 函数中的this

2.5 自定义属性的使用

2.6 使用自定义属性实现选项卡

3、JavaScript内置函数(2)

3.1 数组对象-创建

3.2 数组方法-添加删除

3.3 数组方法-删除、替换、插入

3.4 数组方法-排序

3.5 数组方法

3.6 数组迭代方法

3.7 Math对象方法

3.8 Math对象方法-random

4、DOM

​4.1 DOM节点层次

​4.2 DOM元素操作

4.3 DOM获取表格的方式


JavaScript内置对象+this和自定义属性+DOM

1、JavaScript内置函数(1)

时间对象、字符串对象

JS中内置了17个对象,常用的是Array对象、Date对象、正则表达式对象、string对象、Global对象 。
创建时间对象:new Date()   获取当前系统时间,控制台打印(console.log(new Date())如下

1.1 获取系统时间

  • get/setFullYear():  返回或设置年份,用四位数表示。
  • get/setMonth():  返回或设置月份。0为一月,比实际少1个月
  • get/setDate():返回或设置日期。
  • get/setDay():返回或设置星期  0为星期天
  • get/setHours():  返回或设置小时,24小时制
  • get/setMinutes():  返回或设置分钟数。
  • get/setSeconds():  返回或设置秒钟数。
  • get/setTime():  返回或设置时间(毫秒为单位)

1.2 获取系统时间-特定格式

  • toDateString():Tue Nov 27 2019
  • toLocaleDateString(): 2018/11/27
  • toTimeString():14:34:25 GMT+0800 (中国标准时间)
  • toLocaleTimeString():下午2:35:06
  • toLocaleString():  2018/11/27 下午2:35:05

如果上面的格式不能满足要求,就需要获取单个的时间进行拼接。

1.3 倒计时

倒计时原理:时间差 = 未来时间-当前时间
设置未来时间:

var oDate = new Date(2018,11,12,0,0,0);
var oDate = new Date('2018,12,12,00:00:00');
var oDate = new Date('Wed Dec 12 2018 00:00:00');

时间差是两个时间的毫秒数,需要转换成对应的年月日

1.4 string对象

创建字符串对象

var str1 = 'abc';//字面量的方式进行为变量赋值  typeof
var str2 = String('aaa');//String 方法执行完的 return
var str3 = new String('cba');

1.5 string对象方法

length属性:获取字符串的长度
charAt(下标):获取对应位置的字符
indexOf(str[,index]):返回某个指定的字符串值在字符串中首次出现的位置
lastIndexOf(str[,index]):返回某个指定的字符串值在字符串中最后一次出现的位置
substring([start,[stop]]):截取字符串,从start到stop,包括开始不包括结束  。
slice([start,[stop]]) : 截取字符串
slicesubstring的区别在于当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数。substring则干脆将负参数都直接转换为0
toUpperCase: 转换为大写
toLowerCase:转换为小写
split(分割标准,[数组的长度]) :  将字符串按特定标志分割成数组
replace(被替换的字符串,替换的字符): 替换特定的字符
search():  用于检索字符串中指定的子字符串
match(): 可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配


2、this和自定义属性

this、自定义属性、自定义索引

2.1 循环控制语句-for-in

对象是没有length属性的,因此不方便通过for循环进行遍历
for-in专门用于遍历对象
for(变量(存放对象的属性) in 遍历的对象){  循环体 }

var person = { 'age':18,'sex':'女'}
for(var key in person){
console.log(key+"--------------"+person[key]);
}

注意:获取出来的属性(key)是字符串,【.】后面接字符串用[]代替

2.2 循环控制语句-while与do-while

while与do-while与for一样,都是循环,就是语法不同
while语法:
初始化循环变量;while(结束循环的条件){ 循环体;更新循环变量;}
do-while语法:
初始化循环变量;do{ 循环体;更新循环变量;}while(结束循环的条件);
两者的区别:当第一次就不满足条件时,do-while会执行一次,因为do-while先执行后判断。

2.3 其他-break与continue

break:用于循环中,直接结束循环
continue:用于循环中,结束本次循环

for(var i = 0;i<10;i++){
if(i == 5){
break;//当i等于5,结束循环,后面代码不会执行
continue;//结束本次循环,后面代码不会执行,直接开始下一次循环
}
console.log(“第”+i+“圈”);
}

2.4 函数中的this

this的指向在函数定义的时候是确定不了的。
这个属性(变量、函数) 属于谁(对象),则this指的就是谁,事件可以改变函数当中的this指向
this的位置不同,指向也不同
在全局中,this指向window
在事件函数中,this指向的是触发事件的对象
谁触发事件,this指向谁

2.5 自定义属性的使用

自定义属性*
语法:元素.自定义属性名=自定义属性值
在标签上设置的自定义的属性,目前js获取不到
再早叫预定义属性
获取自定义属性:元素.自定义属性名

2.6 使用自定义属性实现选项卡

自定义索引值

for(var i=0;i<li.length;i++){
li[i].index=i;
li[i].onclick=function(){
console.log(this.index);
//在点击事件中,获取不到每一个i值
}
}

3、JavaScript内置函数(2)

数组对象、Math对象

3.1 数组对象-创建

数组:存储数据的容器,可以存储任意数据类型。
创建数组对象:
字面量创建:[1,true,[],{},'a']
构造函数创建:new Array(1,2,3,4)
new Array(4):创建一个长度为4的空数组
构造函数创建:Array(1,2,3,4)

3.2 数组方法-添加删除

push() :向数组的末尾添加一个或多个元素,并返回新的长度
pop():删除并返回数组的最后一个元素
unshift():向数组的开头添加一个或更多元素,并返回新的长度。
shift(): 删除并返回数组的第一个元素
splice():向/从数组中添加/删除项目,然后返回被删除的项目。

3.3 数组方法-删除、替换、插入

splice(index,howmany,item1,.....,itemX):向/从数组中添加/删除项目
删除数组元素:splice(1,3) 从下标为1开始,删除3个数组元素
替换数组元素:splice(1,2,'a','b') 从下标为1开始,删除2个数组元素,使用字符a,b代替删除的元素。
插入数组元素:splice(1,0,'a') 从下标为1开始,删除0个,字符a插入在下标为1 的位置,其他的数组元素往后移动

3.4 数组方法-排序

JavaScript排序算法
选择排序算法:拿其中一个和后面所有的进行比较
冒泡排序算法:相邻的两个进行比较
sort():对数组的元素进行排序
[11,2,7,5].sort() : 11 2 5 7    默认按字符方式排序

sort(function(a,b)){
return a-b; //从小到大排序
return b-a; //从大到小排序
}

3.5 数组方法

join():  将数组按特定标志组合成字符串
reverse():  将数组倒序表示
concat(): 将多个数组组合成一个新数组返回
indexOf():在数组中查找指定的元素,找到返回对应的位置,找不到返回-1
slice():从已有的数组中返回选定的元素。

3.6 数组迭代方法

every :针对数组元素做些判断,如果结果都为true  则返回的结果为true
some :  针对数组元素做些判断,如果结果有一个为true  则返回的结果为       true
filter : 针对数组元素做些判断,满足条件的元素,会组成一个新的数组,并且返回
map :    返回一个新的数组
forEach :  没有返回值,就是一个简单的循环

3.7 Math对象方法

Math.floor():向下取整,去掉小数部分
Math.ceil():向上取整,去掉小数部分
Math.round():四舍五入
Math.max():获取数组序列中最大的值
Math.min():获取数组序列中最小的值
Math.pow():计算某个数组的次方数
Math.sqrt():开根号
Math.random():生成一个0-1之间的随机数

3.8 Math对象方法-random

Math.random():生成一个0-1之间的随机数
生成0-x之间的随机数:

parseInt(Math.random()x)

生成x-y之间的随机数:

parseInt(Math.random()(y-x)+x)

4、DOM

Document Object Model
文档           对象      模型

DOM:Document Object Model  文档/对象/模型(表现端)
节点的层次
DOM将HTML描绘成了一个由多层次节点构成的结构
每个HTML文档有且仅有一个根节点,称之为 文档节点,即html


4.1 DOM节点层次

children:非标准属性,返回指定元素的子元素集合
oDiv.children :[ p, span]
childNodes:标准属性,返回指定元素子元素集合 (标准浏览器下会获取到折行)
oDiv.childNodes:[text, p, text, span, text]
nodeType:返回节点类型
1:标签节点
2:属性节点
3:文本节点
nodeName:返回节点名称(标签名)
nodeValue:获取/设置文本节点内容,不能识别标签
parentNode:获取元素的父元素
offsetParent:获取定位父元素
通过offsetParent获取父元素,如果没有定位父元素,会找到body
firstChild/firstElementChild:第一个子元素/子节点
lastChild/lastElementChild:最后一个子元素/子节点
nextSibling/nextElementSibling:下一个元素/节点
previousSibling/previousSibling:前一个元素/节点
//firstChild标准浏览器会获取到空行,firstElementChild是专门解决这个问题的,但是两者不能共用。
兼容:父元素.firstElementChild || 父元素.firstChild


4.2 DOM元素操作

1.创建标签节点

document.createElement('标签名')

2.创建文本节点

document.createTextNode('文本内容')

3.添加标签内容

节点.appendChild(文本节点)
节点.innerHTML

4.在父元素末尾追加节点

父元素.appendChild(子节点)

5.在某个元素之前加入节点

父元素.insertBefore(newChild,refChild)

注意:参数必须是节点,添加一个已经存在的节点,会发生物理位移
6.删除节点

元素.remove():删除当前元素
父元素.removeChild(子节点):删除父元素中的子元素

7.替换节点

父元素.replaceChild(newChild,refChild)

8.克隆节点

节点.cloneNode(boolean)
//false:复制标签,没有内容
//true :既有标签又有内容


9.获取节点属性:元素.getAttribute(属性名)
10.设置节点属性:元素.setAttribute(属性名,属性值)
*和 元素.属性名 获取属性的区别*
<div id="box" class="box" tag="1"></div>
元素.属性名 :不能获取自定义的属性
元素.getAttribute(属性名):可以获取自定义的属性

4.3 DOM获取表格的方式

表格.tHead : 获取表格thead
表格.tFoot : 获取表格tfoot
表格.tBodies : 获取表格tbody,获取到的是个元素集合,需要同[]获取
表格.rows:获取整个表格tr
表格.tBodies[0].rows:获取body中的tr
表格.rows[0].cells :获取单元格,单元格必须通过行获取
表格.tBodies[0].insertRow():添加表格元素
表格.rows[0].deleteRow(下标):删除表格元素

let table = document.getElementById('myTable'); // 获取表格元素
let thead = table.tHead; // 获取表头
let tfoot = table.tFoot; // 获取表尾
let tbodies = table.tBodies; // 获取表体集合
let rows = table.rows; // 获取所有行
let tbodyRows = table.tBodies[0].rows; // 获取第一个表体的所有行
let cells = table.rows[0].cells; // 获取第一行的所有单元格
let newRow = table.insertRow(); // 在表格的最后添加一行
let newCell = newRow.insertCell(); // 在新行的最后添加一个单元格
newCell.textContent = 'New cell'; // 设置新单元格的文本内容
table.deleteRow(0); // 删除表格的第一行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值