1.闭包

// 函数的嵌套定义,定义在内部的函数都称之为 闭包

// 1.一个函数要使用另一个函数的局部变量

// 2.闭包会持久化包裹自身的函数的局部变量

// 3.解决循环绑定

function outer(){

  var num = 10;

  function inner(){ // 闭包

    // 1.在inner函数中,使用了outer的局部变量num

    return num;

  }

  return inner;

 }

var innerFn = outer();

// 2.借助闭包,将局部变量num的生命周期提示了

var num = innerFn();

console.log(num);

2.面向对象js

// 1.单一对象

var obj = {

  // 属性

  name:'zero';

  // 方法

  teach:function(){

    console.log("教学");  

  }

};

obj.name | obj.teach()

// 2.构造函数

function Person(name){ // 类似于python中的类一样来使用

  // this代表Person构造函数实例化出的所有具体对象中的某一个

  this.name = name;

  this.teach = function(){

    console.log(this.name+"正在教育");

  }

}

//  ①通过构造函数实例化出具体对象

//  ②通过对象,语法调用的属性与方法

var p1 = new Person("张三");

p1.name // 张三,this指向p1对象

var p2 = new Person("李四");

p2.teache  // 李四正在教学,this指向p2对象

// 3.ES6类语法

class Student{

  // 需要构造器(构造函数)来完成对象声明与初始化

  constructor(name){

    // 属性在构造器中声明完成初始化

    this.name = name;

  }

  // 类方法

  static fn(){

    console.log("我是类方法")
  }

}

// 类中的普通方法由类的具体实例化对象来调用

// 类中的类方法由类直接调用(这类型的方法大多是功能性方法,不需要对象的存在)

3.js选择器

直接通过id名(不严谨,也不推荐使用)

getElement系列(最严谨)

// id获取:
// getElementById('id名')
// 只能由document来调用 // class获取
// getElementByClassName('class名')
// 可以由document以及所属父级调用 // tag获取
// getElementsByTagName('标签名')
// 可以由document以及所属父级调用 querySelector
// 获取第一个满足要求的目标
//querySelector() // 获取所有满足要求的目标
// querySelectorAll() // 1.参数:就采用的是css选择器语法
// 2.可以由document及父级来调用
// 3.对id检索不严谨

4.事件初识

// js事件: 页面标签在满足某种条件下可以完成指定功能的这种功能,称之为事件
// 某种条件:如鼠标点击标签:点击事件 | 鼠标双击标签:双击事件 | 键盘按下:
键盘按下事件
// 指定功能:就是开发者根据实际需求完整相应的功能实现 // 钩子函数:就是满足某种条件被系统回调的函数(完成指定功能)
// 点击事件:明确激活钩子的条件 = 机会钩子后该处理什么逻辑,完成指定功能(函数) // 获取页面标签是前提
var div = documet.querySelector('.div')
// 钩子条件:双击 = 指定功能(自身背景颜色变红)
div.ondblclick = function(){
this.sytle.backgroundColor = "red";
}

5.js操作页面内容

文本内容

// box.innerText
// 可以设值,也可以取值

标签内容

// box.innerHTML
// 可以设值,也可以取值,能解析html语法代码 // box.outerHTML
// 获取包含自身标签信息的所有子内容信息

样式

// box.style.样式名 ==》可以设值,可以取值,但操作的只能是行间式
// getComputedStyle(box,null). 样式名 ==》只能取值,不能设值,能获取所有方式设值的值(行间式 与 计算后样式) // 注:获取计算后样式,需要关注值得格式

第六十五天 js操作的更多相关文章

  1. python第六十五天--python操作mysql

    pymysql模块对mysql进行 import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='ro ...

  2. Gradle 1.12用户指南翻译——第六十五章. Maven 发布(新)

    其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...

  3. 孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4

    孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十一天. 今天继续学习mongoDB的简单操作 ...

  4. 《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)

    1.简介 今天这一篇,宏哥主要讲解:利用WebDriver 提供可以读取.添加和删除cookie 信息的相关操作方法.验证浏览器中是否存在某个cookie.原因是:因为基于真实的cookie 的测试是 ...

  5. Bootstrap入门(二十五)JS插件2:过渡效果

    Bootstrap入门(二十五)JS插件2:过渡效果 对于简单的过渡效果,只需将 transition.js 和其它 JS 文件一起引入即可.如果你使用的是编译(或压缩)版的bootstrap.js  ...

  6. 第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询

    第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询 1.elasticsearch(搜索引擎)的查询 elasticsearch是功能 ...

  7. “全栈2019”Java第六十五章:接口与默认方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. OpenCV开发笔记(六十五):红胖子8分钟带你深入了解ORB特征点(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  9. 第六十四天 JS基础操作

    一.分支结构 1.if语句 if基础语句 if(条件表达式){ 代码块: } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通表达式 // 0.undefined ...

随机推荐

  1. Array的 map() 和 reduce()

    map() map() 方法返回一个新数组,新数组中的元素为原始数组中的元素依次调用参数中的函数处理后的值. map() 方法不会对空数组进行检测,也不会修改原数组. 语法: array.map(fu ...

  2. TextView走马灯

    设置textView走马灯形式显示: android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally ...

  3. Ubuntu下crontab启动、重启、关闭命令

    在Ubuntu14.04环境下,利用crontab编写shell脚本程序,定时执行php相关程序.在这个过程中,经常使用到的crontab命令如下: (root权限下) crontab启动:/etc/ ...

  4. debian 9 开机启动

    由于某些软件并没有增加开启启动的服务,很多时候需要手工添加,一般我们都是推荐添加命令到 /etc/rc.local 文件,但是 Debian 9 默认不带 /etc/rc.local 文件,而 rc. ...

  5. centos简单的后台运行

    # 忽略输出文件 nohup java FileTest > /dev/null 2>&1 &

  6. 我的第一个python web开发框架(29)——定制ORM(五)

    接下来我们要封装的是修改记录模块. 先上产品信息编辑接口代码 @put('/api/product/<id:int>/') def callback(id): ""&q ...

  7. LinuxMint上安装redis和python遇到的一些问题

    今天在安装Redis和Python上遇到了些问题,解决后记录下来. 环境:LinuxMint 18.3 安装redis sudo wget http://download.redis.io/relea ...

  8. eclipse下将maven项目打包为jar(1.不带第三方jar,2.带第三方jar)

    由于项目需要讲maven项目打包为jar包,由于之前没类似经验,百度找例子走了不少弯路,这边随手记录下,网上说的 开发工具:eclipse jar包管理:maven 一般打包出来的jar包分为两种 一 ...

  9. C# 将普通字符串转换为二进制字符串

    1.因为项目的需要,在向数据库中添加人的信息时,必须要求是英文或数字,所以想了个办法,将我们人能看懂的字符串编译成二进制字符串转入就行了. 具体的逻辑实现代码如下:

  10. PHP中生成UUID

    一.什么是UUID 简单的说UUID就是一串全球唯一的(16进制)数字串. UUID的全拼为“Universally Unique Identifier”,可以译为“通用唯一识别码”.UUID由开源软 ...