首页 > 编程语言 >python学习Day53

python学习Day53

时间:2022-08-25 23:36:49浏览次数:64  
标签:function python 标签 JS 学习 let var Day53

Day 53

今日内容概要

  • JS数据类型
    • JS数据类型—布尔值
    • JS数据类型—对象object
    • JS数据类型—自定义对象object
  • JS运算符
  • JS流程控制
  • JS函数
  • JS内置对象
  • JS的BOM与DOM操作(核心)

今日内容详细

一.JS数据类型

1.JS数据类型—布尔值
python中的布尔值bool:
	True
	False:0、None、''、[]、{}..
JS中的布尔值boolean:
    true
    false:(空字符串)、0、null、undefined、NaN
    
'''
null与undefined的区别
	null可以理解为曾经拥有过,现在暂时空了
	undefined可以理解为从来没拥有过
'''
2.JS数据类型—对象object
'JS中同样也是一切皆对象'

对象之数组(相当于python中的列表)
let l1=[11,22,33]
内置方法 说明
.length 数组的大小
.push(ele) 尾部追加元素
.pop() 获取尾部的元素
.unshift(ele) 头部插入元素
.shift() 头部移除元素
.slice(start, end) 切片
.reverse() 反转
.join(seq) 将数组元素连接成字符串
.concat(val, ...) 连接数组
.sort() 排序
.forEach() 将数组的每个元素传递给回调函数
.splice() 删除元素,并向数组添加新元素。
.map() 返回一个数组元素调用函数处理后的值的新数组
eg: forEach() 类似Python中for循环
var numb_list=[11,22,33,44]
numb_list.forEach(function(a){console.log(a)})
结果为依次打印11 22 33 44  

eg: splice()
numb_list.splice(2,1,'aa') #从索引为2的位置删一位数,改为aa
3.JS数据类型—自定义对象object
自定义对象(相当于python中的字典)
	定义方式1:
        let d1 = {'name':'张三','pwd':123}
 	定义方式2:
        let d2 = new Object()#此时d2是空字典,typeof下是对象
        
自定义对象操作数据值的方式更加简单 直接使用句点符
	d1.name#结果就会出来值张三
	d1.hobby='run'#显示d1就会发现新增了一个键值对

二.JS运算符

var x=10;
var res1=x++;  先赋值再自增 此时res1是10
var res2=++x;  先自增再赋值 此时res2是12

==	弱等于(JS会自动转换成相同数据类型比较)
=== 强等于(不自动转换相同数据类型)
#所以在js中涉及到比较时尽量用===,防止判断错误

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

三.JS流程控制

1.分支结构

	1.单if分支
    	if(条件){条件成立之后执行的代码}
        
	2.if..else分支
    	if(条件){
            条件成立后执行的代码
        }else{
            条件不成立后执行的代码
        }
        
	3.if..elif..else分支
    	if(条件1){
            条件1成立后执行的代码
        }else if(条件2){
            条件1不成立,条件2成立执行的代码
        }else{
            条件都不成立后执行的代码
        }
        
————————————————————————————————————————————
    这里还有一种语法,其他编程语言里有但python里没有,因为完全可以用if实现:switch(相当于连续的多个if判断) '以下仅了解即可'
	var day = new Date().getDay();#获取当前是星期几
	switch (day) {
       case 0:
         console.log("Sunday");
         break;
       case 1:
         console.log("Monday");
         break;
      default:
         console.log("不知道今天是星期几")
    	}
    
    switch中的case子句通常都会加break语句,如果去掉的花程序会继续执行后续case中的语句。
2.循环结构

【for循环】
  eg:
    循环打印1~100
	for(let i=1;i<101;i++){  #定义开始位置,循环条件,每次循环完做什么事
        console.log(i)		#打印i
    }
    
  eg:
    打印数组内所有的数据值
    l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99, 'jason']
    for(let i=0;i<l1.length;i++){
        console.log(l1[i])
    }
—————————————————————————————————————————————————————————
【while循环】
  eg:
    循环打印1~10
 	var i = 0;
	while (i < 11) {
  		console.log(i);
  		i++;
	}

四.JS函数

语法结构:
	function 函数名(形参){
        函数体代码
        return 返回值
    }

