Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、网络、路径等等一 些更加强大的API。
以微信小程序举例。小程序的主要语言是js,使用小程序也方便说明我们接下来要讲的问题。
(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)
Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的 API。
1.Node.js 基础 1.1Node开发概述 1为什么要学习服务器端开发基础 能够和后端程序员更加紧密的配合 网 宽知识视野,能够站在更高的角度审视整个项目 2 服务器端开发要做的事情 实现网站的业务逻辑 数据的增删改查 3.为什么选择Node 使用JavaScript语法开发后端应用 一些公司要求前端工程师掌握Node开发 生态系统活跃,有大量开源库可以使用 前端开发工具大多基于Node开发 4. Node是什么 Node是一个基于Chrome V8引擎
js的立即执行函数(IIFE)有两种写法,分别为:(function ( ){})( ) 与 (function ( ){}( )) ,这两种写法基本上是没有区别的。
无论是否在严格模式下,在全局执行环境中(在任何函数体外部)this 都指向全局对象。
函数dmeo为经声明就可正常调用,执行函数demo时,先将1赋值给b,再将b的值赋值给a;虽然a、b是在函数作用域中,但由于b未经声明,所以下面在browser环境中输出的结果表明b 在 window 属性中,而 a 则不会出现在全局对象中;函数demo的声明是在全局作用域,所以它归window对象所有
global - 全局变量 全局对象(global object),不要和 全局的对象( global objects )或称标准内置对象混淆。这里说的全局的对象是说在全局作用域里的内的对象。全局作用域包含了全局对象的属性,还有它继承来的属性。 注意浏览器下的全局对象跟 nodejs 中的全局对象不一致 浏览器环境下的全局对象就是window Node 的全局对象是 global JS 语言标准的全局的内置对象 JS 语言规范中的全局的内置对象在 Nodejs 中都有效,以下简单过一下,不熟悉请查MDN 文
作为一个前端小白,入门跟着这几个来源学习,感谢作者的分享,在其基础上,通过自己的理解,梳理出的知识点,或许有遗漏,或许有些理解是错误的,如有发现,欢迎指点下。
首先需要一个函数(工厂),然后在函数中创建具体对象。这种模式可以抽象创建具体对象的过程,这样子,我们想要创建对象,只需要调用函数,让属性值进厂即可。
JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。
如果html文档中用id属性为元素命名。并且如果 window对象没有此名字的属性,则window对象会赋予一个属性,其名字为id属性的值,其值指向该元素
JavaScript是一种弱类型脚本语言,具有动态类型。这意味着JavaScript中的变量可以容纳不同类型的数据,并且它们的类型可以在运行时更改。在本文中,我们将深入探讨JavaScript中的数据类型,包括原始数据类型和引用数据类型,以及如何使用它们创建变量和操作数据。
window是一个全局对象,其实就是相当于那个对象调用这个函数,那么这个函数里面的隐式参数this就是当前调用这个函数的对象
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。这里就讲一些常见会带来内存泄露的原因。
我们平时常说的变量的作用域(scope),它全名应该叫「词法作用域」(lexical scope)。它是程序中可以访问变量的区域,即作用域控制着变量和函数的可见性和生命周期。
线程:线程是进程中具体办事的,想同时办多件事,就需要开辟多个线程(一个进程中包含多个线程)
执行上下文:指当前执行环境中的变量、函数声明,参数(arguments),作用域链,this等信息。分为全局执行上下文、函数执行上下文,其区别在于全局执行上下文只有一个,函数执行上下文在每次调用函数时候会创建一个新的函数执行上下文。
上一节我们讨论了执行上下文,那么在上下文中到底有什么内容,为什么它会和作用域链扯上关系,JS 解释器又是怎么找到我们声明的函数和变量,看完这一节,相信大家就不会再迷惑了。
this可以说是前端开发中比较常见的一个关键字,由于其指向是在运行时才确定,所以大家在开发中判断其方向时也会很模糊,今天就把this的指向问题拆开了,揉碎了,好好讲一讲。
说到JavaScript脚本,iOS开发者都会想到一个名叫JavaScriptCore的框架。这个框架的确十分强大,其中封装了一套JavaScript运行环境以及Native与JS数据类型之间的转换桥梁。本篇博客主要讨论如何使用此框架来在iOS应用中运行JavaScript脚本。
let命令 基本用法 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 'use strict'; { let a = 10; var b = 1; } a // 报错,ReferenceError: a is not defined. b // 1 不存在变量提升 let不像var那样会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。 'use strict'; console.log(foo); // 输出unde
JavaScript 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发 Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。 ♞ 1992年,Nombase 公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase ♞ 1995年,Netscape(网景) 公司,开发了一门客户端脚本语言:LiveScript。后来,请来 SUN 公司的专家,修改 LiveScript,命名为 JavaScript ♞ 1996年,微软抄袭 JavaScript 开发出 JScript 语言 ♞ 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,统一了所有客户端脚本语言的编码方式。
在JavaScript中,this 这个特殊的变量是相对比较复杂的,因为this不仅仅用在面向对象环境中,在其他任何地方也是可用的。
声明:本文是对美团技术团队唐笛《深入理解JSCore》一文的学习笔记,如要查看原文,请点击文末的“阅读原文”。
执行上下文为我们的可执行代码块提供了执行前的必要准备工作,如变量对象的定义、作用域链的扩展、提供调用者的对象引用等信息。
这个函数叫做匿名函数 — 它没有函数名! 它也不会自己做任何事情。 你通常使用匿名函数以及事件处理程序, 例如,如果单击相关按钮,以下操作将在函数内运行代码:
在 HTML 中默认的全局对象是 HTML 页面本身,所以函数是属于 HTML 页面。
模块是任何健壮的应用程序体系结构不可或缺的一部分,特点是有助于保持应用项目的代码单元既能清晰地分离又有组织,下面我们来看看各种不同的模块模式解决方案。
自从我 对C语言有过编译原理上的实践经验 && 对js和浏览器的表层(非chromium源码级我都统称表层) 有了更深的理解后,对于JS及其相关的很多事物愈发的产生了疑惑,比如"执行上下文"、"渲染流水线"、"浏览器多进程到底怎么玩的(ipc等)"等等,网上现有的理论(包括ES官方),已经不能解决我产生的各种疑惑了。我需要的是chromium源码级的解释!!
HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,这些属性可插入 HTML 标签来定义事件动作。
立即执行函数常用于第三方库,它可以用来隔离变量作用域,很多第三方库都会存在大量的变量和函数,在ES5环境下为了避免变量污染,开发者想到的解决办法就是使用立即执行函数。
与其他语言相比,this关键字在JavaScript中的行为略有不同。JavaScript中,this关键字引用其所属的对象。根据使用位置,它具有不同的值。
众所周知,计算机是有内存的,计算机会在内存中开辟一块空间去供js执行,这个空间我们称之为执行栈
在 Node.js 中,全局对象指的是可以在任何地方访问的对象。这些对象提供了许多有用的功能和属性,可以帮助我们在 Node.js 环境下进行开发。本文将详细介绍一些常见的 Node.js 全局对象及其使用。
英文 | http://dmitrysoshnikov.com/ecmascript/chapter-2-variable-object/
今天我们来看一个进入 statge3 的新的 JavaScript 提案:ShadowRealm API。
要想完全明白JavaScript的闭包,要先明白js中的一些基础原理,然后我再给出一些例子来讲解闭包。 在执行JavaScript时会创建一个执行环境(excution context),执行环境定义了变量或函数可以访问的其他数据。每个执行环境都有一个与之关联的变量对象(variable object 有些地方叫域对象(Scope object)),在执行环境中定义的所有变量和函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。 全局执行环境是最外层的
Node.js 太火了,火到几乎所有前端工程师都想学,几乎所有后端工程师也想学。一说到 Node.js,我们马上就会想到“异步”、“事件驱动”、“非阻塞”、“性能优良”这几个特点,但是你真的理解这些词的含义吗?这篇教程将带你快速入门 Node.js,为后续的前端学习或是 Node.js 进阶打下坚实的基础。
NPM酷库,每天两分钟,了解一个流行NPM库。 今天我们要了解的库是 vm2,这是一个Node.js 官方 vm 库的替代品,主要解决了安全问题。 不安全的vm 在Node.js官方标准库中有一个vm库,用来在V8虚拟机环境中编译执行JS代码。通常,我们用vm库来实现一个沙箱,在代码主程序之外执行额外的JS脚本。 有时,我们需要vm虚拟机来执行不受信任的代码,这些代码可能是由用户提交的,比如在脉冲云接口文档管理中,允许用户提交Mock.js脚本生成模拟接口数据。而Node.js标准库中的vm是不安全的,
How JavaScript works: memory management + how to handle 4 common memory leaks
call、apply和bind都是JavaScript中Function对象的原型方法,它们的作用主要是改变函数的执行上下文(即this的值)以及传递参数。
在ES5中,变量声明只有var和function以及隐式声明三种,在ES6中则增加了let,const,import和class四种,以下来介绍着七种变量的声明。
4.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数
早高峰的电梯,挤满了人,先进去的要想出来,后进去的是不是要先出来让路?就是这个道理吧。。。
即使新ECMAScript 2020(ES2020)语言规范的最终批准已经在六月,您也可以立即开始尝试一下!
普通的内置对象与基本包装类型的主要区别就是对象的生命期,使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中,而自动创建的基本包装类型的对象,则只是存在于一行代码的执行瞬间,然后立即被立即销毁。这意味着我们不能再运行时为基本包装类型值添加属性和方法。
领取专属 10元无门槛券
手把手带您无忧上云