《Web前端开发之JavaScript精英课堂》(一)

1.1 JavaScript浏览器发展史

1.1.1 web发展史

Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器,于1993年问世。
Netscape Navigator(网景)和Microsoft(微软)基于Mosaic开发Mozilla Firefox和Internet Explorer。

1.1.2 js历史

作者:Brendan Eich
JavaScript作为Netscape Navigator浏览器的一部分首次出现在1996年。最初设计目标是改善网页的用户体验。
起初命名为LiveScript,后因与Sun公司合作和市场宣传,更名为JavaScript,最终被Oracle收购。

1.1.3 浏览器组成

  1. shell(外壳):用户可见的操作部分。
  2. 内核:处理代码,显示内容。
    • 渲染引擎(语法规则和渲染)
    • js引擎
    • 其他模块

主流浏览器(占3%市场份额,有自己开发内核):
IE - trident
Chrome - webkit / blink
firefox - Gecko
Opera - presto
Safari - webkit

1.1.4 js历史

  • 2001年发布ie6,首先实现对js引擎的优化和分离。
  • 2008年Google发布最新浏览器Chrome,采用webkit内核,v8引擎,把js代码直接转化为机械码来执行,进而以速度快而闻名。
  • 后Firefox也推出了具备强大功能的js引擎。
  • Firefox3.5 TraceMonkey(对频繁执行的代码做了路径优化)
  • Firefox4.0 leagerMonkey

1.1.5 js特点

了解翻译方式:

编译性语言:通篇翻译,系统执行翻译后文件。(c c++)
优点:快
不足:移植性不好(不跨平台),c 和 c++ 不能跨平台

解释性语言:翻译一行,执行一行。(php)
优点:跨平台
不足:稍微慢

了解单线程和同步异步:

一个执行体同一时间只能执行一个任务。

  • JavaScript是解释性语言 - (不需要编译成文件)跨平台
  • JavaScript引擎是单线程
  • ECMA标准 - JavaScript兼容与ECMA标准,因此也成为ECMAScript。
    (JavaScript = ECMAScript + DOM + BOM)

1.1.6 js执行队列

轮转时间片:将任务分片,转换成时间片,争抢时间片队列,放入js主线程。

1.2 js介绍,入门,js引入,变量,值类型,运算符

1.2.1 js引入

  • 页面内嵌<script></script>标签
  • 外部引入<script src="location"></script>

同时使用,只外部引入生效。
为符合web标准,结构(html)、样式(css)、行为(js)相分离,通常采用外部引入。

解释url、href、src的区别:
URL:统一资源定位符(Uniform Resource Locator ),互联网标准资源的地址,包括协议+服务器名称+路径+文件名。又分为绝对路径和相对路径。
href:网络资源的位置引用(Hypertext Reference),建立当前元素或文档与锚点或网络资源的链接引用关系,不会停止其他文件和页面的加载。
src:当前资源(Source)引入到当前文档元素定义的位置,暂停页面的加载和处理。

1.2.2 js基本语法

  • 变量(variable):存放数据,以便以后使用。
    • 变量声明
      • 声明、赋值分解
      • 单一var(多个变量同时声明)
      var a,
          b,
          c = 10;
      
    • 命名规则
      1. 变量名必须以英文字母、_、$开头
      2. 变量名可以包括英文字母、_、$、数字
      3. 不可以用系统的关键字、保留字作为变量名
  1. 变量中只能存放单一数据,多次赋值会覆盖
  2. 变量名称遵守命名规则,自觉语义化
  3. 运算大于赋值的优先级
  • 值类型 - 数据类型

    • 不可改变的原始值(栈数据 - stack - first in last out)
      • Number、String、Boolean、undefined、null
    • 引用值(堆数据 - heap)
      • array、object、function ... date regexp
  • js语句基本规则

    • 语句后面用分号结束";"
    • js语法错误会引发后续代码终止,但不会影响其他代码块(意为script包裹或引入的代码块,一块一块的执行,并非加载所有后一起执行)
    • 书写格式要规范,"= + / -"两边都要有空格

错误分为两种:

  1. 低级错误(语法解析错误) - 通篇粗略扫描,一句也不会执行
  2. 逻辑错误(标准错误,情有可原) - 执行到逻辑错误处停止

1.2.3 js运算符

  • 运算操作符
    • "+"
      1. 数学运算、字符串连接
      2. 任何数据类型加字符串都等于字符串
    • "-" "*" "/" "%" "=" "()"
    • Infinity、-Infinity、NaN
    • 优先级"="最弱, "()"优先级最高
    • "++" "--" "+=" "-=" "/=" "*=" "%="
  1. 赋值的顺序,自右向左;计算顺序,自左向右
  2. 先++ 与 后++ 区别,先执行操作后返回,或先返回后执行操作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容