• 认识JS基础与浏览器引擎


    认识JavaScript

    维基百科对JavaScript的定义:
    JavaScript(通常缩写为JS)是一种高级的,解释性的编程语言
    JavaScript是一门基于原型、头等函数的语言,是一门多范式的语言,它支持面向对象程序设计,指令式函数,以及函数式编程
    是一种客户端语言,在浏览器执行的。是一种脚本语言,直接就能解释执行的叫脚本代码。像dos命令还有SQL也是。

    JavaScript的起源

    1994年,网景公司(Netscape) 发布了Navigator浏览器0.9版

    这是历史上第一个比较成熟的网络浏览器,轰动一时

    但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力

    网景公司急需一种网页脚本语言,使得浏览器可以与网页互动

    网景公司当时想要选择一种语言来嵌入到浏览器中:

    采用现有的语言,比如Perl、Python、Tcl、Scheme等等,允许它们直接嵌入网页;

    1995年网景公司招募了程序员Brendan Eich,希望将Scheme 语言作为网页脚本语言的可能性

    就在这时,发生来另外一件大事:1995年Sun公司将Oak语言改名为Java,正式向市场推出;

    Java推出之后立马在市场上引起了轰动,Java当初有一个口号:‘write once run anywhere’;
    网景公司心动了,决定与Sun公司结成联盟,希望将Java嵌入到网页中来运行;
    Brendan Eich本人非常热衷于Scheme,但是管理层那个时候有点倾向于Java,希望可以简化Java来适应网页脚本的需求

    但是Brendan Eich对此并不感兴趣,他用10天时间设计出来了JavaScript;

    最初这门语言的名字是Mocha(摩卡);

    在Navigator2.0 beta版本更名为LiveScript

    在Navigator2.0 beta 3版本正式重命名为JavaScript,当时是为了给这门语言搭上Java这个热词;

    当然10天设计出来的语言足够说明Brendan Eich是天才,但是这门语言当时更像是一个多种语言的大杂烩;
    借鉴C语言的基本语法;
    借鉴Java语言的数据类型和内存管理;
    借鉴Scheme语言,将函数提升到了"第一等公民"(first class) 的地位;
    借鉴Self语言,使用基于原型(prototype)的继承机制。

    微软公司于1995年首次推出Internet Explorer,从而引发了与Netscape的浏览器大战。
    微软对Netscape Navigator解释器进行了逆向工程,创建了JScript,以与处于市场领导地位的
    这个时候对于开发者来说是一场噩耗,因为需要针对不同的浏览器进行不同的适配

    1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准
    1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262;
    ECMA-262是一份标准,定义了ECMAScript
    JavaScript成为了ECMAScript最著名的实现之一;
    除此之外,ActionScript和JScript也都是ECMAScript规范的实现语言;

    所以说ECMAScript是一种规范,而Javascript是这种规范的一种实现

    JavaScript的组成

    ECMAScript是JavaScript的标准,描述了该语言的语法和基本对象
    DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(DocumentObjectModel)。
    BOM 浏览器对象模型(Browser Object Model, BOM)被广泛应用于 Web 开发之中,主要用于客户端浏览器的管理。
    在这里插入图片描述

    JS引擎

    JS引擎是用来运行JavaScript代码的
    不同的浏览器有不同的内核组成
    Gecko:早期被Netscape和Mozilla Firefox 浏览器使用
    Trident:微软开发,被IE4-IE11浏览器使用,但是Edge浏览器已经转向Blik
    Weblit:苹果基于KHTML开发、开源的,用于Safari,Google Chrome之前也在使用;
    Blik:是Webkit的一个分支,Goole开发,目前应用于Goole Chrome 、Edge、Opera等

    事实上,我们经常说的浏览器内核是指浏览器的排版引擎:
    排版引擎(layout engine) ,也称为浏览器引擎(browser engine)、页面渲染引擎(rendering engine)或样版引擎

    常见的JS引擎:

    SpiderMonkey:第一款JavaScript引擎,由Brendan Eich开发(也就是JavaScript作者)

    Chakra:微软开发,用于IT浏览器

    JavaScriptCore:Webkit中的JavaScript引擎,Apple公司开发;

    V8:Google开发的强大JavaScript引擎,也帮助Chrome从众多浏览器中脱颖而出

    浏览器内核和JS引擎的关系

    以Webkit为例,WebKit事实上由两部分组成的:

    webCore:负责HTML解析、布局、渲染等等相关的工作;

    JavaScriptCore:解析、执行JavaScript代码

    JavaScript的编写方式

    1. HTML代码行内(不推荐)

    当我们点击a标签时就会弹出
    在这里插入图片描述

    1. script标签中

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ju7poYG2-1658590542397)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220723230802473.png)]

    1. 外部的script文件

    需要通过script元素的src属性来引入JavaScript文件

    < noscript>元素

    当浏览器不支持JavaScript代码时运行

    在这里插入图片描述

    在这里插入图片描述

    JavaScript编写的注意事项

    注意一:script元素不能写成单标签

    在外链式引用js文件时,script标签中不可以写成JavaScript代码,并且script标签不能写成单标签

    注意二:省略type属性

    在以前的代码中,< script >标签中会使用type=‘text/JavaScript’;

    现在可以不写这个type元素了,因为JavaScript是所有现代浏览器以及HTML5中默认脚本语言

    注意三:加载顺序

    作为HTML文档内容的一部分,JavaScript默认遵循HTML文档的加载顺序,即自上而下的加载顺序;

    推荐将JavaScript代码和编写位置放在body子元素的最后一行;

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
    </head>
    <body>
      
      <!-- 放在body最后一行 -->
    <script></script>
    </body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    注意四:Javascript代码严格区分大小写

    HTML元素和CSS属性不区分大小写,但是在JavaScript中严格区分大小写

  • 相关阅读:
    Linux 信号相关
    研1日记12
    【Python大数据笔记_day04_Hadoop】
    二十七、Java 枚举(enum)
    线程的概念+线程函数API
    从抽象类和普通类的区别中体会设计模式
    程序编译过程(扫盲贴)
    前端打包工具的发展历程、思路(grunt,gulp,webpack,vite)
    什么是分卷压缩
    第三篇、Runnable接口实现多线程
  • 原文地址:https://blog.csdn.net/m0_62336865/article/details/125953984