搜索
首页web前端js教程从基础到精通--javascript语言

从基础到精通--javascript语言

Jun 26, 2017 am 11:50 AM
javascriptjs原理基础

javascript是一种具有面向对象能力的、解释型的程序设计语言。它是基于对象和时间驱动,并具有相对安全性的客户端脚本语言。因为它并不需要在一个语言环境下运行,只需要有支持它的浏览器即可,它的主要目的是验证发往服务器断的数据,增加web互动,加强用户体验。

 

解释型语言与编译型语言的区别

       解释型语言:这种是在运行的时候就将程序编译成机器语言。

       编译型语言:这种是在运行程序钱有一个编译过程,但是并不是将程序编译成机器语言,而是编译成字节码。例如java语言在运行的时候,由JVM将字节码在翻译成机器语言。JVM是java虚拟机,是一个虚构出的计算机。

       但是解释型语言在编译的效率上要比编译型语言要慢,javascript是一种解释型语言。它在将程序放在浏览器上解析的时候,js在浏览器上自己的解释引擎。javascript v8引擎。浏览器核心把js编译成view要进行“词法分析”,“语法分析”,“代码生成”三个阶段。这是明显的编译型语言特征。详见《犀牛书第二章》《你不知道的javascript》第一章。

 

java代码由JVM执行

javascript是由javascript解释器执行

每个浏览器的并不一样,一般都包含在各浏览器的内核中

浏览器内核一般包含两个引擎:页面排版引擎JS引擎

IE的 使用的自己的Trident 内核

FireFox 是Gecko内核

Opera   是Presto内核

Safari  使用的Webkit 内核

Chrome  是Google自己的 javascript V8引擎 而其页面排版采用的Webkit 内核

 

       javascript是脚本语言,脚本语言也是解释型语言,脚本语言不需要编译,直接由解释器来解释即可。从刚才的javascript是编译型语言的论据来看,javascript也是编译型语言。就不能一概而论是脚本语言。认识脚本语言的方式很简单。

