首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS进阶系列

JS入门难点解析系列中,我们对JS的一些重要概念,比如:作用域,作用域链,原型,原型链,继承,活动对象,this,执行环境,变量声明,函数声明等进行了详细的分析讲解。...大家对JS的一些基本用法应该有了自己的心得。那么,这个系列,我们从JS这门语言本身入手来进行深挖,看一下JS与其他语言的不同点,在使用JS的时候又需要注意什么。...这个系列,我们分为三部分,第一部分讲解JS的弱类型和动态类型是指什么,第二部分分析JS面向对象的三大特征,第三部分我们一起探讨一下JS语言在使用时应当遵循的设计原则。...第一部分 JS的弱类型和动态类型 JS进阶系列01-JS的弱类型和动态类型 第二部分 JS面向对象的三大特征 JS进阶系列02-JS面向对象的三大特征之封装 JS进阶系列03-JS面向对象的三大特征之多态...第三部分 JS的设计原则

46410

JS进阶:继承

在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的new 到底是干什么的 一、什么是 JS 原型链 我们知道 JS 有对象,比如 var obj =...当我们「读取」 obj.toString 时,JS 引擎会做下面的事情: 看看 obj 对象本身有没有 toString 属性。没有就走到下一步。 看看 obj....){ return '新的 toString 方法' } image.png 小结 [读]属性时会沿着原型链搜索 [新增]属性时不会去看原型链 二、 this 的值到底是什么 你可能遇到过这样的 JS...函数调用 JS(ES5)里面有三种函数调用形式: func(p1, p2) obj.child.method(p1, p2) func.call(context, p1, p2) // 先不讲 apply...如果你的函数调用不是 call 形式, 请将其转换为 call 形式 三、JS 的 new 到底是干什么的?

4.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS进阶复习

    JS第一天: 作用域: 全局 局部: 块级 函数 …....作用域链 JS垃圾回收机制GC, 内存分配, 内存使用, 内存回收 全局作用域浏览器关了才回收, 函数作用域执行完后才回收 闭包 内部函数+外部函数的变量 变量和函数的提升 函数的动态参数和剩余参数–展开表达式...箭头函数: this指向上一个作用域的this 数组解构, 多维数组 对象解构, 多维对象 forEach: 循环遍历数组对象 filter数组筛选: 会返回一个新数组 价格筛选案例 王者荣耀筛选英雄案例 JS...返回新对象 实例成员: 实例对象的实例属性和实例方法叫实例成员 静态成员: 构造函数的静态属性和静态方法叫静态成员 基本包装类型: 因为JS底层将基本数据类型包装成了复杂数据类型 内置构造函数: ​ 1...复习: JS面向对象需借助构造函数来实现 构造函数存在浪费内存问题

    35020

    Js 逆向进阶 | 浅谈 Js 代码保护

    看了他们这个说明可能以上两个功能相对比较吸引人: 因为加密和压缩这种太容易被人分析了,原理比较简单; 控制流混淆对于逻辑的处理能够增大分析难度,原理上其实就是分析js得到语法树,通过操控语法树,比如对于...2.Js2x http://ty2y.com/obfuscate/#how-to-use ? 这个跟上面那个多态变异是一样的。...SecurityWorker https://www.securitify.io/ 这个重点强调了虚拟机,其实虚拟机的思路也比较好理解:这里只说虚拟机的思路i: 第一阶段: 这个可能是目前看到应该是 js...vmp 最强的,这种方案其实也是很好理解的,比如对于一个js代码来说,我们只用js操作写一个基于栈的解释器,然后对于本身要保护的js进行虚拟化,定义一堆自定义操作,这个时候其实还是比较弱,因为全部是...总结 对于 js 这种语言来说,由于语言本身的特殊性,一定的保护是非常必要的,再结合浏览器本身的发展,为了性能会在编译上做处理,引入本地层的东西,比如谷歌的 V8 ,火狐的 asm.js 在安全性上:业务上更多的结合服务端动态特性以及客户端强大的静态代码保护的设计会达到一个比较好的效果

    27.8K20

    前端进阶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

    node.js进阶学习

    为试图解释什么是 Node.js,本文探究了它能解决的问题,它如何工作,如何运行一个简单应用程序,最后,Node 何时是和何时不是一个好的解决方案。...现在,要启动这个应用程序并运行它(进而创建 HTTP 服务器并监听端口 80 上的连接),只需在您的命令提示中输入以下命令:% node random.js。...这种设置将允许这类分布式网站减少它们服务映像、.js 和 .css 文件等静态文件所需的服务器数量。 它对什么有坏处? 当然,在某些情况下,Node 并非理想选择。...参考资料 学习 Node.js 主页 是了解这个应用程序的切入点。 浏览 Node.js API 页。注意,不同发布的语法可能不同,因此,请根据您正在浏览的 API 检查您已下载的版本。...高阶学习可以参考 Node.js:用JavaScript写服务器端程序-介绍并写个MVC框架

    1.2K70

    JS进阶第三天

    JavaScript进阶 – 第三天 了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。...console.log(p1.name) // 实例对象 let p2 = new Person() console.log(p2.name) 封装是面向对象思想中比较重要的一部分,js...实现数据的共享,所不同的是借助构造函数创建出来的实例对象之 间是彼此不影响的 总结: 构造函数体现了面向对象的封装特性 构造函数实例创建的对象彼此独立、互不影响 封装是面向对象思想中比较重要的一部分,js...注意: proto 是JS非标准属性 [[prototype]]和__proto__意义相同 用来表明当前实例对象指向哪个原型对象prototype __proto__对象原型里面也有一个 constructor

    20840

    进阶系列】Node.js专题

    1 环境搭建 1.1 WebStorm集成Node.js Node.js入门学习笔记-IDE选择/配置之WebStorm(windows) http://www.cnblogs.com/shanyou/...archive/2012/08/03/2620796.html 1.1.1 1.下载前期准备 node.js下载地址 http://nodejs.org/ 1.1.2 2.配置与安装 网上有资源,我就不重复了...http://www.tuicool.com/articles/UnmaAn 1.1.3 3.创建一个简单的node.js工程 3.1 安装node.js         安装刚才从官网下载的node.js...3.2 新建一个工程 3.3 配置node.js.exe 路径         确定路径没错后,点击升级webstorm的支持node.js的插件 3.4 添加代码到工程 代码里面填写 console.log...('hello world'); 3.5 正式生成一个node.js项目 3.6 配置编译环境 3.7 运行node.js工程         点击箭头执行。

    31610
    领券