大前端
大前端
楚游香
这个作者很懒,什么都没留下…
展开
-
微信小游戏和小程序的区别
微信小游戏在小程序的基础上提供了WebGL接口的封装,使渲染能力和性能有大幅度提升。和H5游戏相比小游戏 = H5游戏 + (微信社交能力、文件系统、工具链) - (DOM、BOM、CSS、EVAL)和小程序相比小游戏 = 小程序 + (渲染、文件系统、多线程) - (多页面、WXSS、WXML)...原创 2021-12-02 22:13:12 · 1180 阅读 · 0 评论 -
VSCode插件CodeRunner直接运行TypeScript
1 简介在VSCode中编写的TypeScript代码不能直接运行,需要先用tsc编译为JavaScript,然后才能运行。有什么方法能直接运行TypeScript呢?使用VSCode插件Code Runner就可以了。2 使用步骤首先确保拥有Node.js环境。2.1 全局安装ts-node模块npm install -g ts-node2.2 安装Code Runner插件在VSCode插件商店搜索Code Runner,安装。2.3 运行运行TypeScript代码有好几种方式。原创 2021-11-01 06:55:02 · 1380 阅读 · 0 评论 -
webpack打包报错:Error: Cannot find module ‘webpack-cli/bin/config-yargs‘
报错 Error: Cannot find module ‘webpack-cli/bin/config-yargs’ 的原因是当前的 webpack 5.x 和 webapck-cli 4.x 有冲突,解决办法是:1、卸载当前的 webpack-clinpm uninstall webpack-cli -D2、安装 webpack-cli 3.* 版本npm install webpack-cli@3 -D...原创 2020-12-17 08:17:38 · 652 阅读 · 1 评论 -
使用ESLint检查JavaScript或TypeScript代码
一、简介ESLint是一个JavaScript语法检查器,它可以根据预置或自定义的编码规范,自动检查代码语法,并输出检查结果,同时也支持TypeScript代码。二、安装2.1 VSCode安装 ESLint 插件VSCode插件栏搜索 eslint 安装;开启eslint:在首选项的用户设置里搜索 formatOnSave,勾选上;2.2 安装ESLint先确保你电脑已经安装了 node 和 npm。假设要检验的项目目录是 test,进入 test 目录。$ npm init$原创 2020-12-02 22:59:52 · 4748 阅读 · 0 评论 -
Pomelo开发笔记(三)-2.2.5版本LordOfPomelo安装报错的解决
Pomelo版本:2.2.5 官方demo之LordOfPomelo,下载源码后进入game-server目录,输入命令 npm install -d 安装第三方模块,报错误提示: npm ERR! not found: git npm ERR! npm ERR! Failed using git. npm ERR! This is most likely not a problem w原创 2018-01-10 09:36:51 · 870 阅读 · 0 评论 -
Pomelo开发笔记(二)-2.2.5版本运行Treasures报错的解决
Pomelo版本2.2.5,官方demo之Treasures,下载源码后进入web-server目录,先输入命令 npm install -d 安装第三方模块,之后运行会报错,错误提示是:TypeError: mime.lookup is not a function,web-server\node_modules\connect\lib\middleware\static.js:144。原因是m原创 2018-01-10 09:32:31 · 1524 阅读 · 0 评论 -
Pomelo开发笔记(一)-重要术语
gate服务器用来做前端/connector服务器的负载均衡。客户端先请求Gate服务器,然后Gate给客户端分配具体的Connector服务器。connector服务器1、接收客户端的连接请求,创建与客户端的连接,并维护客户端的Session信息; 2、接收客户端对后端的请求,按照用户配置的路由策略,将请求路由给后端服务器; 3、当后端服务器处理完请求或主动给客户端推送的时候原创 2018-01-10 09:31:16 · 393 阅读 · 0 评论 -
ES6中的ArrayBuffer对象
ArrayBuffer对象、TypedArray视图和DataView视图是JavaScript操作二进制数据的接口。简单说,ArrarBuffer代表原始的二进制数据,TypedArray视图用来读写简单类型的二进制数据,DataView视图用来读写复杂类型的二进制数据。例如,new uint8Array(data)代表新建一个操作二进制数据的TypedArray视图,真正的二进制数据还是保...原创 2019-04-20 23:57:45 · 1945 阅读 · 0 评论 -
用VSCode断点调试Node.js代码
VSCode是微软推出的一款开源免费的代码编辑器,不但好用而且功能强大,能直接调试Node.js代码,步骤如下。1、首先把Node.js代码放在一个目录下,然后用VSCode打开这个文件夹;注意:如果用VSCode直接打开代码文件,则后面点击“调试”按钮将会弹出错误提示:Please first open a folder in order to do advanced debug conf...原创 2019-02-24 17:48:29 · 4409 阅读 · 0 评论 -
ES6笔记-let和var的区别
let基本用法ES6新增了let命令,用来声明变量,用法类似于var,但它所声明的变量,只在let命令所在的代码块内有效。{ let a = 10; var b = 20;}console.log(a) // Errorconsole.log(b) // 20对于for循环的计数器,就很适合使用let命令。for (let i = 0; i < 10; i++...原创 2018-11-02 20:04:55 · 167 阅读 · 0 评论 -
Node.js开发笔记(2)-编写多人在线实时聊天室
在Mike和Marc合著的《Node.js实战》书中提供了一个聊天室demo,但书中所用Node版本太旧,代码已不能运行。本示例代码基于Node.js当前最新版本6.11.0修改而成,代码地址:https://github.com/foupwang/chatrooms代码运行方法1、下载代码到本地,进入根目录,先安装第三方模块,命令:npm install 2、启动服务器,命令:n原创 2018-01-25 09:37:34 · 304 阅读 · 0 评论 -
Node.js开发笔记(1)-常用命令
npm常用命令npm init在当前目录引导创建一个package.json文件。npm install根据当前目录下package.json中定义的dependencies配置安装所有的依赖包。npm install 安装package。npm install –save安装package,并添加到dependencies配置。npm i原创 2018-01-24 09:18:59 · 231 阅读 · 0 评论 -
ES6入门教程笔记(10)-Set和Map
1. Set基本用法ES6新增了Set,它类似于数组,但是成员的值不会重复,都是唯一的。const s = new Set();[1, 2, 3, 4, 3, 2, 1].forEach(x =&gt; s.add(x));for (let i of s) { console.log(i);}// 1, 2, 3, 4上面代码循环向Set结构加入成员,结果表明不会添加重...原创 2019-03-06 23:06:32 · 840 阅读 · 0 评论 -
ES6入门教程笔记(7)-箭头函数
箭头函数基本用法ES6允许使用“箭头”(=&amp;gt;)定义函数。// 箭头函数let f = () =&amp;gt; 5;// ES5let f = function() { return 5;};箭头函数用圆括号代表参数部分,如果代码部分多于一条语句,就用大括号括起来。// 箭头函数let sum = (n1, n2) =&amp;gt; { return n1 + n2; }/...原创 2019-02-19 23:25:17 · 612 阅读 · 0 评论 -
ES6入门教程笔记(9)-对象的扩展
ES6对对象的扩展非常多,本文只介绍自己感兴趣的若干,需要完整的请阅读文末原文。属性的简洁表示法ES6允许直接写入变量和方法,作为对象的属性和方法。这种写法更加简洁。let x = 1;let name = 'root';// ES5let obj = { x:x, name:name }; // { x:1, name:"root"}// ES6let obj2 = { x,...原创 2019-02-28 23:27:31 · 384 阅读 · 0 评论 -
ES6入门教程笔记(8)-数组的扩展
ES6对数组的扩展非常多,本文只介绍自己感兴趣的若干,需要完整的请阅读文末的原文。flat(), flatMap()数组的成员可能还是数组,Array.prototype.flat()可以将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新的数组。[1, 2, [3, 4]].flat() // [1, 2, 3, 4]flat()默认只“拉平”一层,它的参数代表想要拉平的层数,默认为...原创 2019-02-28 10:48:58 · 192 阅读 · 0 评论 -
ES6入门教程笔记(6)-函数的扩展
1 函数参数的默认值基本用法ES6之前,函数参数不能指定默认值,只能用变通的方法。function print(x, y) { y = y || 'World'; console.log(x, y);}print('Hello') // "Hello World"print('Hello', 'Gamer') // "Hello Gamer"print('Hello...原创 2019-01-30 23:27:18 · 832 阅读 · 0 评论 -
ES6入门教程笔记(4)-字符串的扩展
字符串的遍历器接口ES6为字符串添加了遍历器接口,使字符串可以被for...of循环遍历。for (let c of 'foo') { console.log(c);}// "f"// "o"// "o"这个遍历器最大的优点是可以识别大于0xFFFF的Unicode码点,而传统的for循环无法识别这样的码点。includes(),startsWith(),endsWith..原创 2019-01-21 23:10:23 · 811 阅读 · 0 评论 -
ES6入门教程笔记(5)-数值的扩展
Number.parseInt(), Number.parseFloat()ES6将全局方法parseInt()和parseFloat(),移植到Number对象上面,使用保持不变。// ES5的写法parseInt('12.34') // 12parseFloat('123.45#') // 123.45// ES6的写法Number.parseInt('12.34') // 12...原创 2019-01-25 23:01:56 · 931 阅读 · 1 评论 -
ES6入门教程笔记(1)-ECMAScript6简介
ECMAScript 6.0(简称ES6)是JavaScript语言的下一代标准,于2015年6月正式发布。它的目标,是使JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。1 ECMAScript和JavaScript的关系1996年11月,JavaScript的创造者Netscape公司,将JavaScript提交给标准化组织ECMA,希望这门语言成为国际标准。次年...原创 2019-01-09 22:52:52 · 804 阅读 · 0 评论 -
ES6入门教程笔记(3)-变量的解构赋值
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。1 数组的解构赋值基本用法以前,为变量赋值,只能直接指定值。let a = 1;let b = 2;let c = 3;现在,ES6可以这样写:let [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位置,给变量赋值。还支持嵌套数组...原创 2019-01-14 23:06:21 · 924 阅读 · 0 评论 -
JavaScript入门教程笔记(2)-关于null、undefined、true、false
1 null和undefined1.1 定义null和undefined都表示“没有”,实际上,将一个变量赋值为null或undefined,语法效果几乎一样。它们的区别是:null是一个表示“空”的对象,转为数值时为0;undefined是一个表示“未定义”的值,转为数值时为NaN。if (null) {} // falseif (undefined) {} // falsenull ...原创 2018-11-08 13:01:18 · 538 阅读 · 0 评论 -
JavaScript入门教程笔记(3)-数值
整数和浮点数JavaScript内部,所有数字都是以64位浮点数形式存储,即使整数也是如此。所以,1与1.0是相等的,是同一个数。1 === 1.0 // true也就是说,JavaScript 底层根本没有整数,所有数字都是小数(64位浮点数)。如果某些运算一定要整数,则JavaScript自动把64位浮点数转换为32位整数,再进行运算。由于浮点数不是精确的值,所以涉及小数的比较和运算要...原创 2018-11-10 23:28:01 · 984 阅读 · 0 评论 -
JavaScript入门教程笔记(4)-和数值相关的全局方法
parseInt()parseInt 的作用是将字符串转换为整数。parseInt('123') //123// 如果字符串开头有空格,将会自动去除空格。parseInt(' 123') // 123// 如果输入参数不是字符串,则先转为字符串再转换。parseInt(1.23) // 1等同于parseInt('1.23') // 1在字符串转为整数的过程中,是一个一个...原创 2018-11-13 23:05:17 · 858 阅读 · 0 评论 -
JavaScript入门教程笔记(5)-字符串
定义字符串就是放在单引号或双引号之中的若干个字符。单引号字符串的内部可以使用双引号,双引号字符串的内部可以使用单引号。'abc'&amp;amp;amp;amp;quot;abc&amp;amp;amp;amp;quot;'name = &amp;amp;amp;amp;quot;abc&amp;amp;amp;amp;quot;'&amp;amp;amp;amp;quot;It's ok&a原创 2018-11-15 22:51:36 · 185 阅读 · 0 评论 -
JavaScript入门教程笔记(6)-对象
定义对象(object)是JavaScript语言的核心概念,也是最重要的数据类型。简单说,对象就是一组“键值对”的集合,是一种无序的复合数据集合。var obj = { foo: 'Hello', bar: 'World'};上面代码中,大括号就定义了一个对象,它被赋值给变量obj,所以变量obj指向这个对象。该对象包含两个键值对(又称为两个“成员”),第一个键值对是 ...原创 2018-11-19 22:32:58 · 194 阅读 · 0 评论 -
JavaScript入门教程笔记(7)-函数
1 概述函数是一段可以反复调用的代码,它接受不同的输入参数,返回不同的值。1.1 函数的声明有两种常用的声明方法。(1) function命令function 命令声明的代码区块,就是一个函数。function 命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数,函数体放在大括号里面。function print(s) { console.log(s);}上面...原创 2018-11-23 09:03:18 · 200 阅读 · 0 评论 -
JavaScript入门教程笔记(8)-闭包函数和IIFE
1 闭包闭包(closure)是JavaScript语言的一大特色,也是一个难点。理解闭包,首先要理解变量作用域。作用域有两种:全局作用域和函数作用域。函数内部可以访问全局变量。var n = 999;function f() { console.log(n);}f(); // 999上面代码中,函数 f 可以读取全局变量 n。但是,函数外部不能访问函数内部的变量。fu...原创 2018-11-28 23:05:47 · 850 阅读 · 0 评论 -
JavaScript入门教程笔记(10)-运算符
1 概述JavaScript 提供了10种算术运算符,用来完成基本的算术运算。加法运算符:x + y减法运算符: x - y乘法运算符: x * y除法运算符:x / y指数运算符:x ** y余数运算符:x % y自增运算符:++ x 或者 x ++自减运算符:–x 或者 x–数值运算符: +x负数值运算符:-x这些运算符的使用方法和其它语言的差不多,本文只介绍几处有...原创 2018-12-08 12:37:19 · 210 阅读 · 0 评论 -
JavaScript入门教程笔记(1)-数据类型
JavaScript共有6种数据类型,分别是:数值 (number):整数和小数。字符串 (string):文本。布尔值 (boolean):true 和 false。undefined:表示“未定义”或“不存在”。null:表示空值。对象:各种值的集合。数值、字符串、布尔值这三种类型,合称为原始类型值,即它们是最基本的数据类型,不能再细分了。undefined 和 null ...原创 2018-11-07 12:50:41 · 193 阅读 · 0 评论 -
JavaScript入门教程笔记(13)-Object对象的相关方法
JavaScript为Object提供了很多方法,用来处理对象编程的相关操作。1 Object.getPrototypeOf()Object.getPrototypeOf 方法返回参数对象的原型,这是获取原型对象的标准方法。var Person = function() {};var p = new Person();Object.getPrototypeOf(p) === Person...原创 2018-12-26 22:46:45 · 966 阅读 · 1 评论 -
JavaScript入门教程笔记(18)-JSON对象
1 什么是JSONJSON(JavaScript Object Notation)是一种用于数据交换的文本格式,目的是取代繁琐笨重的XML格式。JSON格式提出后,被迅速接受,并成为各大网站交换数据的标准格式。JSON格式有两个显著优点:书写简单,一目了然;符合JavaScript原生语法,由解释引擎直接处理,无需额外解析代码。每个JSON对象就是一个值,可以是一个原始类型的值,也可...原创 2019-01-08 23:12:55 · 427 阅读 · 1 评论 -
ES6入门教程笔记(2)-let、const和var的区别
1 let命令ES6新增了let命令,用来声明变量。它的用法和var类似,但有以下几点区别:let声明的变量,只在所在的代码块内有效。let声明的变量,一定要在声明后才能使用,否则报错。不允许在相同作用域内,重复声明同一个变量。2 块级作用域ES5只有全局作用域和函数作用域,没有块级作用域。let实际上新增了块级作用域的概念,块作用域由 { } 包括,if语句和for语句里面的{...原创 2019-01-13 23:11:57 · 1057 阅读 · 0 评论 -
JavaScript入门教程笔记(16)-定时器
JavaScript中定时执行代码的功能,叫做定时器(timer),主要由setTimeout和setInterval两个函数完成。1 setTimeout()setTimeout函数用来指定某个函数或某段代码,在多少毫秒后执行。返回值是一个整数,表示定时器的ID,以后用来取消这个定时器。var timerId = setTimeout(func|code, delay);上面代码中,s...原创 2019-01-02 23:07:50 · 616 阅读 · 0 评论 -
JavaScript入门教程笔记(17)-正则表达式
JavaScript中正则表达式的功能由RegExp对象提供。1 概述正则表达式(Regular expression)是一种表达文本模式(即字符串结构)的方法,有点像是字符串的模板,常用来按照“指定模式”匹配文本。例如,可以用正则表达式定义好一个邮箱地址的模式,然后用它来检查某个字符串是否为有效的邮箱地址。新建正则表达式有两种方法。一种是使用字面量,以斜杠表示开始和结束。var reg ...原创 2019-01-06 23:19:43 · 919 阅读 · 0 评论 -
JavaScript入门教程笔记(15)-异步操作
1 单线程模型单线程模型是指,JavaScript只在一个线程上运行,同时只能执行一个任务。但是,这不是说JavaScript引擎只有一个线程,事实上,JavaScript引擎有多个线程,单个脚本只能在一个线程上运行(称为主线程),其它线程都是在后台配合。JavaScript之所以采用单线程,原因是不想让浏览器变得太复杂,因为多线程需要共享资源,且有可能互相修改,对于一种脚本语言来说,这太复...原创 2018-12-30 23:16:02 · 487 阅读 · 0 评论 -
JavaScript入门教程笔记(12)-对象的继承
大部分面向对象的编程语言,都是通过“类”(class)来实现对象的继承。而JavaScript语言不一样,是通过“原型对象”(prototype)来实现的,本文介绍JavaScript的原型链继承。ES6引入了class语法,基于class的继承将在后面再介绍。1 原型对象概述1.1 构造函数的缺点JavaScript通过构造函数生成新对象,构造函数内部可以定义对象的属性和方法。fu...原创 2018-12-24 22:57:55 · 703 阅读 · 2 评论 -
JavaScript入门教程笔记(11)-this关键字
1 定义this关键字是一个非常重要的语法点,不理解它的含义,大部分开发任务都很难完成。无论什么场合,this总是返回一个对象。简单说,this就是属性或方法“当前”所在的对象。var person = { name: 'mark', say: function() { return 'name: ' + this.name; }};person....原创 2018-12-18 22:45:09 · 749 阅读 · 1 评论 -
JavaScript入门教程笔记(14)-实例对象与 new 命令
1 对象是什么对象是单个实物的抽象。通常有一个模板表示共同特征,然后对象根据这个模板生成。典型的面向对象编程语言(比如C++和Java),都有“类”(class)这个概念。所谓“类”就是对象的模板,对象就是“类”的实例。但是JavaScript的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)。2 构造函数JavaScript使用构造函数...原创 2018-12-28 23:02:52 · 617 阅读 · 3 评论 -
JavaScript入门教程笔记(9)-数组
1 定义数组(array)是按次序排列的一组值。每个值的的位置都有编号(从0开始),整个数组用方括号表示。var arr = ['a', 'b', 'c'];数组在定义时赋值,也可以先定义后赋值。任何类型的数据,都可以放入数组。var arr = [ 'abc', {x: 1}, [1, 2, 3], function() {return true;}]...原创 2018-12-01 23:24:31 · 691 阅读 · 0 评论