js小白教育求指教。。

写给小白的JavaScript引擎指南
字体:[ ] 类型:转载 时间:
有时编写 Web 应用的代码会感觉充满魔力,因为我们只是写了一系列字符,就能在浏览器里看到效果了。但是理解魔法背后的技术,可以帮助你更好地提高编程技巧
关于本文标题,我并不认为参与写或者读本文的人是白痴。但是有时某个话题会让你觉得自己就像个白痴一样,而 JavaScript 引擎就是这些话题之一,至少对于我来说是这样。
有时编写 Web 应用的代码会感觉充满魔力,因为我们只是写了一系列字符,就能在浏览器里看到效果了。但是理解魔法背后的技术,可以帮助你更好地提高编程技巧。至少当你试图解释在 JavaScript 驱动的 web 或移动应用的幕后发生了什么的时候,会觉得自己不那么白痴了。
很多年前,那是我还是个研究生讲师,向一个教授抱怨还没有掌握那些特别难懂的法语语法点,可以教给我的本科学生。我记得当时她说的话:“有时候,学习某个事物的唯一方式就是教授它。”
尝试向工程师解释 NativeScript 是如何通过 JavaScript 引擎在幕后工作、在运行时连接调用原生的 APIs——面对这样一件复杂的工作很容易在一片杂草中迷失方向。事实上,任何 JavaScript 开发者都应该对我们每天使用的这门技术基础的引擎感到好奇。现在我们一起来仔细分析下 JavaScript 引擎到底做了什么,为什么不同的平台使用不同引擎,多年来它们是如何发展的,以及作为开发者我们为什么要关注这些。
首先,一些专业术语
“JavaScript 引擎”通常被称作一种 虚拟机。“虚拟机”是指软件驱动的给定的计算机系统的模拟器。有很多类型的虚拟机,它们根据自己在多大程度上精确地模拟或代替真实的物理机器来分类。
例如,“系统虚拟机”提供了一个可以运行操作系统的完整仿真平台。Mac 用户很熟悉的 Parallels 就是一个允许你在 Mac 上运行 Windows系统虚拟机。
另一方面,“进程虚拟机”不具备全部的功能,能运行一个程序或者进程。Wine 是一个允许你在 Linux 机器上运行 Windows 应用的进程虚拟机,但是并不在 Linux 中提供完整的 Windows 操作系统。
JavaScript 虚拟机是一种进程虚拟机,专门设计来解释和执行的 JavaScript 代码。
注意:要区别在浏览器中排布页面布局的 布局引擎 和解释和执行代码的底层 JavaScript 引擎是非常重要的。在 这里 可以找到一个很好的阐释。
那么,确切来讲,到底什么是 JavaScript 引擎,它做了什么?
JavaScript 引擎的基本工作是把开发人员写的 JavaScript 代码转换成高效、优化的代码,这样就可以通过浏览器进行解释甚至嵌入到应用中。事实上,JavaScriptCore 自称为“优化虚拟机”。
更准确地讲,每个 JavaScript 引擎都实现了一个版本的 ECMAScript,JavaScript 是它的一个分支。随着 ECMAScript 的不断发展,JavaScript 引擎也不断改进。之所以有这么多不同的引擎,是因为它们每个都被设计运行在不同的 web 浏览器、headless 浏览器、或者像 Node.js 那样的运行时环境中。
你也许熟悉 web 浏览器,那什么是 headless 浏览器呢?它是一个没有图形用户界面的 web 浏览器。它们在对 web 产品进行自动化测试时十分有用。一个很棒的例子就是 PhantomJS。那 Node.js 又和 JavaScript 引擎有什么关系?Node.js 是一个异步的、事件驱动的框架,让你在服务器端可以使用 JavaScript。既然他们是驱动 JavaScript 的工具,所以它们也是由 JavaScript 引擎驱动。
按照上述关于虚拟机的定义,把 JavaScript 引擎称作进程虚拟机就很好理解了,因为它的唯一的目的就是读取和编译 JavaScript 代码。这并不意味着它只是个简单的引擎。比如,JavaScriptCore 就有六个“构建模块”可以分析、解释、优化、垃圾回收 JavaScript 代码。
它是如何工作的?
当然,这决定于引擎。吸引我们注意的两个主要的引擎都利用了 NativeScript ,它们分别是 WebKit 的 JavaScriptCore 和 Google 的 V8 引擎。这两个引擎使用不同的方式处理代码。
JavaScriptCore 执行 一系列步骤 来解释和优化脚本:
它进行词法分析,就是将源代码分解成一系列具有明确含义的符号或字符串。
然后用语法分析器分析这些符号,将其构建成语法树。
接着四个 JIT(Just-In-Time)进程开始参与进来,分析和执行解析器所生成的字节码。
什么?简单来说,JavaScript 引擎会加载你的源代码,把它分解成字符串(又叫做分词),再 把这些字符串转换 成编译器可以理解的字节码,然后执行这些字节码。
Google 的 V8 引擎 是用 C++ 编写的,它也能够编译并执行 JavaScript 源代码、处理内存分配和垃圾回收。它被设计成由两个编译器组成,可以把源码直接编译成机器码:
Full-codegen:输出未优化代码的快速编译器
Crankshaft: 输出执行效率高、优化过的代码的慢速编译器
如果 Crankshaft 确定需要优化的代码是由 Full-codegen 生成的未优化代码,它就会取代 Full-codegen,这个过程叫做“crankshafting”。
一旦编译过程中产生了机器代码,引擎就会向浏览器暴露所有的数据类型、操作符、对象、在 ECMA 标准中指定的函数、或任何运行时需要使用的东西,NativeScript 就是如此。
有哪些 JavaScript 引擎?
有一大堆令人眼花缭乱的 JavaScript 引擎可以用来解释、分析和执行你的客户端代码。每个浏览器版本发布时,它的 JavaScript 引擎都可能有所改变或优化以跟上 JavaScript 代码执行技术的状况的变化。
你还没被这些浏览器引擎的名字完全弄糊涂之前,请记住很多市场营销的元素被加入了这些引擎和以它们为基础的浏览器。这篇对 JavaScript 编译 十分有用的分析 中,作者讽刺地指出:“你所不知道的是,编译器大约有 37% 是由市场营销构成的,对编译器进行品牌重塑也是你能做的为数不多的事情之一,智慧的市场营销,故而有了一系列名字:SquirrelFish、Nitro、SFX……”。
在牢记营销对命名和重命名这些引擎的影响的同时,注意到几件在 JavaScript 引擎发展史上的重大事件是很有用的。我为你做了一个便于理解的图表:
Browser, Headless Browser, or Runtime
JavaScript Engine
Spidermonkey
JavaScriptCore
IE and Edge
JavaScriptCore
*JavaScriptCore 被改写为 SquirrelFish,升级版本为 QuirrelFish Extreme,也叫做 Nitro。然而,构成 Webkit 实现基础的 JavaScript 引擎就是 JavaScriptCore(比如 Safari)。
**iOS 开发者应该要知道移动设备的 Safari 使用 Nitro,但是 UIWebView 不包括 JIT 编译,所以体验会慢一些。然而开发人员可以在 iOS8 中使用包含 Nitro 的 WKWebView,使用体验 明显 变快。混合移动应用程序的开发人员应该能松口气了。
*最终 io.js 从 Node.js 分离开的原因之一就是为了支持 V8 版本的引擎。这仍然是一个挑战,正如 这里 讲述的。
我们为什么要关注?
JavaScript 引擎的代码解析和执行过程的目标就是在最短时间内编译出最优化的代码。
最重要的是,这些引擎的演进与我们对发展 web 和 移动平台的不断探究息息相关,让它们尽可能具有高性能,是相辅相成的。为了追踪这种演进,你可以看到各种各样的引擎在基准图中是如何表现的,就好像
总结的。例如,比较 Chrome 在搭载 V8 引擎与 non-Crankshafted 引擎时的表现就很有趣。
任何一个 web 开发者都要意识到,我们努力编写、调试和维护的代码在不同浏览器中执行效果必然有所差异。为什么某段代码在一个浏览器上工作得很慢,但在另一个上却快得多?
同样地,移动开发者,尤其是使用 webview 显示页面内容的混合移动应用开发者,或者那些使用像 NativeScript 这种运行时环境的开发者,想知道是什么引擎在解释执行他们的 JavaScript 代码。移动 web 开发者应该注意到那些小小设备上的浏览器所具备的各种局限性和可能性。作为一个想持续发展的 web、移动或应用程序开发人员,时刻关注 JavaScript 引擎的变化会带给你超值回报。
js 中的基本数据类型 undefined null boolean number string
js 中的一种复杂数据类型 object& 它是所有对象的基础类型
js 和其他语言一样拥有9种基本的控制语句
js 中的函数无需指定返回值,实际上未指定返回值的函数返回的是undefined
js 中的参数可以随意的传递& 注意arguments[] 数组 它可以帮助你
js 中的函数是不能重载的,但是你可以模仿。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具苹果/安卓/wp
积分 69, 距离下一级还需 16 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡下一级可获得
权限: 自定义头衔
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
开心签到天数: 11 天连续签到: 1 天[LV.3]偶尔看看II
data data1;
do i=0 to 2;
d=0.1+0.4*&i;
程序总是提示错误,加%let i=0,下面用%do %to,得到的观测值有三行,但是都是i=0时的,三行九个观察值一样,求解,拜谢
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
谢谢,您能告诉我为什么吗?
谢谢,您能告诉我为什么不能有&吗?
lipeng0809 发表于
谢谢,您能告诉我为什么不能有&吗?你的 i 不是宏变量啊,不需要加&来指示,并且假设你使用的宏变量,你还少了一个“.”
谢谢,给了我很多帮助
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
加入我们,立即就学扫码下载「就学」app& Join us!& JoinLearn&
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师帖子很冷清,卤煮很失落!求安慰
手机签到经验翻倍!快来扫一扫!
各种大神,小白求指教。
171浏览 / 11回复
电脑小白一枚。最近感觉电脑不怎么好用了。下面是我的配置图。有点想换CPU跟上性能节奏,我现在这个好像已经过时了。在不更换显卡的情况下,这个主板换什么CPU性能比较好。求指教。还有就是更换CPU有没有什么要注意的,因为我自己准备自己动手。配置图。
不换主板貌似不太可能了。。。CPU:速龙X4 870K & 439元(京东)主板:技嘉F2A88XM-D3H & &449元(如果你是京东金牌会员,只要399元)或者建议熬到下半年,等新架构ZEN上市看看具体价格和性能如何再考虑升级电脑。
暴走de黑眼圈 发表于
不换主板貌似不太可能了。。。CPU:速龙X4 870K
439元(京东)主板:技嘉F2A88XM-D3H
449元(如果你是京...
谢谢大神,按照你给的这个主板和cpu
那我的电源要不要换?95的
旧時_10 发表于
谢谢大神,按照你给的这个主板和cpu
那我的电源要不要换?95的
95什么意思?95年的?如要换电源,215元台达NX350和Antec VP350P都是350W档次里品质相当不错的。
这主板和内存,留点有用的东东,主板和cpu,内存可以全换了
电脑型号 X86 兼容 台式电脑操作系统 Windows XP 专业版 32位 SP3 ( DirectX 9.0c ) 处理器 AMD Phenom(羿龙) II X3 720 三核主板 捷波 HA08-COMBO ( AMD 780G/780V/790GX/890GX )内存 4 GB ( 威刚 DDR2 800MHz )主硬盘 西数 WDC WD5000AAKS-00A7B2 ( 500 GB / 7200 转/分 )显卡 ATI Radeon HD 4800 Series ( 512 MB / 蓝宝石 )显示器 LG GSM43E8 L1750SQ ( 17.1 英寸 &)光驱 TSSTcorp CD/DVDW TS-H652M DVD刻录机声卡 瑞昱 ALC888 @ ATI SB750 &高保真音频网卡 瑞昱 RTL12 Gigabit Ethernet Controller这是我的,比你的更惨,直接换新的吧。
暴走de黑眼圈 发表于
95什么意思?95年的?如要换电源,215元台达NX350和Antec VP350P都是350W档次里品质相当不错的。
老虎老虎 发表于
这主板和内存,留点有用的东东,主板和cpu,内存可以全换了
那依大神看,我这啥是还有点能用的
暴走de黑眼圈 发表于
95什么意思?95年的?如要换电源,215元台达NX350和Antec VP350P都是350W档次里品质相当不错的。
哥们,企鹅号多少
能加你咨询一下吗?
旧時_10 发表于
那依大神看,我这啥是还有点能用的
硬盘做从盘。机箱,电源接着用。显卡不换就继续用。主板和内存以及cpu全换。再增加一个ssd做主盘。
老虎老虎 发表于
硬盘做从盘。机箱,电源接着用。显卡不换就继续用。主板和内存以及cpu全换。再增加一个ssd做主盘。
企鹅号多少 大神
U,主板,内存都比较另类,估计被JS坑过。玩LOL应该没有问题。建议不要升级, 即使升级后, 显卡,主板,硬盘,电源先后坏的几率很大,不如整体换新。
您需要登录后才可以回帖&&&|&&&&&
用户名/注册邮箱/注册手机号
其他第三方号登录后使用快捷导航没有帐号?
只需一步,快速开始
查看: 1489|回复: 16
在线时间33 小时经验值113 最后登录注册时间帖子阅读权限40UID7152363
高中生, 积分 113, 距离下一级还需 87 积分
该用户从未签到
G币28 最后登录注册时间
马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。
已有帐号?   下载游戏和软件,请【】进入机锋市场!
小白,第一次在某宝买手机,特别是看到三太子价格给力,于是很心动!
主要是想问下,和JS沟通时,要询问些什么问题,
1.能最大程度保证机子和配件是原装的(这个我知道很多时候是人品的问题)
2.机子质量出问题了售后纠纷容易解决要和他们约法三章吗,约定些什么内容呢?
3.可以砍价吗?或者要求送配件?
1、2两点是主题,3点事题外话,不是很重要。
谢谢,在线等~~
日版三太子降临,索尼爱立信退散吧!
在线时间1318 小时经验值2066 最后登录注册时间帖子阅读权限90UID1974305
硕士, 积分 2066, 距离下一级还需 434 积分
该用户从未签到
G币4 最后登录注册时间
…不要表现出自己是小白
网购都差不多,看js把你分为什么等级
No brain No gain
在线时间33 小时经验值113 最后登录注册时间帖子阅读权限40UID7152363
高中生, 积分 113, 距离下一级还需 87 积分
该用户从未签到
G币28 最后登录注册时间
额,想走代购,又不知道有哪些,又没有信用卡~~~
日版三太子降临,索尼爱立信退散吧!
在线时间33 小时经验值113 最后登录注册时间帖子阅读权限40UID7152363
高中生, 积分 113, 距离下一级还需 87 积分
该用户从未签到
G币28 最后登录注册时间
再问一个,现在2299的会不会是翻新或者问题机?价格在哪个区间的比较靠谱呢?
日版三太子降临,索尼爱立信退散吧!
在线时间1318 小时经验值2066 最后登录注册时间帖子阅读权限90UID1974305
硕士, 积分 2066, 距离下一级还需 434 积分
该用户从未签到
G币4 最后登录注册时间
2299日版差不多&&日本拿货1600左右
No brain No gain
在线时间33 小时经验值113 最后登录注册时间帖子阅读权限40UID7152363
高中生, 积分 113, 距离下一级还需 87 积分
该用户从未签到
G币28 最后登录注册时间
好的,谢谢,我去看看行情再说~~
日版三太子降临,索尼爱立信退散吧!
在线时间69 小时经验值445 最后登录注册时间帖子阅读权限60UID5976828
大学本科, 积分 445, 距离下一级还需 255 积分
该用户从未签到
G币113 最后登录注册时间
& &,机油小心,亲身经历告诉你,太坑爹了,80元hdmi转接线就当给鸿拓这狗日奸商买狗粮吧
在线时间18 小时经验值78 最后登录注册时间帖子阅读权限30UID9366599
初中生, 积分 78, 距离下一级还需 22 积分
该用户从未签到
G币72 最后登录注册时间
淘宝大店不敢恭维 昨天3月18日找了家5蓝钻的杭州小店 看了下 描述 发货 服务都高于同行 好评99.8%&&GN出货量也大 店家服务还可以&&我告诉店家 日版机一定要帮我插下电池验下机子屏幕 要求无灰 无亮点 偏色少 黑斑少 官解机 系统刷港版的 后台流量小&&对方都答应了&&22:30 以 2390大洋拍下了日版GN& &我觉得这小店还可以,贵几十元没有关系 关键是要卖家要人品好不好 。&&一些大店我真的不敢恭维了。&&我直观的觉得 要是我自己是商家 日版GN--韩版GN--欧版GN---港版GN 价格差距巨大 ,我一定会努力的让日版的变韩版&&让欧版的变港版&&这是我们天朝人至古的共同个性啊! 我大米不多,还是老实的买日版吧!&&呵呵 收到机机后我也给大家拍几张套图参考下。大家祝福我遇到个人品好的卖家吧!
在线时间37 小时经验值189 最后登录注册时间帖子阅读权限40UID2313175
高中生, 积分 189, 距离下一级还需 11 积分
该用户从未签到
G币39 最后登录注册时间
什么乱七八糟的
在线时间1367 小时经验值1099 最后登录注册时间帖子阅读权限70UID116334
学士, 积分 1099, 距离下一级还需 1 积分
该用户从未签到
G币229 最后登录注册时间
我对JS的要求:
1、当天晚上之前发货。
2、第二天早上快递公司网站可以查询到快递信息。
3、7天无条件退换,换货后时间重新计算。
4、屏幕边角偏色严重、屏幕亮点、配件有仿冒品和其它质量问题,导致的退换货运费需要卖家承担。屏幕轻微偏色和黑背景暗亮度下的黑斑可以接受。
Powered by}

我要回帖

更多关于 白小白舞蹈教学视频 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信