JS
文章平均质量分 75
小白啥时候能进阶成功
理解乃记忆之母,重复乃记忆之父。一遍不懂看两遍,两遍不懂看三遍,书读百遍其义自见。
展开
-
mpegts开源项目预研
package-lock.json 的作用是锁定依赖结构,即只要你目录下有 package-lock.json 文件,那么你每次执行 npm install 后生成的 node_modules 目录结构一定是完全相同的。使用建议: 开发系统应用时,建议把 package-lock.json 文件提交到代码版本仓库,从而保证所有团队开发者以及 CI 环节可以在执行 npm install 时安装的依赖版本都是一致的。npm 的版本更新,解决了旧版本中node_mudules。原创 2023-03-13 10:01:46 · 527 阅读 · 0 评论 -
SharedArrayBuffer和Atomics
Web 技术继续向前演进的其中一个使命: 让大型游戏引擎和3A 游戏在 Web 上运行,在技术上成为可能。WebAssembly,OffscreenCanvas,SharedArrayBuffer 等技术的发展使其逐渐成为可能。原创 2023-03-07 16:36:33 · 673 阅读 · 0 评论 -
phpStudy服务
1. 安装路径不能包含“中文”或者“空格”,否则会报错(例如错误提示:Can't change dir to 'G:\\x65b0\x5efa\x6587\)保证安装路径是纯净的,安装路径下不能有已安装的V8版本,若重新安装,请选择其它路径。原创 2023-02-17 14:28:28 · 491 阅读 · 0 评论 -
微信小程序
小程序开发原创 2023-02-03 16:29:29 · 820 阅读 · 0 评论 -
WebGL
效果较差:较于桌面开发API:Direct3D、OpenGL、UE、Unity。开发成本:熟悉并掌握一定的数据知识,例如:线性代数。硬件要求:开发及部署系统硬件要求较高,尤其GPU。原创 2022-12-28 19:13:01 · 2246 阅读 · 4 评论 -
File、Blob、FileReader、ArrayBuffer、Base64
TypeArray视图和DataView视图的区别主要是字节序,前者的数组成员都是同一个数据类型,后者的数组成员可以是不同的数据类型。array:由ArrayBuffer、ArrayBufferView、Blob、DOMString等对象构成的,将会被放进Blob;本身就是一个黑盒,不能直接读写所存储的数据,需要借助以下视图对象来读写。Blob全称为binary large object ,即二进制大对象。blob对象本质上是js中的一个。Blob对象内置了slice()方法用来将blob对象分片。原创 2022-11-13 17:35:23 · 378 阅读 · 0 评论 -
webpack压缩和webpack-cli的作用
方式二eval混淆,也是最早JS出现的混淆加密,据说第一天就被破解,修改一下代码,alert一下就可以破解了。其实JS加密(混淆)是相对于可读性而言的,其实真正有意义的就是压缩型混淆uglify这一类,即可减少体重,也可减少可读性。没有永恒的黑,也没有永恒的白。方式三也不能排除部分商业源代码使用hash类型混淆源代码,比如miniui使用的JSA加密,fundebug使用的javascript-obfuscator。方式一压缩类型是目前前端性能优化的常用工具,以uglify为代表。......原创 2022-07-20 14:45:52 · 2783 阅读 · 0 评论 -
事件循环(消息机制)、宏任务、微任务
可以判定使用什么函数去处理代码:例如,你需要在dom渲染之前做好逻辑处理,等待dom渲染完毕后,展示于页面,此时必用微任务方式处理;反之需要获取dom的操作就需要采用宏任务的相关代码去包裹处理函数,才不至于获取不到元素而报错!!!宏任务:script (可以理解为外层同步代码);setTimeout/setInterval3;UI rendering/UI事件;postMessage,MessageChannel5. setImmediate,I/O(Node.js)微任务:Promise、async/aw原创 2022-07-12 10:20:38 · 742 阅读 · 0 评论 -
HTML学习(标签)
网页:构成网站的基本元素,它通常由图片,链接,文字,声音,视频等元素组成。HTML:超文本标记语言。不是一种编程语言,而是一种标记语言。标记语言是一套标记标签。超文本:它可以加入图片,声音,动画,多媒体等内容(超越了文本限制)。它可以从一个文件跳转到另一个文件,与世界各地主机的文件链接(超级链接文本)。前端人员开发代码---->浏览器显示代码(解析,渲染)---->生成最后的Web页面。常用的浏览器:IE(Edge)、Firefox、Chrome、Safari和Opera等。平时称为五大浏览器。(360浏览原创 2022-07-06 11:01:53 · 419 阅读 · 0 评论 -
ES6学习-函数(严格模式,高阶函数,闭包)
可以应用到整个脚本或个别函数中。2、函数中的变化JavaScript | MDN高阶函数是对其他函数进行操作的函数,它接收函数作为参数,或将函数作为返回值输出。函数也是一种数据类型,同样可以作为参数,传递给另外一个参数使用。4、闭包1、闭包定义定义:闭包是指有权访问另一个函数作用域中变量的函数。(闭包是一种现象) F12后查看是否有闭包 closure即闭包。在fn外面的作用域访问fn内部的局部变量。应用一:...原创 2022-07-12 10:49:21 · 243 阅读 · 0 评论 -
ES6中this指向(ccall/bind/apply)
函数也属于对象。3、this的指向问题总结:原创 2022-07-05 15:05:31 · 324 阅读 · 0 评论 -
ES6中的原型对象
对象的原型(__proto__)->Star原型对象;Star原型对象的原型(__proto__)->Object原型对象;Object原型对象的原型(__proto__)->null; 按照“原型链”查找;先看对象上是否有该成员;如果对象成员没有,则去Star原型对象上查找;Star原型对象没有,去Object原型(null)上查找......,没有则返回undefined;如果对象上有,原型对象上也有,则返回对象上的成员(就近原则);原型对象中this的指向:谁调用原型对象中的函数,this就指向谁(实原创 2022-07-04 15:46:14 · 410 阅读 · 0 评论 -
ES类和对象、原型
Web1.0时代的网页制作:网页主要是静态页面,无法和服务器进行交互。网站开发工具(网页三剑客):DreamWeaver、FireWorks、Flash。1、Class关键字;2、constructor构造函数;3、方法前不需要function关键字;4、方法之间不需要逗号5、extends继承和super()关键字:extends表示继承(C中的public)6、super关键字: 在子类的构造器中,通过调用super(),则向父类的构造函数中传递参数。7、super关键字:通过使用“supe原创 2022-06-30 19:08:46 · 442 阅读 · 0 评论 -
FLV封装格式的解析(profile和level)
FLV(Flash Video)是Adobe公司设计开发的一种流行的流媒体格式,由于其视频文件体积轻巧、封装简单等特点,使其很适合在互联网上进行应用。此外,FLV可以使用Flash Player进行播放,而Flash Player插件已经安装在全世界绝大部分浏览器上,这使得通过网页播放FLV视频十分容易。目前主流的视频网站如优酷网,土豆网,乐视网等网站无一例外地使用了FLV格式。FLV封装格式的文件后缀通常为“.flv”。 总体上看,FLV包括文件头(File Header)和文件体(File Bod.原创 2022-02-15 16:47:19 · 357 阅读 · 0 评论 -
JavaScript和WASM之间传递数据HEAP32
一、传递数据原理1、Module对象Module对象:Module对象是一个方法容器,通过该对象可以实现操作内存,与浏览器进行交互,以及调用wasm模块对外暴露的方法。Module对象创建过程:使用fetch方法从远程加载一个标准的wasm模块文件,当模块加载完成后,再通过fetch api标准定义的用于处理响应数据的方法来将这次请求的响应数据转换成ArrayBuffer二进制数据形式。最后,使用这些二进制数据来填充Module对象中名为wasmBinary的属性。Module对象的使用:当原创 2022-02-15 09:30:28 · 246 阅读 · 0 评论 -
JavaScript中的Module语法
一、严格模式ES6的模块自动采用严格模式,不管有没有在模块头部加上“use strict”严格模式主要有以下限制:变量必须声明后再使用。 函数的参数不能有同名属性,否则报错。 不能使用with语句。 不能对只读属性赋值,否则报错。 不能使用前缀0表示八进制数,否则报错。 不能删除不可删除的属性,否则报错。 不能删除变量delete prop,会报错,只能删除属性delete global[prop]。 eval不会在它的外层作用域引入变量。 eval和arguments不能被重新原创 2022-02-15 10:19:08 · 406 阅读 · 0 评论 -
JavaScript中二进制数组的应用
大量的Web API用到了ArrayBuffer对象和它的视图对象。原创 2022-02-14 16:24:25 · 286 阅读 · 0 评论 -
ArrayBuffer和TypedArray
一、背景1、产生ArrayBuffer对象、TypeArray视图和DataView视图是JavaScript操作二进制数据的一个接口。这些对象早就存在,属于独立的规格(2011年2月发布),ES6将它们纳入了ECMAScript规格,并且增加了新的方法。它们都以数组的语法处理二进制数据,所以统称为二进制数组。这个接口的原始设计目的与WebGL项目有关,所谓WebGL,就是浏览器与显卡之间的通信接口,为了满足JavaScipt与显卡之间大量、实时的数据交换,它们之间的数据通信必须是二进制的,而不原创 2022-02-14 14:28:22 · 744 阅读 · 0 评论 -
JavaScript中Class的基本语法
1、初步认识ClassES6中的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰,更像面向对象编程的语法而已。案例一:function Point(x,y){ this.x = x; this.y = y;}Point.prototype.toString = function(){ return '('+this.x+','+this.y+')';}var p =new Point(1,2);原创 2022-02-12 13:58:27 · 1439 阅读 · 0 评论 -
JavaScript的用法
1.Js框架一般包括html,head,body三部分。<!DOCTYPE html><html><head>........</head><body>.......</body></html>2. 函数撰写时,需写在script里,才会被认为是函数。.getElementB...原创 2019-12-27 11:44:11 · 185 阅读 · 0 评论 -
js中 new,self和this的用法解释
一、对JS中new的理解1.JavaScript 中new 的机制实际上和面向类的语言完全不同。JavaScript 中的“构造函数”。在JavaScript 中,构造函数只是一些使用new 操作符时被调用的函数。它们并不会属于某个类,也不会实例化一个类。实际上,它们甚至都不能说是一种特殊的函数类型,它们只是被new 操作符调用的普通函数而已.2.重要但是非常细微的区别:实际上并不存在...原创 2020-01-04 11:17:02 · 1637 阅读 · 0 评论 -
JavaScript语法
JS详细教程:https://www.runoob.com/js/js-output.html1. JavaScript 使用关键字var来定义变量, 使用等号来为变量赋值var x, lengthx = 5length = 62.在 JavaScript 中,用分号来结束语句是可选的。a = 199b = 299c = a + b等同于 a = 199;...原创 2019-12-30 09:18:28 · 110 阅读 · 0 评论 -
使用”浮点型”注意事项
所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定。例如:针对这种情况,解决办法如下(*10再除以10)原创 2020-01-06 13:57:00 · 153 阅读 · 0 评论 -
web无插件的线程处理机制(Worker机制)
JavaScript运行在单线程环境中,加入Worker后即变成了多线程(一个Worker对应一个线程?),但是Woker线程不能访问浏览器的资源,只有主线程才可以访问浏览器的资源。所以在web中对setTimeout/setInterval、ajax和dom事件的异步处理一般依赖事件循环来实现。1.Web Worker是什么Web Worker是HTML5标准的一部分,这一规范定义了一套...原创 2020-02-18 17:16:56 · 397 阅读 · 0 评论 -
web无插件解码播放H264/H265
因为插件可以获得和桌面应用程序几乎一样的权限,安装完插件之后打开web时,web代码可以调用插件肆意的读写电脑本地数据。这几年微软、谷歌、苹果、Mozilla等各大浏览器厂商也意识到了浏览器插件的安全问题,开始在新发布的浏览器中限制第三方插件的使用。解码器选择:1. js解码HTML5播放项目描述:大概流程:利用websocket传输未解码数据,送入ffmpeg库解码,回调至上层...原创 2020-02-25 18:20:55 · 3794 阅读 · 0 评论 -
WebAssembly的安装和使用demo
https://blog.csdn.net/TurkeyCock/article/details/83317935转载 2020-03-18 11:48:28 · 478 阅读 · 0 评论 -
Emscript和llvm之间的关系
一、编译器的区别1. 编译器的选择(clang)C用clang C++用clang++ bc用emcc2.编译命令行c: clang test.c header.c -o name.exe c++: clang++ test.cpp header.cpp -o(output) name.exe bc: emcc --bind test.bc -o...原创 2020-03-19 17:03:44 · 1097 阅读 · 0 评论 -
webgl初探
初始化数据缓存:initBuffers()https://www.jianshu.com/p/f2854ba5faa8转载 2020-03-24 10:19:54 · 109 阅读 · 0 评论 -
Vue生命周期中mounted和created的区别
created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图.mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。如:数据初始化一般放到created里面,这样可以及早发请求获取数据,如果有依赖dom必须存在的情况,就放到mounted(){this.$nextTick(() => { /* co...原创 2020-03-26 12:03:40 · 1435 阅读 · 0 评论 -
web中的内存管理机制
https://www.jb51.net/article/164566.htm前言像C语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()用于分配内存和释放内存。 对于JavaScript来说,会在创建变量(对象,字符串等)时分配内存,并且在不再使用它们时“自动”释放内存,这个自动释放内存的过程称为垃圾回收。 自动垃圾回收机制的存在,让大多Javascri...原创 2020-02-23 10:48:42 · 383 阅读 · 0 评论 -
emcc生成wasm,wast,bc文件的方法
一、Emscripten实现把C/C++文件转成wasm,wast(wasm的可读形式),llvm字节码(bc格式),ll格式(llvm字节码的可读形式)的步骤。extern.cc文件extern "C" { int add(int x, int y) { int a=333; return x + y+ a; } int min(int x, int...原创 2020-03-19 16:05:56 · 2584 阅读 · 0 评论 -
JS中的splice(),shift(),slice(),pop(),push()
1. splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原数组。arrayObject.splice(index,howmany,item1,...,itemX);//该方法会改变原数组参数 描述 index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置 howmany 必需。要删除的项目数量。如果设...原创 2020-01-20 15:11:45 · 1117 阅读 · 0 评论 -
在webstorm2019中创建vue项目(安装vue时出新connect ECONNREFUSED )
一、安装webstorm、node.js、jdk二、安装淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org三、安装webpackcnpm install webpack -g四、安装vue-cli1.问题:使用webstorm创建node.js时,需要安装vue//全局安装n...原创 2020-03-17 11:48:00 · 1104 阅读 · 0 评论 -
windows下和linux 安装emscripten
1.下载emsdkgit clone https://github.com/emscripten-core/emsdk.git2.进入emsdk目录cd emsdk3.更新emsdk,确保是最新版emsdk update4.安装emsdk install latest报错(因为从谷歌中下载,cmd中命令形式可能链接不到吧)4.1解决方法:修改emsdk/emsdk....原创 2020-01-03 10:10:23 · 5514 阅读 · 2 评论 -
JS语言和C++语言的区别
1. 静态类型VS动态类型静态类型,编译的时候就能够知道每个变量的类型,编程的时候也需要给定类型,如C++中的整型int,浮点型float等。C、C++、Java都属于静态类型语言。 动态类型,运行的时候才知道每个变量的类型,编程的时候无需显示指定类型,如JavaScript中的var、PHP中的$。JavaScript、Ruby、Python都属于动态类型语言。 静态类型还是动态类型对语...原创 2020-02-10 15:49:42 · 3238 阅读 · 0 评论 -
JS发展历史
1.历史https://wangdoc.com/javascript/basic/grammar.html1.1 Node.js2009年Node.js 项目诞生,创始人为 Ryan Dahl,它标志着 JavaScript 可以用于服务器端编程,从此网站的前端和后端可以使用同一种语言开发。并且,Node.js 可以承受很大的并发流量,使得开发某些互联网大规模的实时应用变得容易。1.2 asm.js规格(一种规范)2012年,Mozilla 基金会提出asm.js规格。asm.js ..原创 2020-05-09 14:51:16 · 255 阅读 · 0 评论 -
JS调用JS函数的方式
https://cloud.tencent.com/developer/column/5236前端基础知识分享一、普通方式// 声明一个函数,并调用function func() { console.log("Hello World");}func();二、函数表达式// 使用函数的Lambda表达式定义函数,然后调用var func = function() ...原创 2020-05-09 14:52:16 · 442 阅读 · 0 评论 -
如何执行JS命令或文件
https://blog.csdn.net/qiansuike/article/details/91391209转载 2019-12-27 14:29:22 · 2175 阅读 · 0 评论 -
如何快速建立本地web服务器以及html在本地打开和用服务器打开的区别
访问服务器上的html文件是以http的协议方式去打开,有网络交互。 直接打开html文件是以file协议的方式去打开,没有网络交互。vue:要执行的命令--->运行时,①生成demo.html②搭建了服务(服务中将html中浏览器中的命令和底层进行了信息交互)③把服务开起来---->localhost:8080 ----->>>打开网页(信息交互)...原创 2020-03-19 14:41:59 · 10359 阅读 · 0 评论 -
在c++中调用JS函数
一、emscripten_run_script()最直接但较慢的方法是使用emscripten_run_script()。这样可以有效地从C / C ++运行指定的JavaScript代码test.cpp#include <emscripten.h>int main() { emscripten_run_script("alert('hi emscripten_run_scripten!')"); return 0;}使用emcc编译成htmlemcc te.原创 2020-05-19 15:40:41 · 8040 阅读 · 0 评论