首页 > 编程知识 正文

js高级编程题(js经典编程100题)

时间:2023-11-29 12:18:48 阅读:310199 作者:GVWI

本文目录一览:

  • 1、我觉得javascript很难理解,很难概括,郁闷呐~~
  • 2、JavaScript的window.Open()参数问题
  • 3、javascript闭包问题,闭包只能取的包含函数中任何变量的最后一个值
  • 4、在javascript中,为什么“true”==true的结果是false?
  • 5、Node.js高级编程

我觉得javascript很难理解,很难概括,郁闷呐~~

对于JS一些基于类或对象的知识,建议去看Javascript高级程序设计,我看了之后觉得很有帮助.

原型换个说法,可以理解为"后绑定",即类定义完后,为该类添加新的属性或修改该类的属性,

并且原型可以更改JS内置的类,比如String:

String.prototype.trim = function(){

//去除左右空格

}

这样就为所有的字符串添加了一个trim方法,调用:" 字符串 ".trim()即可

个人学习建议,将javascript高级程序设计的例子自己手写并运行一遍,你就会有比较深刻的感觉了...

至于对做J2EE开发或是其它语言的开发没有太多关系,因为JS是客户端解释执行的,而JAVA等其它语言是服务器端执行的.

JavaScript的window.Open()参数问题

_blank 表示新开一个窗口,_parent表示父框架窗口,_self表示覆盖该窗口,xxx表示覆盖名字为xxx的窗口(每个窗口都可以给他命名)

javascript闭包问题,闭包只能取的包含函数中任何变量的最后一个值

就给for()里面的循环变量i都都已参数的 形式传进去 就ok了 (function(){})(i)

在javascript中,为什么“true”==true的结果是false?

这属于js语言的语法范畴

有些高级编程语言 会默认 字符串true 和 1 还有数字 1 为真

js中只 默认字符串1 和数字1为真 而字符串ture不会认为是真

所以判断是假

Node.js高级编程

Nodejs可以做什么

Natives modules

Nodejs更适用于IO密集型高并发请求

使用JS实现高效可伸缩的高性能Web服务

常用api

Buffer缓冲区,Buffer让JavaScript 可以操作二进制

IO行为操作的就是二进制数据

流操作配合管道实现数据分段传输

Nodejs中Buffer是一片内存空间

自定义Buffer之split

实现对Buffer拆分

FS是内置的核心模块,提供文件系统操作的API

文件读写与拷贝操作

文件操作API

文件打开与关闭

readFile,writeFile将文件一次性读取与写入,对于大体积的文件不合理。需要一种边读边写的操作方式

大文件读写操作

文件拷贝自定义实现

优化处理

promise写法

CommonJS规范主要应用于Nodejs

CommonJS规范起初是为了弥补JS语言模块化缺陷

CommonJS规范定义模块的加载是同步完成

Nodejs与CommonJS

模块分类

加载流程

缓存优先原则

nodejs事件管理 通过EventEmitter类实现事件统一管理

events与EventEmitter

定义对象间一对多的依赖关系

订阅者将想要订阅的事件监听注册在调度中心,事件被触发的时候,发布者将事件发布在调度中心,之后调度中心统一调度之前订阅者注册的事件

发布订阅要素

完整事件环执行顺序

在浏览器下有两个任务队列,宏任务,微任务

在nodejs中有六个事件队列。

Nodejs诞生之初就是为了提高IO性能

文件操作系统和网络模块实现了流接口

Nodejs中的流就是处理流式数据的抽象接口

流处理数据的优势

Nodejs内置了stream,它实现了流操作对象

nodejs中流的分类

可写流

用于消费数据的流

自定义可写流

可写流数据

自定义双工流

自定义转换流(中间可以对数据进行转换操作,可读与可写流之间是打通的)

nodejs的stream已经实现了可以保证数据平滑流动的背压机制(pipe方法)

文件读取速度大于写入速度,缓存大小有限。可能会导致内存溢出,GC频繁调用,其它进程变慢

writeStream文件可写流简易实现

Net模块实现了底层通信接口

通信过程

http静态服务实现httpServer

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。