JavaScript中 instanceof 的实现原理
一 定义 标准的MDN定义:用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 用简单通俗的话来说就是,判断左侧是否为右侧的实例化对象。 二 使用方法 使用格式为:a instanceof b。其中,左侧 a 为对象,右侧 b 必须为函数类型。 示例代码如下 ‘abc’ … 阅读更多 »JavaScript中 instanceof 的实现原理
一 定义 标准的MDN定义:用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 用简单通俗的话来说就是,判断左侧是否为右侧的实例化对象。 二 使用方法 使用格式为:a instanceof b。其中,左侧 a 为对象,右侧 b 必须为函数类型。 示例代码如下 ‘abc’ … 阅读更多 »JavaScript中 instanceof 的实现原理
Image是HTMLImageElement的封装类,或者说HTMLImageElement是Image的基类。在前端开发中,创建一个图像有时会使用如下代码。 let img = new Image(); … img.src = url; return img; 如果重写src的set操作,可使… 阅读更多 »如何修改Image或HTMLImageElement的src属性实现
一、简介 好的编码规范有助于我们写出清晰、明确、更容易维护的代码。 ESLint是一个JavaScript语法检查器,它可以根据预置或自定义的编码规范,自动检查代码语法,并输出检查结果,同时也支持TypeScript代码。 二、安装 先确保你电脑已经安装了 node 和 npm。 2.1 安装ESL… 阅读更多 »使用ESLint检查JavaScript或TypeScript代码
报错 Error: Cannot find module ‘webpack-cli/bin/config-yargs’ 的原因是当前的 webpack 5.x 和 webapck-cli 4.x 有冲突,解决办法是: 1、卸载当前的 webpack-cli npm uninstall webpack… 阅读更多 »解决webpack打包报错:Error: Cannot find module ‘webpack-cli/bin/config-yargs‘
javascript-obfuscator是一个免费的JavaScript代码混淆工具,它功能强大,可以把你的源代码变得“面目全非”,完全没有可读性。还具有部分防调试功能,给JavaScript代码多一层保护。 安装 它支持很多流行的前端打包工具,如Webpack、Gulp、Grunt等都有相应的插… 阅读更多 »混淆工具javascript-obfuscator使用简介
1、简介 UglifyJS是个包含JS解释器、代码最小化、压缩、美化的工具集,是前端开发打包的最常用工具之一。 CocosCreator引擎采用gulp管理构建流程,其中也使用UglifyJS来做代码的合并和压缩。 UglifyJS目前只能压缩JS代码,且只支持到ES5语法,尚不支持ES6。 2、安… 阅读更多 »前端打包工具UglifyJS使用入门
1. Set 基本用法 ES6新增了Set,它类似于数组,但是成员的值不会重复,都是唯一的。 const s = new Set(); [1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x)); for (let i of s) { console.log(i); }… 阅读更多 »ES6入门教程笔记(10)-Set和Map
ES6对对象的扩展非常多,本文只介绍自己感兴趣的若干,需要完整的请阅读文末原文。 属性的简洁表示法 ES6允许直接写入变量和方法,作为对象的属性和方法。这种写法更加简洁。 let x = 1; let name = ‘root’; // ES5 let obj = { x:x, name:name … 阅读更多 »ES6入门教程笔记(9)-对象的扩展
ES6对数组的扩展非常多,本文只介绍自己感兴趣的若干,需要完整的请阅读文末的原文。 flat() 数组的成员可能还是数组,Array.prototype.flat()可以将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新的数组。 [1, 2, [3, 4]].flat() // [1, 2, 3… 阅读更多 »ES6入门教程笔记(8)-数组的扩展
VSCode是微软推出的一款开源免费的代码编辑器,不但好用而且功能强大,能直接调试Node.js代码,步骤如下。 1、首先把Node.js代码放在一个目录下,然后用VSCode打开这个文件夹; 注意:如果用VSCode直接打开代码文件,则后面点击“调试”按钮将会弹出错误提示:Please first… 阅读更多 »用VSCode断点调试Node.js代码
基本用法 ES6允许使用“箭头”(=>)定义函数。 // 箭头函数 let f = () => 5; // ES5 let f = function() { return 5; }; 箭头函数用圆括号代表参数部分,如果代码部分多于一条语句,就用大括号括起来。 // 箭头函数 let sum = (n… 阅读更多 »ES6入门教程笔记(7)-箭头函数
1 函数参数的默认值 基本用法 ES6之前,函数参数不能指定默认值,只能用变通的方法。 function print(x, y) { y = y || ‘World’; console.log(x, y); } print(‘Hello’) // “Hello World” print(‘Hello… 阅读更多 »ES6入门教程笔记(6)-函数的扩展
Number.parseInt(), Number.parseFloat() ES6将全局方法parseInt()和parseFloat(),移植到Number对象上面,用法保持不变。 // ES5的写法 parseInt(‘12.34’) // 12 parseFloat(‘123.45#’) /… 阅读更多 »ES6入门教程笔记(5)-数值的扩展
字符串的遍历器接口 ES6为字符串添加了遍历器接口,使字符串可以被for…of循环遍历。 for (let c of ‘foo’) { console.log(c); } // “f” // “o” // “o” 这个遍历器最大的优点是可以识别大于0xFFFF的Unicode码点,而传统的for… 阅读更多 »ES6入门教程笔记(4)-字符串的扩展
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 1 数组的解构赋值 基本用法 以前,为变量赋值,只能直接指定值。 let a = 1; let b = 2; let c = 3; 现在,ES6可以这样写: let [a, b, c] = [… 阅读更多 »ES6入门教程笔记(3)-变量的解构赋值
1 let命令 ES6新增了let命令,用来声明变量。它的用法和var类似,但有以下几点区别: – let声明的变量,只在所在的代码块内有效。 – let声明的变量,一定要在声明后才能使用,否则报错。 – 不允许在相同作用域内,重复声明同一个变量。 2 块级作用域 ES5只有全局作用域和函数作用域,… 阅读更多 »ES6入门教程笔记(2)-let、const和var的区别
ECMAScript 6.0(简称ES6)是JavaScript语言的下一代标准,于2015年6月正式发布。它的目标,是使JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 1 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者… 阅读更多 »ES6入门教程笔记(1)-ECMAScript6简介
1 什么是JSON JSON(JavaScript Object Notation)是一种用于数据交换的文本格式,目的是取代繁琐笨重的XML格式。JSON格式提出后,被迅速接受,并成为各大网站交换数据的标准格式。 JSON格式有两个显著优点: 书写简单,一目了然; 符合JavaScript原生语法,… 阅读更多 »JavaScript入门教程笔记(18)-JSON对象
JavaScript中正则表达式的功能由RegExp对象提供。 1 概述 正则表达式(Regular expression)是一种表达文本模式(即字符串结构)的方法,有点像是字符串的模板,常用来按照“指定模式”匹配文本。例如,可以用正则表达式定义好一个邮箱地址的模式,然后用它来检查某个字符串是否为有… 阅读更多 »JavaScript入门教程笔记(17)-正则表达式
JavaScript中定时执行代码的功能,叫做定时器(timer),主要有setTimeout和setInterval两个方法。 1 setTimeout() setTimeout方法用来指定某个函数或某段代码,在多少毫秒后执行。它返回一个整数,表示定时器的ID,可以用来取消这个定时器。 var t… 阅读更多 »JavaScript入门教程笔记(16)-定时器