0%

概述

Web 程序最初的目的就是将信息(数据)放到公共的服务器,让所有网络用户都可以通过浏览器访问

  • 在此之前, 我们可以通过以下几种方式让 浏览器发出对服务端的请求,获得服务端的数据
    • 地址栏输入地址,回车,刷新
    • 特定元素的 href 或 src 属性
    • 表单提交
  • XMLHttpRequest 是 js 原生提供的 用来与服务器交互的核心对象类型, 使用 xhr 对象可以在不影响用户操作的情况下更新页面局部内容
  • AJAX(Asynchronous JavaScript and XML),最早出现在 2005 年的 Google Suggest,是在浏览器端进行网络编程(发送请求、接收响应)的技术方案,它使我们 可以通过 JavaScript 直接获取服务端最新的内容而不必重新加载页面。让 Web 更能接近桌面应用的用户体验
  • 说白了,A JAX 就是浏览器提供的一套 API,可以通过 JavaScript 调用,从而实现通过代码控制请求与响应。实现网络编程
  • 涉及 AJAX 请求的页面 ‘’不能 ‘’以 文件协议方式 访问
    • 因为 AJAX 默认不能发送不同源请求
    • 但是, 如果服务端设置了允许跨域请求 (Access-Control-Allow-Origin), 则可以以文件协议方式访问
      阅读全文 »

深度克隆 (深拷贝)

拷贝数据的方法

1 —— 直接赋值 =
2 —— Object.assign()
3 —— Array.prototype.concat()
4 —— Array.prototype.slice()
5 —— JSON.parse(JSON.stringify()), 拷贝的数据里 不能有函数

  • 因为 JSON.stringify / JSON.parse 没法处理函数
阅读全文 »

基础深入

数据类型

JS 中的数据类型分两大类

BOM

浏览器对象模型

  • BOM 使我们可以 通过 JS 操作浏览器
  • 在 BOM 中为我们提供了一组对象, 用来完成对浏览器的操作
    • 这些对象在浏览器中 都是作为 window 对象的属性 保存的
    • 可以通过 window 点出来, 也可以直接使用

参考手册

阅读全文 »

获取元素大小

元素属性获取

属性/API 返回值 说明
clientWidth css 宽 + padding 只读,不带单位
offsetWidth css 宽 + padding + border 只读,不带单位
scrollWidth 如果其子元素大小没有超出,返回值 —— 自身 clientWidth ;如果其子元素大小超出,返回值 —— 其子元素的 offsetWidth 只读,不带单位
getBoundingClientRect() 返回包含元素 width / height / left / top / right / bottom 的对象;包含 padding, 也包含 border; 只读,不带单位
阅读全文 »

DOM介绍

参考手册

Document Object Model 文档对象模型

  • DOM 干嘛的?
    • 就是 操作网页
    • JS 通过 DOM 来对 HTML 文档进行操作
  • 文档
    • 表示的就是整个 HTML 网页文档
  • 对象
    • 将网页中的每一个部分都转换为一个对象
  • 模型
    • 使用模型来表示对象之间的关系, 方便我们获取对象
阅读全文 »

JavaScript 教程

MDN JS 教程
阮一峰 JS教程

什么是语言?

人和计算机交流的工具, 我们通过语言来控制、操作计算机

JS 是什么

诞生于 1995 年, 前身是 LiveScript, 前期主要用于 网页验证

  • 一种运行在客户端的脚本语言(不需编译, 直接运行)
  • 作用
    • 解决浏览器和用户之间的交互问题
阅读全文 »