js 视频课程总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

js 视频课程总结

特点

解释型语言

类 C 的语法结构

动态语言

基于原型的面向对象

ECMAScript

基本语法

  • 编写位置

    • 网页中 <script> 标签中
  • 区分大小写

  • 注释

    • 单行://内容
    • 多行:/*内容 */
  • 标识符

    • 第一个字符:字母,_,$
    • 其他字符:字母,_,$,数字
    • 驼峰命名法
  • 关键字

    • break,do,instanceof,typeof,case,else,new,var,catch,finally,return,void,continue,for,switch,while,default,if,throw,delete,in,try,function,this,with,debugger,false,true,null
  • 保留字

    • class,enum,extends,super,const,export,import,implements,let,private,public,yield,interface,package,protected,static
  • 变量

    • 声明:var a
    • 赋值:a=123
  • 数据类型

    • 基本数据类型

      • 字符串:String

        • 需要使用 ’ 或 " 括起来

        • 转义字符

        • 其他类型转字符串

          • toString()
          • String()
          • 拼串
      • 数值型:Number

        • 范围

          • ±1.7976931348623157e+308
          • 超出返回 ± Infinity
        • NaN(not a number)

        • 数值转换

          • Number()
          • String.parseInt()
          • String.parseFloat()
      • 布尔型:Boolean

        • 类型转换:Boolean()
        • 转换规则
      • null型:Null

      • undefined型:Undefined

    • Object

  • 运算符

    • 算数

      • +,-,*,/,%
      • ++,–,+,-
    • 逻辑

      • !,&&,||
    • 赋值

      • =
      • +=,*=,-=,/=,%=
    • 关系

      • <,>,<=,>=
    • 等于

      • 相等

        • ==
        • !=
      • 全等

        • ===
        • !==
    • 条件

      • ?:
    • 逗号

    • 优先级

  • 语句

    • 代码块

    • 条件语句

      • if…else if…else
      • switch…case
    • 循环语句

      • while
      • do…while
      • for
      • break, continue
      • label

Object 对象

  • 创建

    • new Object()
    • {}
  • 对象属性

    • 访问

      • 对象.属性名
      • 对象[‘属性名’]
    • 修改

      • 对象.属性名 = 属性值
    • 删除

      • delete 对象.属性名
    • 检查

      • “属性名” in 对象
      • hasOwnProperty(“属性名”)
    • 枚举

      • for…in
    • constructor

  • 数组

    • 创建

      • new Array()
      • []
    • 添加元素

      • 数组对象[索引] = 值;
      • var arr = [元素1,元素2…元素N];
    • 获取长度

      • 数组.length
    • 修改数组长度

      • 数组.length = 新长度
    • 方法

      • push(), pop()
      • unshift(), shift()
      • slice(), splice()
      • reverse(), concat(), join(), sort()
    • 遍历

      • for
      • 数组.forEach()
  • 函数

    • 声明1:var a = function () {}

    • 声明2:function a () {}

    • 调用:a()

    • 参数传递:按值传递

    • 属性

      • arguments

        • callee:当前执行的函数对象
      • this

        • 以函数的形式调用时:window
        • 以方法的形式调用时:调用方法的对象
        • 以构造函数的形式调用时:新建的那个对象
        • 使用call和apply调用时:指定的那个对象
        • 在全局作用域中:window
    • 变量的声明提前

    • 函数的声明提前

    • 函数声明提升

    • 作为参数

    • 函数对象的方法

      • call(),apply()

      • 使用

        • 函数对象.call(this对象,参数数组)
        • 函数对象.apply(this对象,参数1,…)
    • 闭包

  • 基本包装类型

    • String() Boolean() Number()
  • 原型继承

    • 原型对象:prototype

    • 设置原型

      • 获取

        • 构造函数.prototype
        • Object.getPrototype(对象)
        • 对象.__proto__
        • 对象.constructor.prototype
    • 原型链

BOM

浏览器对象模型

window 对象

  • 浏览器中的全局对象

  • 窗口大小

    • 网页窗口大小

      • innerWidth
      • innerHeight
    • 浏览器本身的尺寸

      • outerWidth
      • outerHeight
  • 打开窗口

    • open()
  • 超时调用

    • setTimeout()
    • clearTimeout()
  • 间歇调用

    • setInterval()
    • clearInterval()
  • 系统对话框

    • alert()
    • confirm()
    • prompt()
  • location 对象

    • 提供了与当前窗口中加载的文档有关的信息,和一些导航功能
    • href
    • assign()
    • replace()
    • reload()
  • navigator 对象

    • 包含浏览器的版本,所支持的插件,所使用的语言等与浏览器相关的信息
    • userAgent
  • screen 对象

    • 用来表明客户端的能力,包括浏览器窗口外部的显示器的信息,如像素宽度和高度
  • history 对象

    • 保存用户上网的历史记录,从窗口被打开那一刻算起
    • go()
    • back()
    • forward()
  • document 对象

DOM

文档对象模型

节点 Node

  • 文档节点

    • document 对象
  • 元素节点

    • 获取

      • document.getElementById()
      • document.getElementsByTagName()
      • document.getElementsByName()
    • 查询

      • 父节点

        • parentNode
      • 兄弟节点

        • previousSibling
        • nextSibling
      • 子节点

        • getElementsByTagName()
        • childNodes
        • firstChild
        • lastChild
      • CSS选择器查询

        • document.querySelector()
        • document.querySelectorAll()
    • 属性

      • 获取

        • 元素.属性名
      • 设置

        • 元素.属性名 = 属性值
      • nodeValue

      • innerHTML

    • 修改

      • 创建

        • document.creatElement(标签名)
        • document.createTextNode()
      • 删除

        • 父节点.removeChild(子节点)
      • 替换

        • 父节点.replaceChild(新节点,旧节点)
      • 插入

        • 父节点.appendChild(子节点)
        • 父节点.insertBefore(新节点,旧节点)
  • 属性节点

    • 元素节点的一部分
    • 元素节点.getAttributeNode(“属性名”)
  • 文本节点

    • 元素节点的子节点
    • 元素节点.firstChild

