前端工程师学习路线 —— JavaScript 1

2020.2.20

  1. 语法 和 基本结构
  2. 学习DOM操作
  3. 学习使用API / Ajax
  4. ES6+ 和 模块化JS
  5. 理解 Hoisting(提升) Event Bubbling(事件冒泡) Scope(作用域) Prototype(原型) Shadow DOM() Strict() 的含义

一、语法和基本结构

字符串的常用方法 :substring(start,end)、slice(start,end)、str.split(separator,limit)等;
数组与字符串之间的相互转换:join(’,’)、split(’,’);

面向对象编程(OOP)基本思想是,使用对象来建模要在程序中表示的现实世界中的事物。


二、学习DOM操作

https://www.cnblogs.com/fengqiang626/p/11522616.html在这里插入图片描述


三、学习API/Ajax

Ajax(Asynchronous Javascript And XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
Ajax工作原理:
在这里插入图片描述
常用JQuery库中的ajax方法进行异步交互,即 $.ajax();
参数主要包括:url、contentType、data(字符串/对象)、type(GET/POST)、success(函数)

Ajax 与 Promise

Promise实际是充当ajax获取后台数据后执行回调的异步执行顺序的一个媒介;
客观来说,就是避免ajax回调地狱(反复嵌套回调),不然代码不够直观。

/*
  定义一个使用promise的ajax请求
*/
const ajaxPromise=  param => {
  return new Promise((resovle, reject) => {
    $.ajax({
      "type":param.type || "get",
      "async":param.async || true,
      "url":param.url,
      "data":param.data || "",
      "success": res => {
        resovle(res);
      },
      "error": err => {
        reject(err);
      }
    })
  })
}
 
/*
   第一个请求
*/
let step1 = () => {
    ajaxPromise({
      "url":"",
    }).then(res => {
        console.log("第一个请求正确返回==>"+res); 
        step2(res); 
    }).catch(err => {
        console.log("第一个请求失败"); 
    })
}
 
/*
   第二个请求
*/
let step2 = (res) => {
    ajaxPromise({
      "type":"get",
      "url":"",
      "data":{"name":res}
    }).then(res => {
        console.log("第二个请求正确返回==>"+res); 
    }).catch(err => {
        console.log("第二个请求失败==>"+err); 
    })
}
 
step1();

应用程序接口(API,Application Programming Interface)
是基于编程语言构建的结构,使开发人员更容易地创建复杂的功能;
它们抽象了复杂的代码,并提供一些简单的接口规则直接使用。

API与JS库的区别
  • 客户端API — 内置于浏览器的结构程序,位于JavaScript语言顶部。
  • 第三方API — 植根于第三方服务器,使您可以在自己的Web页面中使用那些平台的某些功能。
  • JavaScript库 — 通常是包含具有特定功能的一个或多个JavaScript文件,把这些文件关联到您的Web页以快速或授权编写常见的功能,例如jQuery。
API如何工作?
  • 基于对象
  • 有可识别的入口点
  • 使用事件来处理状态的变化
  • 在适当的地方有额外的安全机制
常用浏览器API
  • 操作文档的API – DOM(文档对象模型)API
  • 从服务器获取数据的API – XMLHttpRequest
  • 用于绘制和操作图形的API – Canvas/WebGL
  • 音视频API – HTMLMediaElement
  • 设备API
  • 客户端存储API

文档对象模型API
document是window的一个对象属性;

客户端存储API
传统方法:cookies;
现代浏览器有比使用 cookies 更简单、更有效的存储客户端数据的 API。

  • Web Storage API 提供了一种非常简单的语法,用于存储和检索较小的、由名称和相应值组成的数据项。当您只需要存储一些简单的数据时,比如用户的名字,用户是否登录,屏幕背景使用了什么颜色等等,这是非常有用的。
  • IndexedDB API 为浏览器提供了一个完整的数据库系统来存储复杂的数据。这可以用于存储从完整的用户记录到甚至是复杂的数据类型,如音频或视频文件。
  • Cache API 存储离线网站文件这样的事情非常有用。

四、ES6+和模块化JS

ES6+ 可以购买一本书来学习;

JS Module 包含几个概念:

  • 什么是模块化?
  • AMD
  • CMD
  • ES6中的模块化
    需要继续学习
    https://www.cnblogs.com/Yellow-ice/p/10639029.html

五、理解 Hoisting(提升) Event Bubbling(事件冒泡) Scope(作用域) Prototype(原型) Shadow DOM() Strict() 的含义

Prototype是JS对象彼此继承特征的一种机制;
在一个对象的原型对象也可能有一个原型对象,它继承了方法和属性,依此类推,这通常被称为原型链。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值