js进阶WebApi基础,事件

一.变量声明

1.1 var、 let 和 const

能使用const尽量使用const,写到后面如果发现不是常量再进行修改,因为const的语音化更好

一般简单数据类型 我们使用let来声明

复杂数据类型我们使用const来声明

为什么?

因为复杂数据类型是储存在堆中,我们去对他的修改,是修改的堆里的内容,并没有修改他的地址

但是不能重新赋值,比如:

const person = {
   uname: 'shadow',
   age: 17,
   gender: '女'
}
person.gender = '男'
console.log(person.gender)  // 男
console.log(person)
//这里我们进行修改他的内容,只是修改堆中的内容,所以用const声明是可以的
​
const person = {
 uname: '李芋圆',
   age: 18,
   gender: '女'
}
//这里我们不可以对person重新赋值,这样就会改变他的地址,需要用let来声明

而简单数据类型直接储存在栈里,当我们进行重新复制的会就会改变他的值,所以不能用const声明

// 测试1
let num = 1
num = num + 1
console.log(num)  // 结果是2
//在这里我们对sum进行了重新赋值的操作,所以不能使用const来声明

二.Web APIs的认知

js分为ECMAscript(js基础)和Web APIs

Web APIs分为dom和bom

dom用来操作文档,bom用来操作浏览器

2.1DOM树

把html文档以树状结构表现出来叫dom树

三.自定义属性

自定义属性:

  • 在html5中推出来了专门的data-自定义属性

  • 在标签上一律以data-开头

  • 在DOM对象上一律以dataset对象方式获取

四.事件

4.1事件基础

1.是什么是事件?

用户的行为被检测到

2.什么是事件监听?

让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应。

3.事件监听三要素是什么?

事件源:哪个元素被触发了

事件类型:你做了什么?点击、经过等等

事件调用的函数:你点击他要做什么

4.2事件对象

  • 事件对象是什么?

    • 也是个对象,这个对象里有事件触发时的相关信息

    • 例如:鼠标点击事件中,事件对象就存了鼠标点在哪个位置等信息

  • 使用场景

    • 可以判断用户按下哪个键,比如按下回车键可以发布新闻

    • 可以判断鼠标点击了哪个元素,从而做相应的操作

    • 一般命名为e、event、ev

      用法:来判断是否按下了回车键

      const input = document.querySelector('input')
      input.addEventListener('keyup', function (e) {
         // console.log(11)
         console.log(e)
         if (e.key === 'Enter') {
             console.log('我按下了回车键')
        }
      })

4.3环境对象

  • 函数的调用方式不同,this 指代的对象也不同

  • 【谁调用, this 就是谁】 是判断 this 指向的粗略规则

  • 直接调用函数,其实相当于是 window.函数,所以 this 指代 window

五.事件流

5.1事件说明

事件流就是事件完整执行的流动路径

当我们触发事件的时候会有两个阶段

1.捕获阶段

2.冒泡阶段

5.2事件捕获和事件冒泡

5.2.1事件捕获:

由外向内执行,代码如下

5.2.2事件冒泡:

由内向外执行

