随笔分类 -  javascript

上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页
摘要:概述 <canvas>元素用于生成图像。它本身就像一个画布,JavaScript 通过操作它的 API,在上面生成图像。它的底层是一个个像素,基本上<canvas>是一个可以用 JavaScript 操作的位图(bitmap)。 它与 SVG 图像的区别在于,<canvas>是脚本调用各种方法生成图 阅读全文
posted @ 2020-10-20 17:07 浅笑·
摘要:最初使用回调函数 ​ 由于最初j s官方没有明确的规范,各种第三方库中封装的异步函数中传的回调函数中的参数没有明确的规范, 没有明确各个参数的意义, 不便于使用。 ​ 但是node中有明确的规范 ​ node中的的回调模式: 1. 所有回调函数必须有两个参数,第一个参数表示错误,第二个参数表示结果2 阅读全文
posted @ 2020-10-20 17:04 浅笑·
摘要:es6新增了一种从数组或者对象中获取指定元素的方式,这种方式就是我们今天要说的解构。 先来说说数组的解构: 在有解构之前呢,我们获取数组中的指定元素通常是根据索引去做的: const arr = [1, 2, 3]; const a = arr[1]; 有了解构之后呢,我们便可以使用如下方式快速的去 阅读全文
posted @ 2020-10-20 17:03 浅笑·
摘要:介绍 JavaScript 是一个强大的面向对象编程语言,但是,并不像传统的编程语言,它采用一个以原型为基础的OOP模型,致使它的语法让大多数开发人员看不懂。另外,JavaScript 也把函数作为首要的对象,这可能会给不够熟悉这门语言的开发人员造成更大的困惑。那就是我们决定放在前面作为一个简短前言 阅读全文
posted @ 2020-10-20 17:02 浅笑·
摘要:在 TypeScript 中使用联合类型时,往往会碰到这种尴尬的情况: interface Bird { // 独有方法 fly(); // 共有方法 layEggs(); } interface Fish { // 独有方法 swim(); // 共有方法 layEggs(); } functio 阅读全文
posted @ 2020-10-20 17:01 浅笑·
摘要:从浏览器控制台到运行 Node.js 的终端,我们到处都会看到错误。本文的重点是概述我们在 js 开发过程中可能遇到的错误类型。 提示:良好的错误提示会导致快速而无痛的发展经历与缓慢而痛苦的发展经历之间的区别。在编写可重用的代码时,请确保自己在编写清晰易懂的错误处理代码。 1. RangeError 阅读全文
posted @ 2020-10-20 16:59 浅笑·
摘要:表单校验 Web项目中,登录,注册等等功能都需要表单提交,当把用户的数据提交给后台之前,前端一般要做一些力所能及的校验,比如是否填写,填写的长度,密码是否符合规范等等,前端校验可以避免提交不合规范的表单。 假如我们有一个表单,校验逻辑如下: 用户名不为空 密码长度不低于6位 手机号符合格式 未使用策 阅读全文
posted @ 2020-10-20 16:58 浅笑·
摘要:Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。 node单线程实现高并发原理 众所周知nodejs是单线程 阅读全文
posted @ 2020-10-20 16:57 浅笑·
摘要:全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性。 在nodejs中能够直接访问到的对象通常都是global的属性,如console、 process等 全局对象与全局变量 global最根本的作用是作为全局变量的 阅读全文
posted @ 2020-10-20 16:55 浅笑·
摘要:查找编程代码中的错误被称为代码调试。调试并不简单。但幸运地是,所有现代浏览器都有内置的调试器。内置的调试器可打开或关闭,强制将错误报告给用户。 通过调试器,您也可以设置断点(代码执行被中断的位置),并在代码执行时检查变量。通常通过 F12 键启动浏览器中的调试器,然后在调试器菜单中选择“控制台”。 阅读全文
posted @ 2020-10-20 16:53 浅笑·
摘要:事件循环 三个概念 调用栈,先进后出 宏任务队列(存放宏任务的,队列先进先出) 微任务队列 异步任务又分为宏任务和微任务 宏任务,macrotask,也叫tasks setTimeout setInterval setImmediate (Node独有) requestAnimationFrame 阅读全文
posted @ 2020-10-20 16:51 浅笑·
摘要:一、浅拷贝 1、Object.assign(target,source,source...) a、可支持多个对象复制 b、如果source和target属性相同 source会复制target的属性 c、target只能为Object对象 var obj = {a:1,b:2} undefined 阅读全文
posted @ 2020-10-20 16:49 浅笑·
摘要:带有if的代码简化 function validation(customer) { if (!customer.email) { return error('email is require') } else if (!customer.login) { return error('login is 阅读全文
posted @ 2020-10-20 16:48 浅笑·
摘要:一、filter() filter用于对数组进行过滤。 它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。 注意:filter()不会对空数组进行检测、不会改变原始数组 Array.filter(function(currentValue, indedx, arr), this 阅读全文
posted @ 2020-10-15 17:54 浅笑·
摘要:canvas有一个非常常用的方法canvas.toDataURL(),它会将canvas转化为data URL的格式。通常情况下这个data URL的类型为image。看看下面的例子: <canvas id="canvas" height="2" width="2"></canvas> var ca 阅读全文
posted @ 2020-10-15 17:52 浅笑·
摘要:一、字面量方式 var obj = { name: 'mm', age: 18, sayName: function() { console.log(this.name); } } 问题:创建多个对象时会造成代码冗余,很占内存空间。 二、工厂模式 function createToy(name) { 阅读全文
posted @ 2020-10-15 17:50 浅笑·
摘要:作用: 通过指定函数对数组进行处理,并将处理后的结果以新数组的形式返回 注意点: 不会改变原数组,只是将处理后的结果以新数组的形式返回 参数: 该方法可以接收两个参数 第一个参数是函数,数组中的每个元素都会执行该函数,并且是必须要传的 传入函数的三个参数 currentValue 为当前元素的值 必 阅读全文
posted @ 2020-10-15 17:49 浅笑·
摘要:我的意思是,对于刚开始使用这种语言和他语言(例如 C++ 或 C#)的开发人员来说,JavaScript 可能会很奇怪。 某些语言可能会让你大吃一惊 在本文中,我们将看到 5 个例子,并让你能够在几分钟的时间内读完。 数字分隔符 以下面的代码为例: const number1 = 2_0_0_0; 阅读全文
posted @ 2020-10-15 17:48 浅笑·
摘要:这些年来,ES6 将 js 的可用性提升到一个新的水平时: 箭头函数、类等等,这些都很棒。 箭头函数是最有价值的新功能之一,有很多好文章描述了它的上下文透明性和简短的语法。 但每个事务都有两面。通常,新特性会带来一些混乱,其中之一就是箭头函数被误导了。本文将介绍一些场景,在这些场景中,你应该绕过箭头 阅读全文
posted @ 2020-10-15 17:47 浅笑·
摘要:在 JavaScript 中,你可以通过多种方式去定义函数。 第一种常用的方法是使用关键字 function: // 函数声明 function greet(who) { return `Hello, ${who}!`; } // 函数表达式 const greet = function(who) 阅读全文
posted @ 2020-10-15 17:45 浅笑·

上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页