前端四

今日内容概要

  • JS基本数据类型
  • 流程控制
  • 函数与面向对象
  • JS的BOM与DOM操作

今日内容详细

JS数据类型之布尔值

python
	bool
    	True
       False:0 None '' [] {} ...
JS
	boolean
    	true
       false:(空字符串)、0、null、undefined、NaN
   
null与undefined的区别
	null可以理解为曾经拥有过 现在暂时空了
	undefined可以理解为从来没拥有过
null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
null表示变量的值是空(null可以手动清空一个变量的值,使得该变量变为object类型,值为null),undefined则表示只声明了变量,但还没有赋值。

还不明白,上图吧!

image

image

JS数据类型之对象(object)

'''在JS中也是一切皆对象'''
1.对象之数组(相当于python中的列表)
	let l1 = [11, 22, 33, 44]
常用方法:

方法			说明
.length			数组的大小
.push(ele)		尾部追加元素
.pop()			获取尾部的元素
.unshift(ele)		头部插入元素
.shift()		头部移除元素
.slice(start, end)	切片
.reverse()		反转
.join(seq)		将数组元素连接成字符串
.concat(val, ...)	连接数组
.sort()	排序
.forEach()		将数组的每个元素传递给回调函数
.splice()		删除元素,并向数组添加新元素。
.map()			返回一个数组元素调用函数处理后的值的新数组


image

JS数据类型之自定义对象(object)

1.自定义对象(相当于python中的字典)
	定义方式1:
        let d1 = {'name':'jason','pwd':123}
 	定义方式2:
        let d2 = new Object()
自定义对象操作数据值的方式更加简单 直接使用句点符


运算符

var x=10;
var res1=x++;  先赋值后自增
var res2=++x;  先自增后赋值

==	弱等于(自动转换成相同数据类型)
=== 强等于(不自动转换)

&&	等价于python中的and
||  等价于python中的or
!	等价于python中的not

流程控制

1.分支结构
	1.单if分支
    	if(条件){条件成立之后执行的代码}
 	2.if...else分支
    	if(条件){
            条件成立之后执行的代码
        }else{
            条件不成立之后执行的代码
        }
  	3.if...elif...else分支
    	if(条件1){
            条件1成立之后执行的代码
        }else if(条件2){
            条件1不成立条件2成立执行的代码
        }
        else{
            条件不成立之后执行的代码
        }
if(name==='tony'){console.log('今晚去洗脚')}
else{console.log('回家睡觉')}
"""
var day = new Date().getDay();
switch (day) {
  case 0:
  	console.log("Sunday");
  	break;
  case 1:
  	console.log("Monday");
  	break;
  default:
  	console.log("...")
}
"""

2.循环结构
	for(let i=1;i<101;i++){
        console.log(i)
    }
	课堂小练习
    	打印数组内所有的数据值
 			l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99, 'jason']
      	  	for(let i=0;i<l1.length;i++){
                console.log(l1[i])
            }
   	
 	while(条件){
        循环体代码
    }
	
	
while(i<10){console.log(i);i++;} 实现0到9打印
for(i=0;i<10;i++){console.log(i)}实现0到9打印

函数

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 sum = (num1, num2) => num1 + num2;
    // 等同于
    var sum = function(num1, num2){
      return num1 + num2;  //这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中
    }

JS内置对象

类似于python中的内置函数或者内置模块
固定语法
	var 变量名 = new 内置对象名();
 
1.Date日期对象
2.JSON序列化对象
	回顾python序列化
    	import json
   		json.dumps()
       json.loads()
	JS中的序列化
    	JSON.stringify()
       JSON.parse()
 3.RegExp正则对象
	var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
	var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;
 	注意有一些小特点

BOM

BOM:浏览器对象模型
    通过写js代码可以跟浏览器交互
DOM:文档对象模型
    通过写js代码可以跟html交互
    
BOM操作
window.open('https://www.jd.com/','','height=200px,width=200px,left=200px') 打开窗口

window.close() 关闭网站
   window.navigator.userAgent() 获取浏览器信息
	window.history.forward()   前进
   	window.history.back()  回退
   	window.location.href  获取当前网址
   window.location.href = 新网址
 	window.location.reload() 刷新网站
  	alter()   警告
   confirm()  确认
	prompt()  提示

定时器
	 var obj = new Date()

        function  func2(){alert(obj)} //alert 弹框
        t1 = setInterval(func2,2000)  //自动执行函数 时间是毫秒
    function func1() {clearInterval(t1)} /*取消弹框*/
        setTimeout(func1,9000)

DOM操作

JS操作html和CSS操作html学习套路一致 都是先学如何查找标签
	
    document.getElementById()
    	根据id值查找标签 结果直接是标签对象本身
    document.getElementsByClassName()
    	根据class值查找标签 结果是数组类型
    document.getElementsByTagName()
    	根据标签名查找标签 结果是数组类型
		
		
//查找标签是需将script写在body最后面
//基于某一个标签查找标签是可以用变量名存储起来
parentElement            父节点标签元素
    children                 所有子标签
    firstElementChild        第一个子标签元素
    lastElementChild         最后一个子标签元素
    nextElementSibling       下一个兄弟标签元素
    previousElementSibling   上一个兄弟标签元素	
 """
 let divEle = document.getElementById('d1')
 """

节点操作
获取节点
et idEle = document.getElementById('d1')

创建标签
let aEle = document.createElement('a')
aEle.href = 'https://www.sogo.com/'
aEle.innerText='点我去搜狗'
将标签添加到获取去的标签中
idEle.append(aEle)

标签中添加默认属性
var imgEle=document.createElement('img')
imgEle.src='111'
imgEle.title='这是一个小妞的图片'
添加非默认属性需要用setAttribute方法
imgEle.setAttribute('name','今晚去哪里洗脚')



文本操作
    	  divEle.innerHTML
        divEle.innerText

    	  divEle.innerHTML = '<h1>嘿嘿嘿</h1>'
        '<h1>嘿嘿嘿</h1>'  可以识别标签将标签自动添加
        divEle.innerText = '<h1>哈哈哈</h1>'
        '<h1>哈哈哈</h1>'   不识别内部标签怎么写的就怎么展示
dEle.innerText='<h1>今晚</h1>'
![image](https://img2022.cnblogs.com/blog/2896340/202208/2896340-20220825231733483-884915617.png)

idEle.innerHTML='<h1>今晚</h1>'
![image](https://img2022.cnblogs.com/blog/2896340/202208/2896340-20220825231850982-760572827.png)
posted @ 2022-08-25 23:20  懒羊羊A  阅读(23)  评论(0)    收藏  举报