1 - javascript 简介 及其 概述

 2018年3月8日23:06:06 

开课前 的 金融知识

{

1.给生活加杠杆

2.最低资金成本

ps :

100万 --- 国债 --- 3%

转抵押

70万 -- 贷款 -- 银行  --- 1.5%

--贷给-- 小额贷款公司 ---- 0.5%

循环......

}

javascript 简介 及其 概述

{

(1) 浏览器 的 历史

{

1.第一个浏览器 : www 浏览器 -- 刚出来就挂了

  2.实际意义上 的 第一个 浏览器 , 第一个 图形化 浏览器:{

           --- Masaic 诞生于 1993 年

            创造者 : 马克.安德森

            合作者 : 伊利诺伊 大学

            两者 因为 利益纠纷 最终 以 伊利诺伊大学 的 版权 胜利而结尾

  }

3. Mozliia Firefox   2003 年 改名 火狐 {

            Netscape Navigator Corporation  网景公司

            马克.安德森 组建的开发团队 研发

            网景公司 破产后 开放了 源代码

  }

4. IE {

              伊利诺伊大学 将 Masaic 的 版权 卖给 了 Spy Glass 公司

              Spy Glass 后被 微软 收购

              微软 将 Masaic 改名为 IE

  }

}

(2) javascript 的 历史

{

        诞生于 1996 年 ,

        最初 javascript 是作为 Netscape Navigator 浏览器 的 一部分 而存在的。

        最初 javascript 的 名字 是 livescript ,

        后因为 与 sun 公司合作 ,因为 市场宣传 需要 改名为 javascript

        后来 sun 公司 被 Oracle 公司 收购 ,

        javascript 的 版权 归 Oracle 公司 所有.

        Oracle 甲骨文公司

}

(3) 浏览器 的 组成

{

1. shell 部分{

            翻译: 贝壳

            作用: 用户 能够操作 的 部分

  }

2. 内核 部分{

            作用: 用户 不能操作 的 部分

            $ 渲染( 绘制 )引擎 {

                                                作用: -语法规则 ( HTML CSS... 语法 的 识别)

                                               -渲染

                                              逐条绘制

                                              16毫秒更新一次浏览器的状态

            }


    $ js 引擎


  $ 其他 引擎


  }

}

(4) js 引擎 的 历史

{

2001 年 ,

微软 发布了 XP 操作系统  和 IE6 ;

IE6 首次实现 对 js 引擎 的优化 和 分离。{

                        诞生之前 js 依靠的是 渲染引擎 , 只能写 20 行 代码;

                        诞生之后 js 代码 能写 万行以上。

}

2008 年 谷歌 联合 苹果 研发了 Chrome ;

Chorme 的 V8 引擎 能够 直接将 js 代码 转换成 机械码 来执行。{

                        Chorme 的 V8引擎 是用 C++ 语言 编写的;

                        javascript 语言 是用 C语言 编写的。

}  

Firefox 火狐 也推出了 具有 强大功能 的 js 引擎;{

        Firefox 3.5 TraceMonkey{

                        对 频繁执行 的 代码 做了 优化路径。

        }

        Firefox 4.0 legerMonkey

}

}

(5) javascript 的 专业知识

{

    [1]. 特点/特色/逼格 ——> 解释性 语言{

        1. 编译性 语言 / 编译性 翻译 语言{

               举例: { C、C++ ...  }

               功能: {

                           先 通篇翻译

                           生成 一个 翻译完 的 文件

                           系统会 执行 这个文件

               }


               优点: {快}

               不足: {移植性不好 , 不跨平台}

  }

2. java 语言{

          通过 指令 javac 通篇翻译(编译) ;

           生成 一个 .class 文件;

          jvm 虚拟机 解释执行 这个文件.

  }

3. 解释性 语言 / 解释性 翻译 语言{

         举例: {javascript Python}


        功能: {逐行翻译 , 翻译一行 执行一行}


        优点: {跨平台 , 因为都是 0101 代码}


        不足: {比 编译性语言 运行速度 稍微慢}    

    }

}


    [2] 单线程 与 多线程

    {

            单线程{

                          1.现实中 的 同步:{

                                                             一个人 在同一时间里 只能 做一件事;

                                                           必须把 这件事 放下来 才能做 另一件事.

                         }


                     -1.计算机中 的 同步: {

                                                         = 现实中 的 异步 (翻译的原因)

                        }

        }

        多线程:{

                        2.现实中 的 异步:  {

                                                             一个人 在同一时间里 能做 很多事

                        }

                        -2.计算机中 的 异步:{

                                                            = 现实中 的 同步 (翻译的原因)

                          }    

         }

 }

[ 准确的说 js 引擎 是 单线程的 ]

    [3] ECMA 标准 {

                                js 兼容 ECMA 标准

                                因此 javascript 也称为 ECMAScript / ES / es

        }


}


(6) javascript 的 组成

{

        0.三大部分:{

                               ecmascript

                               DOM

                                BOM  

          }


    1.原生部分:{

                          ecmascript : {功能: 加减乘除 、 定义变量 、数组......}

      }


    2.浏览器提供的: {

                               DOM : {功能 : 操作文档 HTML CSS.....}

                               BOM : {功能 : 操作浏览器}

      }

}

(7) javascript 的 执行队列

{

【 js 执行主线程 】

           ↑

            |

            |

【 task1 , 1ms 】 ←---  [task2 , 1ms]  ←---  【 task1 , 1ms 】 ←---  [ task2 , 1ms ]

轮转时间片: 类似吃饭

ps: {

          任务 1 、任务 2{

                                       把 任务 1 以 毫秒 、 微秒 的 速度 切成 无数片;

                                        把 任务 2 以 毫秒 、 微秒 的 速度 切成 无数片;

                                       将 这些 片段 随机排列 , 谁在前 谁在后 是 不确定的,

                                       在前 的先执行 (争抢时间片);

                                       然后,

                                       一个片段 一个片段 的 往 js 引擎里 送,

                                      js 引擎 以 一个时间片 为单位 去执行

         }

}

    补充 :{

                    因为 单线程 是以 毫秒/微秒 级 执行的,

                    (模拟多线程)

                    速度足够快 所以会 产生 视觉上 的 错觉,

                    像是 同时 执行了 两个时间片,

                    其实 看到 的 只是 "残影" , 只执行了 一个时间片。

    }

}

你可能感兴趣的:(1 - javascript 简介 及其 概述)