回顾

由于 JavaScript 高级还是针对 JavaScript 语言本身的一个进阶学习,所以在开始之前我们先对以前所学过的 JavaScript 相关知识点做一个快速复习总结。

重新介绍 JavaScript

JavaScript 是什么

  • 解析执行:轻量级解释型的

  • 语言特点:动态,头等函数 (First-class Function)

    • 又称函数是 JavaScript 中的一等公民

  • 执行环境:在宿主环境(host environment)下运行,浏览器是最常见的 JavaScript 宿主环境

    • 但是在很多非浏览器环境中也使用 JavaScript ,例如 node.js

    MDN-JavaScript

JavaScript 的组成

  • ECMAScript - 语法规范

    • 变量、数据类型、类型转换、操作符

    • 流程控制语句:判断、循环语句

    • 数组、函数、作用域、预解析

    • 对象、属性、方法、简单类型和复杂类型的区别

    • 内置对象:Math、Date、Array,基本包装类型String、Number、Boolean

  • Web APIs

    • BOM

      • onload页面加载事件,window顶级对象

      • 定时器

      • location、history

    • DOM

      • 获取页面元素,注册事件

      • 属性操作,样式操作

      • 节点属性,节点层级

      • 动态创建元素

      • 事件:注册事件的方式、事件的三个阶段、事件对象

JavaScript 可以做什么

阿特伍德定律:

Any application that can be written in JavaScript, will eventually be written in JavaScript.

任何可以用JavaScript来写的应用,最终都将用JavaScript来写

阿特伍德 stackoverflow的创始人之一

浏览器是如何工作的

参考链接

 User Interface  用户界面,我们所看到的浏览器
 Browser engine 浏览器引擎,用来查询和操作渲染引擎
 *Rendering engine 用来显示请求的内容,负责解析HTML、CSS,并把解析的内容显示出来
 Networking   网络,负责发送网络请求
 *JavaScript Interpreter(解析者)   JavaScript解析器,负责执行JavaScript的代码
 UI Backend   UI后端,用来绘制类似组合框和弹出窗口
 Data Persistence(持久化) 数据持久化,数据存储 cookie、HTML5中的sessionStorage

JavaScript 执行过程

JavaScript 运行分为两个阶段:

  • 预解析

    • 全局预解析(所有变量和函数声明都会提前;同名的函数和变量函数的优先级高)

    • 函数内部预解析(所有的变量、函数和形参都会参与预解析)

      • 函数

      • 形参

      • 普通变量

  • 执行

先预解析全局作用域,然后执行全局作用域中的代码, 在执行全局代码的过程中遇到函数调用就会先进行函数预解析,然后再执行函数内代码。

JS基础知识回顾的更多相关文章

  1. scrapy实战1,基础知识回顾和虚拟环境准备

        视频地址 https://coding.imooc.com/learn/list/92.html   一. 基础知识回顾     1. 正则表达式 1)贪婪匹配,非贪婪匹配 .*? 非贪婪 . ...

  2. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  3. HTML+CSS+JS基础知识

    HTML+CSS+JS基础知识 目录 对HTML+CSS+JS的理解 基础知识 对HTML+CSS+JS的理解 基础知识 插入样式表的三种方式 外部样式表:<link rel="sty ...

  4. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  5. C#基础知识回顾-- 反射(3)

    C#基础知识回顾-- 反射(3)   获取Type对象的构造函数: 前一篇因为篇幅问题因为篇幅太短被移除首页,反射这一块还有一篇“怎样在程序集中使用反射”, 其他没有什么可以写的了,前两篇主要是铺垫, ...

  6. C#基础知识回顾-- 反射(1)

    C#基础知识回顾-- 反射(1)   反射(reflection)是一种允许用户获得类型信息的C#特性.术语“反射”源自于它的工作方式: Type对象映射它所代表的底层对象.对Type对象进行查询可以 ...

  7. Node.js基础知识

    Node.js入门   Node.js     Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...

  8. C#基础知识回顾--线程传参

    C#基础知识回顾--线程传参 在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数,ThreadStart委托接收的函数不能有参数, 也不能有返回值.如果希望传递参数给执行函数, ...

  9. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

随机推荐

  1. 操作bin目录下的文件

    string dir = AppDomain.CurrentDomain.BaseDirectory + "Video"; if (!System.IO.Directory.Exi ...

  2. 【转】移动前端开发之viewport的深入理解

    原文链接:https://blog.csdn.net/u012402190/article/details/70172371 笔记 (20180919,目前暂且只看一部分)

  3. BIO、NIO和AIO

    BIO(Blocking I/O)同步阻塞I/O 这是最基本与简单的I/O操作方式,其根本特性是做完一件事再去做另一件事,一件事一定要等前一件事做完,这很符合程序员传统的顺序来开发思想,因此BIO模型 ...

  4. FastStone Capture 文件名设置小记录

    我使用的FastStone Capture 的文件名设置 文件名称模板 fs$Y$M$D#####@ 起始于: [1] 重置 [ 选中] 新的一天自动重置为1

  5. leetcode -有效的字母异位词 python&C++

    C++解题代码: class Solutiion { public: bool isAnagram(string s, string t) { ](); int n = s.length(); int ...

  6. leetcood学习笔记-67-二进制求和

    题目描述: 第一次提交: class Solution: def addBinary(self, a: str, b: str) -> str: list_a,list_b=[],[] for ...

  7. Android Studio Download

    { https://developer.android.google.cn/studio }

  8. 2019hdu第二场

    10:签到求n!取模 #include <iostream> #include <iterator> #include <algorithm> typedef lo ...

  9. DELPHI 异常处理2

    今天在写用ADO从EXCEL导入数据的程序时,出现个错误,弄了很久都弄不好,最后还是用异常处理解决掉了. 数据中日期在导入之前要转换成日期格式,虽然说一个strtodate就可以转好了,但是数据中的日 ...

  10. NX二次开发-UFUN返回当前图纸页的Tag函数UF_DRAW_ask_current_drawing

    除了UF_DRAW_ask_current_drawing这个函数外,用UF_DRAW_ask_drawings也可以获得tag.UF_DRAW_ask_current_drawing只能获得当前这一 ...