Day52 前端开发 JS 函数 BOM DOM

Day52 前端开发 JS 函数 BOM DOM

1、JS数据类型

1.1、JS数据类型之布尔值(boolean)

bollean 布尔值

  1. True
  2. False
    1. (空字符串)
    2. 0
    3. null
    4. undefined
    5. NaN

null 与 undefined 的区别
null可以理解为曾经拥有过 现在暂时空了

undefined可以理解为从来没拥有过

1.2、JS数据类型之对象(object)

JS中也是一切皆对象
所有事物都是对象:字符串、数组、函数····

1.2.1、数组

就是python中的列表

//直接 生成
let l1 = [12,'kk',22,44,55]
typeof l1
'object'
数组方法功能python中类似方法
.length数组的个数len
.push(ele)尾部追加元素append
.pop获取尾部元素pop
.unshift(ele)头部插入元素insert()
.shift头部移除``
.slice(start,end)切片[]
reverse()翻转reverse()
.join将数组元素连接成字符串join
.concat()连接数组extend()
.sort()排序scort()
.forEach()将数组的每个元素传递给回调函数`
.splice()删除元素,并将数组添加新元素``
.map()返回一个数组元素调用函数处理后的值的新数组(映射)map()

forEACh
类似于for循环

forEach(function(Value,index,arr){value,index,arr})

l1.forEach(function(a){console.log(a}))

splice

li = [11,22,33,44,654,781]
l1.splice(2,1,'kk')
l1
(6) [11, 22, 'kk', 44, 654, 781]

map

li = [11,22,33,44,654,781]

l1.map(function(value){return value + 1})
(6) [12, 23, 'kk1', 45, 655, 782]

1.2.2、Js类型之自定义对象()

自定义对象相当于 python中的字典

自定义对象 定义方式

let d1 ={'name:'jason','pwd':123}
         
let d2 = new object()

获取 键值的方式

d1 点健的方式 获取值

d1.name
'jason'

2、运算符

自增 ++
加号位置的不同 其运算的流程也不同

var x=10
var res1=x++;  //加号 值 后面 那么 就是先赋值 在进行自增
//res1=10 x=11

var res2=++x; //加号在值前面 那么就是 先自增 在赋值
//res= 12 x=12

弱等于 与强等于
== 弱等于 js会自动 转换成相同数据类型
===强等于 不会自动转换 等于python中的==

逻辑运算符

符号功能
&&等于python中and
||等于python中的or
等于python中的not

3、流程控制

3.1、分支结构

  1. 单if分支

    if(条件){条件成立之后执行的代码}
    
  2. if ··· else 分支

    if(条件){
        条链成立之后执行的代码
    }
    else{
        条件不成立之后执行的代码
    }
    
  3. if ··· elif ···else 分支

    if(条件1){
        条件1成立之后执行的代码
    }
    else if(条件2){
        条件1不成立条件2成立执行的代码
    }
    else{
        条件不成立之后执行的代码
    }
    

switvh 语法

var day = new Date().getDay();
switch (day) {
    case 0:
        console.log('周日');
        break;
    case 1:
        console.log('周一');
        break
    default:
        console.log("...")
}

3.2、循环结构

for循环

for(let i=1;i<101;i++){
    console.log(i)
}

打印数组内所有数据值

l1 = [11,22,33,44,55,66,77,88,'kk']
for(let i=0;i<l1.length;i++){
    console.log(l1[i])
}

while循环

while(条件){
      循环体代码
      }

4、函数

函数语法结构

function 函数名(形参){
    函数体代码
    return 返回值
}

function func(a,b){
    console.log(a,b)
}

参数的个数 不需要一一对应 如果想要限制参数个数需要使用内置关键字 arguments

function func(a,b){
    if(arguments.length===2){
        console.log(a,b)
    }else{
        console.log('参数个数不足')
    }
}

匿名函数

function(a,b){
    return a +b;
}

箭头函数

var f = function(v){
    return V;
}
var f = V => V; //箭头前面 为形参 箭头指向的是返回值

var f = () => 5;

var f = function(){return 5}

var f =(num1,num2) => num1 + num2;

var f = function(num1,num2){
    return num1+num2
} //js return中只能返回一个值,如果想返回多个值需要自救手给他们包一个数组或对象

5、js内置对象

类似于python中的内置函数名或内置模块
固定语法

var 变量名 = new 内置对象名();

5.1、Date日期对象

let Dobj = new Date();
dobj
Thu Aug 25 2022 18:38:32 GMT+0800 (中国标准时间)

dobj.toLocaleString()
'2022/8/25 18:38:32'

Date 对象的方法

方法名功能
getDate()获取日
getDay()获取星期
getMonth()获取月(0-11)
getFullYear()获取 年份
getMilliseconds()获取毫秒

5.2、JSON 序列化对象

JSON直接 使用

对象转换成JSON格式字符串
JSON.stringify

let d1 = {name: 'kk', pwd: 123};
let sd1 = JSON.stringify(d1)

'{"name":"kk","pwd":123}'

JSON格式字符串 转换成对象
JSON.parse

sd1 = '{"name":"kk","pwd":123}'
let d2 = JSON.parse(sd1)

{name: 'kk', pwd: 123}

5.3、RegExp 正则

定义正则表达式
两种方法

//方法一
let reg1 = new RegExp("^[a-zA-z][a-zA-Z0-9]{5,11}");

//方法二
let reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;

正则表达式中 不能有空格

**当在匹配的括号里什么都不写时 自动匹配 undefined **

6、BOM

BOM:浏览器对象模型
通过写js代码可以跟浏览器交互

打开 一个网页窗口

window.open('http://www.baidu.com','','height=100px,width=100px,left=500px')

关闭网页窗口
只能关 自己写的打开的页面

window.close()

客户端绝大部分信息
userAgent 作为游览器的标识

window.navigtor.userAgent

6.1、history对象

控制网页前进 或 返回上一页
history.forward()
history.back()

//控制网页 前进一页
window.history.forward()

//控制网页返回上一页
window.history.back()

6.2、location对象

查看当前网址 或跳转 至某网址
location.href

//查看当前网址
window.location.href
'https://fanyi.youdao.com/'

//跳转至 某网页
window.location.href='www.baidu,com'

刷新网页 重新加载
location.reload()

window.location.reload()

6.3、弹出框

确认框
confirm()
当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。

confirm('要爆炸了!!')
//用户点确定 返回True 点取消返回False

警告框
alert()

alert('真的要爆炸了!!')

提示框
当提示框出现后 用户需要输入值 然后点击确认或取消按钮 才能继续操作prompt

prompt("你在干神魔?")
//用输入确认 那么 返回值 为输入的值 如果用户点击取消,那么返回值为null

6.4、计时器

定时任务
setTimeout()

function func1(){
        alert('爆炸时间到!!')
    }
let t = setTimeout(func1,3000)

循环定时任务
setInterval()

function func1(){
        alert('爆炸时间到!!')
    }

let t1 =setInterval(func1,3000)

停止循环定时任务

//可以 关停 循环定时任务
clearInterval(t1)

验证 停止 循环定时任务

var s1 = null
    function showMsg() {
        function func1(){
            alert('爆炸了!')
        }
	t1 = setInterval(func1, 3000)}
    function clearMission(){
        clearInterval(s1)
    }
setTimeout(clearMission, 9000) //定时当 九秒后 调用函数 停止 循环定时
showMsg()  //启动 函数里的循环 定时任务

7、DOM

HTML DOM树

img

7.1、DOM操作查找标签(节点)

7.1.1、直接查找标签

JS操作html和css操作html学习套路一致 那是先学如何查找标签

代码准备

<body>
<div id="d1">div</div>
<div class="c1">div</div>
<div>div</div>
<p class="c1"></p>
<span id="d2">span</span>
</body>

根据id 查找 标签
结果是标签本身

document.getElementById('d1')

<div id="d1">div</div>

根据class 查找标签
结果是数组

document.getElementsByClassName('c1')

HTMLCollection(2) [div.c1, p.c1]

根据 标签类型 获取标签
结果是数组

document.getElementsByTagName('div')

//HTMLCollection(3) [div#d1, div.c1, div, d1: div#d1]

**涉及到DOM的操作 的JS代码应该放在文档的body标签 内部的最下方 **

7.1.2、间接查找标签

代码准备

<body>
<p>111</p>
<p>222</p>
<div id="d1">
  div
  <p>div>p
  <span>div>p>span</span>
  </p>
  <span>div>span</span>
  <p>div>p</p>
</div>
<span>333</span>
<span>5555</span>
</body>

存储标签

let div1Ele = document.getElementById('d1')
div1Ele

<div id="d1">
  div
  <p>div&gt;p
  <span>div&gt;p&gt;span</span>
  </p>
  <span>div&gt;span</span>
  <p>div&gt;p</p>
</div>

获取 该标签的父标签

document.getElementById('d1').parentElement
div1ELe.parentElement

<body>
<p>111</p>
<p>222</p>
<div id="d1">
  div
  <p>div&gt;p
  <span>div&gt;p&gt;span</span>
  </p>
  <span>div&gt;span</span>
  <p>div&gt;p</p>
</div>
<span>333</span>
<span>5555</span>

</body>

获取所有的子标签

div1Ele.children

HTMLCollection(3) [p, span, p]

获取 第一子标签

div1Ele.firstElementChild

<p>div&gt;p
  <span>div&gt;p&gt;span</span>
</p>

获取最后一个子标签

div1Ele.lastElementChild

<p>div&gt;p</p>

获取下一个兄弟标签

div1Ele.nextElementSibling

<span>333</span>

获取上一个兄弟标签

div1Ele.previousElementSibling

<p>222</p>

7.2、DOM操作 操作节点

创建标签对象

let aEle = document.createElement('a')  //创建一个a标签

给标签添加属性

aEle.href = 'https://www.baidu.com'  //给a标签添加 href属性

给标签添加文本

aEle.innerText = '前往百度主页'  //给给 a标签 添加 文本

<a href="https://www.baidu.com">前往百度主页</a>

让创建 的标签添加至文档流中(页面上)
该方式为动态创建 临时有效

div1Ele.append(aEle)  //通过查找到的标签 点 append 添加 创建好的a标签 值末尾

div1Ele.insertBefore(aEle,div1Ele.firstElementChild)  //添加至指定节点的前面
7.2.1、属性操作

设置标签的自定义属性
setAttribute

//setAttribute 标签可以定义 默认属性也可以定义自定义属性
img1.setAttribute('src','111.png')

img1.setAttribute('aaa','kkk')  
  • 通过点的形式定义的 属性 只能是默认属性
7.2.2、文本操作

获取标签内所有文本与标签(可以创建子标签)
innerHTML

div1Ele.innerHTML

'\n  div\n  <a href="https://www.baidu.com">前往百度主页</a><p>div&gt;p\n  <span>div&gt;p&gt;span</span>\n  </p>\n  <span>div&gt;span</span>\n  <p>div&gt;p</p>\n'  //不同的标签通过撬棍 符分割

//创建子标签
div1Ele.innerHTML= '<h3> 这是innerHTML</h5>'
div1Ele
<div id="d1"><h3> 这是innerHTML</h3></div>

获取标签内文本
innerText

div1Ele.innerText

'div 前往百度主页\n\ndiv>p div>p>span\n\ndiv>span\n\ndiv>p'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值