/*以下仅列举三个重要的、或python中没有的,其余与python差不多*/


【有参函数】:
#参数的个数不需要一一对应,如果想限制参数个数则需要使用内置关键字arguments:
function func(a, b){
    if(arguments.length===2){   /*如果参数数量是2则往下执行*/
       console.log(a, b) 
    }else{
       console.log('参数个数不对')
    }   
}

【匿名函数】
    function(a){console.log('我是匿名函数')} #没有函数名
    如果要使用匿名函数则:
    let 函数名 = function(a){console.log('我是匿名函数')}

【箭头函数】

     var f = v => v;
     // 等同于
      var f = function(v){
      return 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日期对象
let Obj=new Date(); /*获取当前时间对象*/
Obj.toLocaleString()/*转成当地时间 2022/8/25 21:17:00*/
Obj.getDay();		/*获取今天星期几  4*/
方法 解释
getDate() 获取日
getDay () 获取星期
getMonth () 获取月(0-11)
getFullYear () 获取完整年份
getYear () 获取年
getHours () 获取小时
getMinutes () 获取分钟
getSeconds () 获取秒
//getTime () 返回累计毫秒数(从1970/1/1午夜)
2.JSON序列化对象(重点)
	python的序列化:
    	  import json
    	  json.dumps() #序列化
    	  json.loads() #反序列化
	JS中的序列化:
    	  JSON.stringify() #序列化
    	  JSON.parse()	#反序列化
        
eg:
    let ddd={'name':'torry','pwd':'123'}
    let strJson=JSON.stringify(ddd)  #序列化
    JSON.parse(strJson)		#反序列化
 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}$/;
 	
当遇到一些无法理解的bug时,大概率是JS内部的bug,百度一下

六.JS的BOM与DOM操作(核心)

BOM:浏览器对象模型
    通过写js代码可以跟浏览器交互
DOM:文档对象模型
    通过写js代码可以跟html文档交互
【BOM操作】
    window.innerHeight  	#获取浏览器当前窗口高度
    window.innerWidth   	#获取浏览器当前窗口宽度
    window.open('网站','')   #打开子页面 (内部可以添加属性)
    window.close()			#关闭当前窗口(只能关闭自己打开的)
    window.navigator.userAgent() #获取浏览器信息(主要用于爬虫)
    window.history.forward()	#页面前进下一页
    window.history.back()		#页面后退前一页
    window.location.href		#获取当前页面网址 *
    window.location.href = 新网址 #重新访问一个新网址 *
    window.location.reload()	#刷新当前页面 *
    alert()   警告			#弹出一个警告框
    confirm()  确认			#弹出一个确认框(有按钮 会返回true或false)
    prompt()  提示			#弹出一个提示框,用户输入的信息会返回回来
    ——————————————————————————————————————————————————————————————————
  	定时器相关操作(重要):
            function func1(){
                alert('要吃饭了')
            }

            let t =setTimeout(func1,3000) //3秒后自动执行一次func1函数
            clearTimeout(t)//取消上面的延时定时任务
            let s1 = setInterval(func1,3000)//3秒后自动循环执行func1函数(缺陷:会叠加)
            clearInterval(s1)//取消上面的循环延时定时任务
    ——————————————————————————————————————————————————————————————————————
    eg:3s后循环警告要干饭了,且10秒后取消该警告
    
    <body>
	<script>
    	var s1 = null
        function showMsg() {
            function func1(){
                alert('要干s饭了')#弹出警告
            }
            s1 = setInterval(func1, 3000)#3s后自动循环执行func1函数
        }
        function clearMission(){
            clearInterval(s1)#取消上面定时器
        }
        setTimeout(clearMission, 10000)#10秒后执行clearMission函数来取消定时器
        showMsg()
    </script>
    </body>