编写一个程序叫xxx.exe,点击.exe可以打开.aa为扩展名的文件。那么你就是为.aa的文件编写指定了规则,这就是脚本所做的事情与关系,通过指令去让程序按照顺序执行。

 

       javascript在浏览器内核的关系与原理认识

       浏览器解析渲染页面原理

       说起这个肯定要提到大家比较熟悉的webkit,谷歌浏览器的渲染引擎。在其他浏览器中的渲染引擎并不相同,每个浏览器的内核引擎都不一致,所以导致了现在我们在编写html代码做页面结构布局的过程中要做很多关于各大浏览器的兼容性问题。

       浏览器最重要最核心的部分则是解释引擎也就是浏览器内核。一个网页正常的工作需要用到两个引擎:渲染引擎和解释引擎。兼容性的各种写法都是针对于这些浏览器内核引擎去做的。于是现在的主流浏览器内核有哪些呢?

      

       目前市场上的四大主流浏览器

       IE

       所使用的浏览器内核为       Trident(四大内核中处理速度最慢)

       由于window市场的占有率,IE浏览器借助其地位造成了Trident内核一家独大的情况,因为这种情况出现,微软也长时间没有去对Trident做过更新,Trident出现了与W3C标准的脱节问题与大量BUG和安全性问题无法解决,直接导致了FireFox浏览器的崛起。但是因为其市场占有率的原因,现在作为前端开发工程师最头痛的兼容处理还是针对于IE的一些低版本。

       FireFox

       所使用的浏览器内核为       Gecko

       开放源码,运行处理速度快。开源的东西总是容易受到广大猿类的欢迎!而且使用Gecko的浏览器也非常多,一般是用在一些国外的浏览器上。国内不作多的考虑!

       Opera

       所使用的浏览器内核为       presto

       最凶残解释引擎!网页排版引擎。为了渲染速度的提高做了极高优化,简单来讲就是为了效率为了速度不顾一切。但是有得必有失,速度是牺牲了兼容性才得来的。毋庸置疑,它是在所有浏览器内核解析javascript速度是最快的。但是到如今因为前端的发展速度太快,一切以用户体验为先,不能在以牺牲兼容性换取速度。Opera停用了presto改用了谷歌的Blink内核。

       Chrome

       所使用的浏览器内核为       webkit渲染引擎  javascript v8解释引擎

       应该讲的在上面都已经解释过了,这里就不作多解释了。这个也是很多人开始学习前端和广大前端工程师比较喜好的一个浏览器Chrome浏览器的内核。它是苹果公司自己的内核。

       壳浏览器

       使用IE内核而非IE浏览器,这类浏览器被称之为“套壳浏览器”。出现的原因是因为Trident是一款开放的内核,所以国内市场上出现了大量的这种壳浏览器。例如360、腾讯TT、猎豹、遨游之类,采用双核内甚至多核的方式,在其中有一个为Trident内核,其他的在添加其他内核。国内的浏览器厂商一般把这种情况分为两种,“高速浏览模式”与“兼容浏览模式”,以供用户来回切换使用,其中IE内核Trident则是“兼容浏览模式”,因为国内的厂商所套用的IE内核版本都不会很高,跟不上Trident的迭代更新的速度,低版本的IE内核体积过小,方便用户下载。所以从发展之初便被广泛捆绑安装使用,直到发展到现在,安全性也会有一定的问题。

       诸如以上众多问题的提出,一步一步的解决和认知。我们知道了什么是解释型语言,什么是编译型语言。通过解释型语言认识了浏览器内核,它们之间的一些区别与我们平时写代码的过程中息息相关的事情。在web前端的学习过程中或者说是在不断的提升自己的过程中,理解并且认识javascript一定是最为重要的。在javascript的发展过程中,也许在之前很多的朋友认为javascript有没有必要去潜心学习?从当下开始,如果有人像你咨询,想要学习一门语言或者是想要掌握一门新的语言,你需要向他推荐javascript,一定是javascript。从jQuery的出现第一次带动javascript的发展,到html5让javascript真正的做到让人们认识,再到现在的nodejs。彻底的颠覆了之前大部分人对于javascript的一些看法。这些新型的框架出现让javascript真正的潜力无限!

       html5就是javascript的高级内容进阶部分

       现在还是有很多人把html5与html相关联,它们之间有相关性吗?不过是做了一些优化,添加了一些新的标签,新的标签也不难理解方便使用,为什么就被定义成html基础部分了呢?

       html5的真正威力是在于你能通过javascript来创建标签,利用内核的两种特性去分别解释与渲染,canvas被人所熟知也是因为其功能强大,动画、特效、游戏、数据的可视化。都是需要通过javascript与后台的支持才能有其效果。所有的一切都要归功与javascript。webgl支持html5画布绘制3D图像效果。html5的地理位置支出在浏览器中显示则是LBS应用等等。javascript与文档型数据库的对接做到了太多的不可能。ECMAscript版本的不断迭代更新,出现了太多太多以其为基础的js框架,vuejs、angularjs、reactjs...

以上是从基础到精通--javascript语言的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript:探索网络语言的多功能性JavaScript:探索网络语言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

JavaScript的演变:当前的趋势和未来前景JavaScript的演变:当前的趋势和未来前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

神秘的JavaScript:它的作用以及为什么重要神秘的JavaScript:它的作用以及为什么重要Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python还是JavaScript更好?Python还是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安装JavaScript?如何安装JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安装,因为它已内置于现代浏览器中。你只需文本编辑器和浏览器即可开始使用。1)在浏览器环境中,通过标签嵌入HTML文件中运行。2)在Node.js环境中,下载并安装Node.js后,通过命令行运行JavaScript文件。

在Quartz中如何在任务开始前发送通知?在Quartz中如何在任务开始前发送通知?Apr 04, 2025 pm 09:24 PM

如何在Quartz中提前发送任务通知在使用Quartz定时器进行任务调度时,任务的执行时间是由cron表达式设定的。现�...

在JavaScript中,如何在构造函数中获取原型链上函数的参数?在JavaScript中,如何在构造函数中获取原型链上函数的参数?Apr 04, 2025 pm 09:21 PM

在JavaScript中如何获取原型链上函数的参数在JavaScript编程中,理解和操作原型链上的函数参数是常见且重要的任�...

微信小程序webview中Vue.js动态style位移失效是什么原因?微信小程序webview中Vue.js动态style位移失效是什么原因?Apr 04, 2025 pm 09:18 PM

在微信小程序web-view中使用Vue.js动态style位移失效的原因分析在使用Vue.js...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具