对 CSS 的操作

  • 内联样式

    • 读取

      • 元素.style.样式名
      • 注意:如果样式名中带有-,则需要将样式名修改为驼峰命名法,将-去掉,然后-后的字母改大写
    • 修改

      • 元素.style.样式名 = 样式值
  • 当前样式

    • getComputedStyle():当前元素生效样式(只读)
  • 其他

事件

  • 事件处理程序

    • 绑定

      • 通过 HTML 元素指定事件属性

      • 通过 DOM 对象指定的属性

      • 设置事件监视器

        • 元素对象.addEventListener()
    • 事件处理中的 this

  • 事件对象

  • 事件的触发

  • 事件的传播

    • 捕获阶段
    • 目标阶段
    • 事件冒泡阶段
  • 取消事件传播

    • event.stopPropagation()
    • event.stopImmediatePropagation()
    • event.cancelBubble = true
    • event.preventDefault()

HTML

表格

<table> 用来创建一个表格

<tr> 表示表格中的一行

<th> 表示表头中的单元格

<td> 表示表格中的单元格

colspan 横向的合并单元格

rowspan 纵向的合并单元格

长表格

  • <thead> 表格的头部
  • <tbody> 表格的主体
  • <tfoot> 表格的底部

表单

<form>

  • action

<input />

  • type=“text” 文本框
  • type=“password” 密码框
  • type=“radio” 单选按钮
  • type=“checkbox” 多选框
  • type=“submit” 提交按钮
  • type=“reset” 重置按钮
  • type=“button” 普通按钮

<select>

<button>

JavaScript

编写的位置

  • 标签的指定属性中
  • script标签中
  • 外部的js文件中

输出语句

  • alert(“要输出的内容”);
  • document.write(“要输出的内容”);
  • console.log(“要输出的内容”);

CSS

文档流

所有元素默认都在文档流中

网页的最底层

元素在文档流中的特点

  • 块元素

    • 默认宽度是父元素的全部
    • 默认高度被内容(子元素)撑开
    • 在页面中自上而下垂直排列
  • 内联元素

    • 默认宽度和高度都被内容撑开
    • 在页面中自左向右排列,若一行容不下则换到下一行继续从左到右排列

浮动

float

  • none,left,right

特点

  • 元素设置浮动后,会完全脱离文档流,并向页面的左上或右上浮动,直到遇到父元素的边框
  • 如果浮动元素上边是一个没有浮动的块元素,元素不会超过该块元素。
  • 浮动元素的浮动位置不能超过他上边浮动的兄弟元素,最多一边齐
  • 浮动元素不会覆盖文字,文字会围绕在浮动元素的周围

脱离文档流以后元素特点

  • 块元素不独占一行
  • 块元素的宽度和高度都被内容撑开
  • 元素不在文档流占用位置
  • 内联元素会变成块元素

高度塌陷

  • 在文档流中元素的高度默认被子元素撑开,当子元素浮动时,子元素会脱离文档流,此时将不能撑起父元素的高度,会导致父元素的高度塌陷。父元素高度塌陷会导致其他元素的位置上移,导致页面的布局混乱

  • 通过开启元素的 BFC 来处理高度塌陷的问题。

    • Block Formatting Context

    • 开启后元素具的特性

      • 父元素的垂直外边距不会和子元素重叠
      • 开启BFC的元素不会被浮动元素覆盖
      • 父元素可以包含浮动的子元素
    • 开启BFC的方式

      • 设置元素浮动
      • 设置元素绝对定位
      • 设置元素为 inline-block
      • 将元素的 overflow 设置为一个非默认值
    • 一般采取副作用比较小的方式

      • overflow:hidden;

定位

position

  • static

  • relative

    • 相对于元素自身在文档流中的位置进行定位
    • 相对定位的元素不会脱离文档流,定位元素的性质不会改变,块还是块,内联还是内联
    • 如果不设置偏移量,元素不会发生任何的变化
    • 会提升元素的层级
  • absolute

    • 相对于离它最近的开启了定位的祖先元素进行定位,如果祖先元素都没有开启定位则相对于浏览器窗口进行定位。
    • 绝对定位会使元素完全脱离文档流,会改变元素的性质,内联变成块元素,块元素的宽度被内容撑开
    • 绝对定位的元素如果不设置偏移量,元素的位置不会发生变化
    • 会提升元素的层级
  • fixed

    • 固定定位也是一种绝对定位,它的大部分特点都和绝对定位是相同的

    • 不同的是

      • 固定定位永远相对于浏览器窗口进行定位
      • 固定定位会固定在浏览器的指定的位置,不会随页面一起滚动

偏移量

  • top,bottom,left,right

层级

z-index

它需要一个正整数作为参数,值越大层级越高,层级越高越优先显示,如果层级一样,则后边的会盖住前边的,父元素永远都不会盖住子元素。

文档流 < 浮动 < 定位

透明

opacity

需要一个0-1之间的值

0 表示完全透明

1 表示完全不透明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值