| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 关于了不起的node.js将js进行到底的相关学习笔记 -> 正文阅读 |
|
[JavaScript知识库]关于了不起的node.js将js进行到底的相关学习笔记 |
node.js能够实现非服务端来搭建服务,说通俗一点它就是一个工具,工具就是用来使用的 node能够直接运行js文件 命令为node xxx.js 当要下载某个模块的时候可以直接使用npm install xxxx 一旦下载了模块后就会产生一个package.json 这是一个专门用于记载相关依赖的文件,如果删除掉node_moulds,可以直接使用npm install 当然也可以把自己构建的包发布上去npm供他人使用可以使用npm publish 通常安装相关的二进制包的时候都是直接安装到全局中的可以使用npm install -g express 游览npm仓库有两种方法,一种是命令行,一种是直接到官网上面寻找 npm search xxx相关的模块 找到相关模块后想打开游览相关知识的话可以使用 npm view xxxx 在游览器中this的值为全局对象,就是window对象
调用.call和apply可以改变this相关值
call 和apply的区别在于,call接受参数列表,而apply接受一个参数数组
方法能够改变自身的属性值,上面函数就是调用call修改了a参数的值 函数还能够查看其参数的数量 函数里面还有一种是自执行函数,自执行函数是一种机制,通过这种机制声明和调用一个匿名函数达到定义一个新的作用域 其特点可以立即执行,私有变量不被其他代码访问 函数也可以操作自己的属性通过 function.prototype.xxxx=xxxx 在prototype的函数内部,this并非像函数那样指向global对象而是指向该类创建的实例对象 在js的函数里面是可以重套属性和方法的,所以它类似于类,而且方法完成可以用来创建类
在js中可以直接写class,也可以直接写成继承的形式但也有另一种写法继承的方式
这样就可以进行继承 bind和call,carry等类似,但是这个只能传入一个类 可以使用_proto_使得定义继承链变得更加容易
存取器 可以通过存取器来进行动态定义属性_defineGetter_用于访问属性,设置属性可以使用_defineSetter_ (js方法的观察思考与总结,当在function定义相关属性时就会产生存取属性的方法),里面都有prototype 函数内部的定义无法被外部访问到 如果直接通过.的形式来进行设置某个函数的相关的值就是相当于类的静态属性,类的静态属性无法用实例来访问 综上所述完全可以将js中的函数当做是java里面的类,也可以作为普通的方法来进行使用,也就是说prototype是专门用于类的实例来着,在没有创建对象时就可以进行使用,创建出实例,实例相关的方法就可以进行覆盖 _proto_会指向父对象,这个可以理解为对象的原型部分,由于里面有contructor,如果表示继承的话可以从这方面直接入手,在js里面中函数也是对象,而protoype是可以让函数实例化的对象可以找到公用的属性和方法 global对象 在游览器中,全局对象指的是window对象,在window对象上定义的任何内容都可以被全局访问到 在node中有两个类似但却各自代表不同含义的对象 global:和window一样任何global对象上的属性都可以被全局访问到 process:所有全局上下文中的内容都在process对象中,在游览器中只有一个window对象,在node中也只有一个process对象,举例来说,在游览器中窗口的名字为window.name,类似的,在node中进程的名字为process.title 游览器中很多函数和工具虽然并非语言标准的一部分,但非常实用 另外有些api,人们还在讨论是否加入到语言标准中,不过node.js为了让node应用效率高就把它们加进来例如setTimeout 模块系统 当你引入第三方模块时,最好它们暴露一个全局变量 这样有可能导致多个模块对全局命名空间的污染及命名冲突问题 node内置了很多实用模块作为基础的工具集来帮助构建现代应用包括http,net,fs等等 抛弃采取一堆全局变量的方式,转而引入一个简单但却强大无比的模块系统,该模块系统有三个核心的全局对象require,module,exports 绝对和相对模块 这里的绝对模块是指node通过node_modules查找到的模块,或者node内置的如fs这样的模块 说白点就是通过下载模块或者是系统内置的模块就是所谓的绝对模块,绝对模块不需要提供所谓的路径,一旦识别到关键字就会自动进行加载,而相对模块将指向一个相对工作目录中的javascript文件,说得再明白点就是非官方的,私自定义的就是所谓的相对模块 暴露api 其实就是es6中的模块化,exports,这个是导出,导入为require 具体的写法如下
用最简单的语言概述就是在js文件里面如果要暴露什么东西就直接用exports.xx的形式进行暴露 exports就是所谓的module.exports 事件 node.js中的基础api之一就是eventEmitter,无论是在node还是在游览器中大量代码都依赖于所监听或者分发的事件
游览器负责处理事件相关的dom api主要包括addEventListener,removeEventListener以及dispatchEvent,它们还用到一系列从window到xmlHTTPRequest等的其他对象上,为此node暴露了EVENT emitterapi该api上定义了on,emit以及removelistener方法,它以process.eventemitter形式暴露出来
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:20:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |