python学习第五十四天:作用域对象与运用技巧

1. JS作用域

1.1 全局作用域和局部作用域

  • 函数外面声明的就是 全局作用域
  • 函数内是局部作用域
  • 全局变量可以直接在函数内修改和使用
  • 变量,使用var是声明,没有var是使用变量。 如果在函数内使用var来声明变量,在函数内会覆盖同名的全局变量

1.2 变量提升

  • 在变量声明之前 去使用变量 会得到 undefined ,而不是报错
  • 函数内,如果声明了跟全局变量同名的局部变量, 在声明之前使用改变量,得到undefined( 该变量已经是局部的啦)

1.3 作用域链

  • 当一个作用域 使用某个变量时,先从本作用域中找, 如果没有去父作用域,再没有,父作用域的父作用域,一直到 全局作用域。 构成了一个作用域链

1.4 闭包

  • 通常需要 函数中 返回一个 函数
  • 目的 把一个局部作用域的 数据 让外层的作用域使用

1.5 ES6 新增一 块状作用域

  • let关键字也可以声明变量,同var一样
  • 但是let关键字声明的变量,会在结构语句中产生 块状作用域
  • ES6建议 使用let代替 var

2. JS对象

2.1 构造函数和对象

构造就是类
function User([参数]) {
    this.属性 = 值;
    this.属性 = 值;

    this.方法 = function(){

    }
}

#实例一个对象
new 构造函数();
如果构造函数没有参数 可以 不加()

2.2 JS原型和原型链

原型

  • 每个对象 都有原型 (原型仍然是一个对象)
  • 对象可以继承原型的属性和方法
  • __proto__ 所有对象都有该属性, 该属性指向该对象的原型

原型链

  • 原型作为对象 也有原型
  • 原型的原型的原型 就构成了 原型链
  • 使用对象中某个属性的时候,先从对象中找,如果没有,从原型上找,原型如果也没有,继续向上找,直到顶层 (顶层的原型对象是一个 类型(类)(构造函数)是Object 的对象)

2.3 JS对象属性的调用

.  点
obj.name
obj.age

[]  中括号
obj[‘name‘]
obj[‘age‘]

任意的对象
都可以在对象实例化完成后,
添加属性和方法

2.4 Object 构造函数

js內建的构造方法叫Object
var obj = new Object()

json方式定义对象
var obj = {属性:值,属性:值}
new Object()的简写

实用技巧

3.1 从页面中获取元素

document.getElementById()
根据ID的值获取元素对象
document.getElementsByTagName()
根据标签名取元素对象
document.getElementsByClassName()
根据class的值取元素对象
document.getElementsByName()
根据name属性的值获取元素对象
document.querySelector(css选择器)
返回满足条件的第一个元素对象
document.querySelectorAll(css选择器)
返回所有满足条件元素组成的类数组对象

3.2 给元素绑定事件

先获取元素
ele.onclick = function(){

}

获取元素的类数组对象, 遍历,挨个给每个元素绑定事件

3.3 修改元素的CSS样式

ele.style.css属性名
ele.style.background
ele.style.border
ele.style.backgroundColor
ele.style[‘background-color‘]

3.4 设置元素的class值

ele.className
可以赋值,也可以获取
ele.classList.add(‘值‘)
添加一个class值
ele.classList.remove(‘值‘)
删除一个class值
ele.classList.toggle(‘值‘)
自动切换一个class值(有就删除,没有就添加)

3.5 事件

onclick         单机
ondblclick      双击
oncoutextmenu   右击
onmouseover/onmouseenter
鼠标悬浮在元素上
onmouseout/onmouseleave
鼠标离开元素
onmousemove     鼠标在上面移动
onmousedown     鼠标的按键按下
onmouseup       鼠标的按键抬起

3.6 js定时

单次定时

setTimeout(fn,delay)
clearTimeout()  清除定时

多次定时

setInterval(fn,dealy)
clearInterval()  清除定时

原文地址:https://www.cnblogs.com/luck-L/p/9465277.html

时间: 2024-11-10 14:06:12

python学习第五十四天:作用域对象与运用技巧的相关文章

python学习之第十四天补充

本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣和效率最高的,今天就来基于下面的需求来继续学习Django 项目需求: 1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户要有咨询纪录, 后续的定期跟踪纪录也要保存6.每个学员的所有上课出勤情况\学习成绩都要保存7.学校可以

Python学习笔记(十四)

一.序列化与反序列化 Python 中的 pickle模块提供了一种序列化对象的方法 import pickle class Student(object): def __init__(self,name,age,school="新华") self.__name = name self.__age = age self.__school = school def get_dict(slef): return { "name":self.__name, "a

python学习笔记-(十四)进程&协程

一. 进程 1. 多进程multiprocessing multiprocessing包是Python中的多进程管理包,是一个跨平台版本的多进程模块.与threading.Thread类似,它可以利用multiprocessing.Process对象来创建一个进程.该进程可以运行在Python程序内部编写的函数.该Process对象与Thread对象的用法类似. 创建一个Process实例,可用start()方法启动. join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步.

python学习之第十四天再补充

自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproject.com/en/1.9/topics/pagination/ 自定义template tags https://docs.djangoproject.com/es/1.9/howto/custom-template-tags/ 权限管理 django 自带有基本的权限管理 ,但粒度和限制权限的维度都只是针对具体的表,如果我们想根据业务功能来限制权限,那就得自己

Python学习笔记(十四)安装第三方模块

摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143186362353505516c5d4e38456fb225c18cc5b54ffb000 本文章完全用来个人复习使用,侵删: 在Python中,安装第三方模块,是通过包管理工具pip完成的. 在命令提示符窗口下尝试运行pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip. 注意:Mac或Lin

JAVA学习第五十四课 — IO流(八)打印流 & 序列流

一.综合练习-文件清单列表 获取指定目录下,指定扩展名的文件(含子目录),并将这些文件的绝对路径写到一个文本文件中.也就是建立一个指定扩展名的文件列表 1.深度遍历 2.过滤器->容器 3.写入文件 import java.util.List; import java.io.*; import java.util.ArrayList; public class Main { public static void main(String[] args) throws IOException { F

Python 学习笔记(十四)Python类(三)

完善类的内容 示例: 1 #! /usr/bin/env python 2 # coding =utf-8 3 4 #通常类名首字母大写 5 class Person(object): 6 7 """ 8 This is about a person #类文档 9 """ 10 11 def __init__(self,name,lang="python"):#初始化函数,类被实例化的时候,要执行 12 self.name =

python学习(二十四)开发接口

模拟一些接口,在接口没有开发成功前,可以用它来测试 用来查询数据 1.第一个接口 import flask,json #__name__,代表当前这个python文件 server=flask.Flask(__name__) #把这个python文件,当做一个服务 #ip:8000/index?uge @server.route('/index',methods=['get','post']) #可以只写一个,那就只支持那一个 def index(): res={'msg':'这是开发的第一个接

python学习第七十四天:单表查询

单表查询 创建表 创建模型 在models.py中定义类,一个类就是一张表 from django.db import models class Book(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64) pub_data = models.DateField() price = models.DecimalField(max_digits=5, decima