document.addEventListener(
       'click',
       function (e) {
         alert('我是爷爷')
      },
       true//第三个参数,传入true是捕获阶段,默认是不传或者false只有冒泡阶段没有捕获
    )
     document.querySelector('.father').addEventListener(
       'click',
       function (e) {
         alert('我是爸爸')
      },
       true//第三个参数,传入true是捕获阶段,默认是不传或者false只有冒泡阶段没有捕获
    )
     document.querySelector('.son').addEventListener(
       'click',
       function (e) {
         alert('我是儿子')
      },
       true//第三个参数,传入true是捕获阶段,默认是不传或者false只有冒泡阶段没有捕获
     

5.3阻止事件冒泡

document.addEventListener('click', function (e) {
       alert('我是爷爷')
       e.stopPropagation()//阻止冒泡
    })
     document.querySelector('.father').addEventListener('click', function (e) {
       alert('我是爸爸')
       e.stopPropagation()//阻止冒泡
    })
     document.querySelector('.son').addEventListener('click', function (e) {
       alert('我是儿子')
       e.stopPropagation()//阻止冒泡
    })

单词

document.querySelector('css选择器')元素选择器,获取id要加#,类名要加 .获取页面中的元素到js
document.querySelectorAll('css选择器')得到是一个伪数组,有长度,索引号,遍历获取一个盒子中的所有元素
document.getElementById('id')id选择器获取页面中的id元素到js
document.getElementsByTagName('tagName')标签选择器能够获取所有的标签
document.getElementsByClassName('className')类名选择器获取到类名
.innerText修改文本不可以识别html标签,不能输入格式
.innerHTML修改文本可以识别html标签,输入格式
div.className = 'nav box'添加类名新的类名会替换到旧的类名
元素.classList.add('类名')追加一个类追加和删除不回影响以前的类名
元素.classList.remove('类名')删除一个类追加和删除不回影响以前的类名
元素.classList.toggle('类名')切换一个类追加和删除不回影响以前的类名
disabled为true禁用按钮,默认false不禁用button.disabled = true
checked当input为checkbox,true默认选中☑️,false不选中
clearInterval(定时器ID)关闭定时器
事件类型   触发方式 说明
元素对象.addEventListener('事件类型', 要执行的函数)绑定事件,调出函数做出响应
click鼠标点击鼠标事件
mouseenter鼠标经过鼠标事件
mouseleave鼠标离开鼠标事件
focus获得焦点
blur失去焦点同上
Keydown键盘按下触发
Keyup键盘抬起触发同上
input用户输入触发按下得到,输入框事件
change输入框内容改变触发松开得到,输入框事件
------------------------------------------------------------------------------------------------------------------------------
事件对象.stopPropagation()阻止冒泡不会去由内向外去找爸爸,只运行一次
事件对象.preventDefault()阻止默认行为阻止一些默认行为,比如说表单提交,a链接跳转
removeEventListener(事件类型,函数名字)解绑事件,绑定事件取消
scrollLeft和scrollTop被卷去的头部和左侧配合页面滚动来用,可读写
clientWidth 和 clientHeight获得元素宽度和高度不包含border,margin,滚动条 用于获取元素大小,只读
offsetWidth和offsetHeight获得元素宽度和高度包含border、padding,滚动条等,只读
.reset()重置表单表单提交以后重置表单清空内容
render()渲染页面将录入的内容打印到页面上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AngularJS是一个非常流行的JavaScript MVC框架,它提供了非常多的封装好的功能和优秀的性能,使得Web开发变得更加高效和简单。对于想要学习AngualrJS开发者们来说,《AngularJS入门与进阶》是一本非常好的书籍。 这本书籍分为两个部分,其中第一部分主要介绍了AngularJS基础知识,例如如何使用指令、过滤器、服务和依赖注入等等。第二部分则是更深入的内容,包括如何使用AngularJS进行单元测试和端到端测试等高级主题。 在这本书中,作者详细讲解了AngularJS的核心概念和特性,并通过大量的实例来帮助读者深入理解和掌握知识。此外,书中还涉及了诸如如何构建自定义指令、如何使用ngAnimate来创建动画效果等进阶话题。总之,该书内容详尽、言简意赅,既适合AngularJS初学者,也适合有一定经验的开发者进一步学习和提高。 总的来说,《AngularJS入门与进阶》是一本极为优秀的学习资料,是学习AngularJS的一份不可或缺的书籍,对于想要成为一名优秀的Web开发人员的朋友们来说,它是非常值得推荐的一本书籍。 ### 回答2: AngularJS是一个非常流行的JavaScript框架,用于开发大型单页Web应用程序。AngularJS入门与进阶pdf是一本全面介绍AngularJS框架的书籍,它旨在帮助初学者快速入门,同时提供高级概念和技术,以便进一步学习和开发。 该书包含基本概念和术语,如数据绑定、控制器与服务、指令等。它还介绍了AngularJS内部的工作原理,并提供了有关如何测试、优化和部署应用程序的建议。 在进阶部分,书中深入讨论了AngularJS的高级概念,如路由、模块、依赖注入等。此外,它还涵盖了与第三方API和库的集成,以及如何构建可重用的组件库的方法。 该书提供了大量示例代码和解释,使读者可以更轻松地理解和应用AngularJS概念。此外,它还具有逐步引导,并提供了实用技巧和技巧,以帮助开发人员提高他们的技能和编写更好的代码。 总之,AngularJS入门与进阶pdf是一本非常有用的书籍,它为初学者和有经验的开发人员提供了必要的知识和技能,以利用AngularJS框架构建高质量的Web应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值