【DOM操作】
  JS操作html和CSS操作html学习套路一致 都是先学如何查找标签:
    document.getElementById()
    	根据id值查找标签 结果直接是标签对象本身
    document.getElementsByClassName()
    	根据class值查找标签 结果是数组类型
    document.getElementsByTagName()
    	根据标签名查找标签 结果是数组类型
   #当涉及到标签查找时需注意要在标签加载下面写(只有加载了标签才能查找到)
    parentElement            父节点标签元素
    children                 所有子标签
    firstElementChild        第一个子标签元素
    lastElementChild         最后一个子标签元素
    nextElementSibling       下一个兄弟标签元素
    previousElementSibling   上一个兄弟标签元素	
  	 
   #当有一个标签对象需要反复使用,可以用变量名接收存储一下(减少打字的量!)
  	 let divEle = document.getElementById('d1')
  ——————————————————————————————————————————————————————————————————————
        
   	节点(标签)操作:   #节点就是标签!
        let XXXEle = document.createElement('标签名,如a') #创建a标签
        XXXEle.id = 'id值'				#给创建的标签添加id值
        aEle.href='某个网址'				#给创建的a标签添加一个网址
        XXXEle.innerText = '内部文本' 		#给创建的标签添加内部文本文字
        divEle.append(XXXEle)			#把创建的标签添加到某个标签内部
    	注:这是动态创建!生效一次,不是永久生效的!!

 	属性操作
       XXXEle.属性  		    只能设置默认属性
       XXXEle.setAttribute()  可以设置默认属性、自定义属性
       
   	文本操作
        divEle.innerHTML  #获取标签内部所有内容
        divEle.innerText  #获取标签内部所有文本内容

    1.divEle.innerHTML = '<h1>嘿嘿嘿</h1>'
      结果会改变文字大小
    2.divEle.innerText = '<h1>哈哈哈</h1>'
      结果会显示后面文本:'<h1>哈哈哈</h1>' 

作业

1.整理今日内容及博客
2.自行完善上午默写题并流畅说出
3.预习明日内容
	DOM操作、jQuery框架

标签:function,python,标签,JS,学习,let,var,Day53
From: https://www.cnblogs.com/Oreoxx/p/16626170.html

相关文章

  • 学习python-Day47
    今日学习内容JS数据类型比较我们学过python的数据类型去学习布尔值python:boolTrue:数字False:0None''[]{}...JS:boolentruefa......
  • python安装和配置
     下载地址https://www.python.org下一步同时下载python3/python2     安装点下一步即可安装python3记得选中path将path的python3的目录选中粘贴在C盘目......
  • python实现给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能
    题目描述:给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果!样例:input:[["a","b","cd",["de"],["e","f"]]output:["adee","adef"......
  • python3 的基础数据类型
    python有六种基本的数据类型,分别是:Numbers数字String字符串List列表Tuple元组Set集合(python3新增)Dictionary字典在这六个基本数据中可变数据类型为:list,set,dict......
  • 前端学习-4
    目录JS数据类型之布尔值JS数据类型之对象(object)JS数据类型之自定义对象(object)运算符流程控制函数JS内置对象BOM与DOM操作8.25小练习JS数据类型之布尔值回顾一波pyth......
  • 【Python】文件读写
    一、Python读取txt文件text_file="xxx.txt"withopen(text_file)asf:lines=f.readlines()lines=[line.strip()forlineinlines]print(lines)二、P......
  • Mac+Jenkins+Git+Python自动化项目集成-jenkins配置
    Mac+Jenkins+Git+Python自动化项目集成-jenkins配置一、下载安装jenkins(mac)1.Jenkins.war包下载地址:http://updates.jenkins-ci.org/download/war/2.打开终端输入:java......
  • mitudesk的python日记 int
    int是python的内置类型,也是一个类,拥有类的属性int内置函数1.__abs__使用方法,ads(a)2.__add__是+的原型函数,在类中重载__add__能改变类的加法 3.__and____abs____a......
  • 学习笔记270—Excel如何快速批量将中文名字转换为拼音?
    Excel如何快速批量将中文名字转换为拼音?在excel表格中,我们可以通过内置的功能来进行拼音的编辑,但无法直接批量地转换中文为拼音。当然,这里是跳过了vba的用法,因为vba要求......
  • 监督学习集成模型——LightGBM
    LightGBM的全称为LightGradientBoostingMachine,即轻量的梯度提升机,由微软在其论文“LightGBM:AHighlyEfficientGradientBoostingDecisionTree”中提出,作为与XGBo......