首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS ----- 底层原理

    JS不是这样做的,JS是不需要编译成中间码,而是可以直接在浏览器中运行,JS运行过程可分为两个阶段,编译和执行。...(可参考你不知道的JS这本书),当JS控制器转到一段可执行的代码时(这段可执行代码就是编译阶段生成的),会创建与之对应的执行上下文(Excution Context简称EC)。...执行上下文可以理解为执行环境(执行上下文只能由JS解释器创建,也只能由JS解释器使用,用户是不可以操作该"对象"的)。...JS 的底层运行原理 每调用一个函数就会生成一个执行环境(俗称执行上下文),执行上下文环境数量没有限制 每调用一个函数就会生成一个执行环境(俗称执行上下文),执行上下文环境数量没有限制 单线程 同步执行...eval():把字符串单做JS代码执行,不推荐使用

    2K10

    JS加密、JS混淆技术原理简介

    JS加密、JS混淆技术原理简介JS加密、JS混淆、JS混淆加密,所指相同,都是指对JS代码进行加密式处理,使代码不可读,以达到保护代码的目的。...其原理,根据加密或混淆处理深度不同,大体上可分两种,下面简述技术原理。第一种,对代码进行字符替换,比如Eval加密、JJEncode加密,都属于这一类。这种方式,直接对JS代码进行处理,是可逆的加密。...第二种,操作层面与前者最大的差别是,不是对JS代码直接进行分析并加密,而是会进行低层处理,先会对JS代码进行词法分析、语法分析,转化成AST(抽象语法树),得到AST之后,混淆加密操作都是在AST中进行...,完成语法树加密修改之后,再根据AST重新生成全新的密文式JS代码,专业的JS代码加密混淆工具,比如JShaman、JScrambler都是属于这一类。...如此混淆过的JS代码,人无法读懂,但机器可识别,是可以直接运行的,不需要经过解密,因此,不存在通过解密而直接逆向出原码的问题,安全性高。在业内是被广泛认可和应用的。

    53340

    Node.js原理

    Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。 Node.js 是一个可以让 JavaScript 运行在浏览器之外的平台。...历史上将 JavaScript移植到浏览器外的计划不止一个,但Node.js 是最出色的一个。...Node.js能做什么 借用一句经典的描述Node.js的话:正如 JavaScript 为客户端而生,Node.js 为网络而生。...运行原理分析 当我们搜索Node.js时,夺眶而出的关键字就是 “单线程,异步I/O,事件驱动”,应用程序的请求过程可以分为俩个部分:CPU运算和I/O读写,CPU计算速度通常远高于磁盘读写速度,这就导致...来看一下代码: test.js(作为控制文件) // file name :test.js var express = require('express'); var app

    3K70

    前端进阶JS运行原理

    JS运行原理 深入了解V8引擎原理 浏览器内核是由两部分组成的,以webkit为例: WebCore:负责HTML解析、布局、渲染等等相关的工作; JavaScriptCore:解析、执行JavaScript...代码; 官方对V8引擎的定义: V8是用C ++编写的Google开源高性能JavaScript和WebAssembly引擎,它用于Chrome和Node.js等 它实现ECMAScript和WebAssembly...获得到代码之后 V8用流输入通过词法分析,分析成token 解析/预解析 来生成一个一个执行节点 生成 AST 树 转成字节码 如果有热点方法就会走turbofan编译器优化成机械码提升性能 全局代码执行过程 js...GO) 该对象 所有的作用域(scope)都可以访问 里面会包含Date、Array、String、Number、setTimeout、setInterval等等 其中还有一个window属性指向自己 js...闭包的一个重点, js中闭包就是通过作用域链的方式来完成变量可以跨作用域访问的,为我们加快提升了开发的效率 也省去很多麻烦

    3.7K51

    关于面包屑的无障碍讨论

    一篇文章可以从属于很多列表,面包屑导航上的链接都可以是这个列表。纠结了很久,到底是按一个快捷键到面包屑导航(包含这个文章所属的频道,一级栏目,二级栏目...)...方案一: 如果是跳到面包屑的话,那么需要做两件事:第一,解释什么是面包屑导航;第二,在面包屑的各个链接上要给出相应的信息供阅读。...1.解释概念 面包屑导航可以帮助你了解当前页面在整个腾讯网中的位置以及与频道栏目的从属关系。...一般格式为:所属频道 所属一级栏目 所属二级栏目 2.代码 <div title="<em>面包屑</em>导航,您可以通过上下键选择要访问的栏目层级" tabindex="0" accesskey="5" style=...后来,我选择了第二种方案,基于如下考虑: 1.在新版底层页的设计上,放弃了传统的面包屑导航(我个人觉得这点很不友好) 2.对于用户来说,面包屑这个概念需要学习 3.把“最相关”的新闻列表给用户,避免在多选择中迷失

    54910

    网页设计中的面包屑路径

    面包屑路径最简单的形式是水平排列的文字链接,之间用大于号隔开,每个链接表示与这个级别相关的页面链接。 何时使用面包屑路径? 大型网站,特别是那种页面按照层级结构组织的网站比较适合使用面包屑路径。...面包屑路径的类型: 面包屑路径主要有三种形式。 基于位置的面包屑: 位置面包屑是静态的,显示了当前页面在网站中所处的等级。...基于属性的面包屑: 属性面包屑给出了当前页面所属类别的信息,下图的面包屑更接近与一个混合形式的面包屑,路径中包含了对结果的筛选条件描述; ?...路径:路径形式的面包屑是动态的路径,经常用来指引用户进行某种操作,比如“注册”流程,他动态的显示用户完成注册所需要的过程; 使用面包屑路径的好处 方便用户:面包屑路径的目的就是为用户提供一种辅助的导航方式...当页面含有多重栏目时,使用面包屑路径:面包屑路径具有线性的结构,如果你的页面不能够很清楚的分类,那就很难用面包屑路径来表示,这其实是在网站设计初期,要为站点制定明确的组织结构。

    1.2K30

    Node.js 的底层原理

    前言:之前分享了 Node.js 的底层原理,主要是简单介绍了 Node.js 的一些基础原理和一些核心模块的实现,本文从 Node.js 整体方面介绍 Node.js 的底层原理。...1 Node.js 的组成和代码架构 下面先来看一下Node.js 的组成。Node.js 主要是由 V8、Libuv 和一些第三方库组成。 1. V8 我们都比较熟悉,它是一个 JS 引擎。...Node.js 代码主要是分为三个部分,分别是C、C++ 和 JS。 1. JS 代码就是我们平时在使用的那些 JS 的模块,比方说像 http 和 fs 这些模块。 2....4.2 用户 JS 模块 用户 JS 模块就是我们平时写的一些 JS 代码。...4.3 原生 JS 模块 接下来看下原生 JS 模块加载器。原生JS 模块是 Node.js 本身提供了一些 JS 模块,比如经常使用的 http 和 fs。

    1K40

    Vue.js 内部原理浅析

    原文:https://medium.com/js-imaginea/the-vue-js-internals-7b76f76813e3 说到 JavaScript 框架,Vue.js 绝对是个热门的...于我来说 Vue.js 最吸引人的地方在于 -- 其学习曲线,非常之低。个人角度来讲,我感觉就像正在做着 jQuery 一类的事情。鼓捣几天之后,你就能开始建立应用了。...一年前我开始探索 Vue.js 并建立了一些应用。但是几天前,一股深入了解 Vue.js 代码的渴望在我心中升腾。我翻阅了 Github 上的源码并进行了多轮调试以了解其底层运行机制。...所以,让我们来点干货,本文将尝试给你如下 4 个问题的答案: 当你创建一个 Vue.js 实例时发生了什么? 模板内部都在发生着什么? Virtual DOM 有何意义?...Static text Toggle Dynamic 组件的 JS

    1.3K10

    Node.js的底层原理

    前言:本文根据最近做的一次分享整理而成,希望能帮忙大家深入理解Node.js的一些原理和实现。 大家好,我是一名Node.js爱好者,今天我分享的主题是Node.js的底层原理。...在大前端的趋势下,Node.js不仅拓展了前端的技术范围,同时,扮演的角色也越来越重要,深入了解和理解技术的底层原理,才能更好地为业务赋能。 今天分享的内容主要分为两大部分。...一 Node.js基础和架构 Node.js的组成 Node.js代码架构 Node.js启动过程 Node.js事件循环 二 Node.js核心模块的实现 进程和进程间通信...V8:实现JS解析和支持自定义的功能,得益于V8支持自定义拓展,才有了Node.js。 Node.js代码架构 ? 上图是Node.js的代码架构,Node.js的代码主要分为JS、C++、C三种。...2 接着传入c++和原生js模块加载器,执行run_main_module.js。 3 在run_main_module.js中传入js和原生js模块加载器,执行用户的js

    2K20
    领券