JavaScrip
文章平均质量分 65
学习
gxhlh
智慧的获取,能力的提升,创造力的领悟,是基于长期的投资回报周期。
展开
-
ESC/POS图片打印指令
学习ESC/POS图片指令,使用JavaScript 实现蓝牙打印图片原创 2024-10-24 23:06:58 · 923 阅读 · 0 评论 -
forEach() 和 map() 的区别
最常用于迭代的两个方法是 Array.prototype.map() 和 Array.prototype.forEach(),对新手来说搞清它们的区别还是很有必要的原创 2023-02-28 18:19:53 · 324 阅读 · 0 评论 -
JavaScript一些单行代码技巧
一些小技巧,记录一下原创 2022-10-30 23:07:15 · 198 阅读 · 0 评论 -
浏览器中的事件循环(Event loop)
无论在工作中,还是在面试题中,Eventloop(事件循环)都十分重要,浏览器与nodejs中事件循环略有差异,本文只讨论浏览器中的事件循环。原创 2022-07-14 19:14:22 · 1254 阅读 · 0 评论 -
JavaScript 中判断两个数组是否相等
1、不能直接使用 ==let array1 = [];let array2 = [];console.log(array1 == array2); //输出false对于对象来说,== 比较的是两个对象是否为同一个对象。数组属于对象类型,尽管数组元素是相同的,但这两个数组属于不同的对象,所以 == 比较为false。2、数组简单比较如果数组里的元素是标量,非object类型,可以使用 == 比较数组里的元素:every() 方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素原创 2022-05-20 19:53:55 · 13058 阅读 · 3 评论 -
使用 lodash 判断值是否为空
1,isEmptyisEmpty 方法可以检查 value 是否为一个空对象、集合、映射或者 set。判断的依据:1、对象如果没有自己的可枚举属性的对象,则被认为是空。2、类数组值,比如 arguments 对象、array、buffer、string 或者类 jQuery 集合的 length 为 0,被认为是空。3、同样的 map 和 set 的 size 为 0,被认为是空。_.isEmpty(null); // => true_.isEmpty(true); // =&g原创 2022-05-20 19:53:14 · 16199 阅读 · 0 评论 -
JavaScript 对象动态的更改对象的属性名
JavaScript 对象,动态的更改对象的属性名1、普通对象对象属性名和属性值, 通常是属性值是变动的,但名字是不变的 如:let a = 'abc';let obj = { name:"xxx" }console.log(obj) //{name: "xxx"}2、使用变量动态的改变1.使用 []包裹变量即可let name = "111";let obj1 = { [name]:"222" }console.log(obj1) //{111: "2原创 2022-01-23 17:44:02 · 3233 阅读 · 0 评论 -
let命令
let命令基本用法ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。{ var a = 1; let b = 2; } console.log(a) ; // 1console.log(b) ; // ReferenceError: ...原创 2019-10-27 21:25:45 · 456 阅读 · 0 评论 -
ES6语法(简单总结)
ES6语法(简单总结)目标能够说出使用let关键字声明变量的特点能够使用解构赋值从数组中提取值能够说出箭头函数拥有的特性能够使用剩余参数接收剩余的函数参数能够使用拓展运算符拆分数组能够说出模板字符串拥有的特性ES6相关概念(★★)什么是ES6ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。[外链图片转存失败,源站...原创 2019-11-23 19:57:49 · 401 阅读 · 0 评论 -
ECMAScript 6简介
ECMAScript 6简介ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。ECMAScript和JavaScript的关系一个常见的问题是,ECMAScript和JavaScript到底是什么关系?要讲清楚这个问题,需要回顾历史...原创 2019-10-25 09:40:12 · 256 阅读 · 0 评论 -
将HTMLCollection对象转换为数组的方法
将HTMLCollection对象转换为数组的方法let arr = Array.prototype.slice.call( htmlCollection )隐式迭代并创建一个新的数组对象,这会消耗额外的资源let arr = [].slice.call(htmlCollection);这适用于所有浏览器,包括早期的 IE 版本。let arr = [];[].push.apply(arr, htmlCollection);从 ECMAScript 2015 (ES 6) 开始,还有Ar原创 2021-11-24 22:46:35 · 5497 阅读 · 0 评论 -
JavaScript 5种遍历对象的方式
这篇文章主要介绍了JS 中 5 种遍历对象的方式,文中讲解非常的细致,帮助你更好的了解JS,感兴趣的朋友可以参考下几天前一个小伙伴问我 Object.getOwnPropertyNames() 是干什么用的平时还真没有使用到这个方法,一时不知如何回答从方法名称来分析,应该是返回的是对象自身属性名组成的数组,那和 Object.keys() 方法不就一样了吗?感觉事情并不这么简单,于是我仔细看了一下这几种遍历对象的方法的区别for infor in循环是最基础的遍历对象的方式,它还会得到对象原型链转载 2021-10-17 19:39:03 · 586 阅读 · 0 评论 -
JavaScript 专项练习(三)
1、写出程序运行的结果()var k = 0;for(var i=0,j=0;i<10,j<6;i++,j++){ k += i + j;}console.log(k)答案:30,解析:考察知识点:逗号表达式只有最后一项是有效的,即对于i<10,j<6; 来说,判断循环是否结束的是j < 6;而对于 j<6,i<10; 来说,判断循环是否结束的是 i < 10。k = 0+0=0 1+1+0=2 2+2+2=6 3+3+6=12 4+4原创 2021-10-11 20:09:53 · 1923 阅读 · 0 评论 -
JavaScript专项练习(二)
1、以下代码执行后,控制台的输出是:var a = 10;function a(){}console.log(typeof a)答案:"number",解析:函数提升优先级高于变量提升,所以代码等价于function a(){}var a;a = 10;console.log(typeof a)那如果这里使用关键词let呢,代码变为let a = 10function a () {}console.log(typeof a)这里明显会报错。前面提到,函数声明会优先于变量声明原创 2021-10-10 18:22:03 · 2905 阅读 · 0 评论 -
JavaScript 专项练习
1、下列正确定义函数的是 function foo() {} Function foo() {} var foo = new Function() {} var foo = new function() {}答案:A,解析:A:function foo() {}是普通的函数声明B:Function应是小写CD:是使用了Function构造函数,正确写法:var foo = new Function();2、下列对于JavaScript说法错误的是? JavaScript是原创 2021-10-09 21:47:49 · 4533 阅读 · 0 评论 -
重新初始化循环中的变量时要小心
重新初始化循环中的变量时要小心有时需要在循环中保存信息以增加计数器或重置变量。 一个潜在的问题是变量什么时候该重新初始化,什么时候不该重新初始化,反之亦然。 如果你不小心重置了用于终止条件的变量,导致无限循环,这将特别危险。使用console.log()在每个循环中打印变量值可以发现与重置相关的错误或者重置变量失败。以下函数应该创建一个具有m行和n列“零”的二维数组。 不幸的是,它没有产生预期的输出,因为row变量没有在外部循环中重新初始化(设置回空数组)。 修改代码,使其正确地返回包含 3 行 2原创 2021-08-12 11:30:53 · 525 阅读 · 0 评论 -
JS中简单的判断奇偶数方法(i & 1)
一个整数 n,n&1 这个表达式 可以用来 判断 a的奇偶性。二进制的末位为 0表示偶数,末位为 1表是奇数。使用 n%2 来判断奇偶性 和 n&1 是一样的作用,但是 n&1 要快好多。按位与:& 将参与运算的两操作数各对应的二进制位进行与操作, 只有对应的两个二进位均为1时,结果的对应二进制位才为1,否则为0记住:在做位运算时,位数不够的数,自动在 前面补 0 比如:21 & 1 :10101 & 00001 = 00001 = 116 &转载 2021-04-27 13:32:19 · 3822 阅读 · 0 评论 -
理解 JSON 的数据储存工作原理及对象和文本间的转换方法
目标: 理解 JSON 的数据储存工作原理,创建您的 JSON 对象。什么是 JSON?JSON 是一种按照JavaScript对象语法的数据格式。虽然它是基于 JavaScript 语法,但它独立于JavaScript,这也是为什么许多程序环境能够读取(解读)和生成 JSON。JSON可以作为一个对象或者字符串存在,前者用于解读 JSON 中的数据,后者用于通过网络传输 JSON 数据。 这不是一个大事件——JavaScript 提供一个全局的 可访问的 JSON 对象来对这两种数据进行转换。一个原创 2020-11-20 11:26:51 · 556 阅读 · 0 评论 -
变量的解构赋值用途
变量的解构赋值用途(1)交换变量的值[x, y] = [y, x];上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰。(2)从函数返回多个值函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。// 返回一个数组function example() { return [1, 2, 3]; } var [a, b, c] = example(); console.log(a, b, c); // 1转载 2020-11-04 22:18:57 · 290 阅读 · 0 评论 -
JavaScript数组中filter方法实现原理
filter用法和原理实现filter 过滤,filter()使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。let arr=[2,4,6,8];let arr1=arr.filter(function(item){ return item>5})console.log(arr1) //[6,8]原理的实现Array.prototype.filter1 = function (fn) { let newArr=[]; for(let i=0;i&l原创 2020-10-27 16:52:12 · 2542 阅读 · 0 评论 -
如何理解异步/同步 与 阻塞/非阻塞
一: 引言在面试中我们会碰到这种场景:面试官:能解释下什么是同步,异步么?程序员:假如我们执行A,B两个IO操作的时候,如果必须等待A完成后才能执行B那么这个就是同步的,如果A,B可以同时执行那么就是异步的。面试官:那能解释下什么是阻塞什么是非阻塞么?程序员:如果必须等待A完成后才能执行B那么这个就是阻塞的,如果A,B可以同时执行那么就 是非阻塞的面试官:那你的意思异步/同步的概念与阻塞非阻塞一样了?程序员:嗄。。。可以这么说吧。我觉得可以并发执行的就是异步非阻塞的。one by one执行转载 2020-10-27 14:29:01 · 289 阅读 · 0 评论 -
JavaScript语言所有的运算符,表达式和关键字。
表达式和运算符分类左侧工具栏是按字母表排序的列表。主要表达式JavaScript中基本关键字和常用表达式。thisthis 关键字指向函数的执行上下文。functionfunction 关键字定义了函数表达式。classclass 关键字定义了类表达式。function*function* 关键字定义了一个 generator 函数表达式。yield暂停和恢复 generator 函数。yield*委派给另外一个generator函数或可迭代的对象。async functio转载 2020-10-25 20:05:08 · 692 阅读 · 0 评论 -
Promise基本使用与深入
文章目录一、学习之前应该了解的知识函数对象与实例对象回调函数的分类二、Promise的理解和使用1、Promise是什么?2、为什么要用Promise?3、如何使用Promise?1. Promise基本使用2. 基于Promise发送Ajax请求3.Promise 基本API(一)主要API(二)Promise实例方法(三)Promise静态(对象)方法三、Promise几个重要问题1、如何改...原创 2020-05-01 16:09:51 · 935 阅读 · 0 评论 -
理解JS中的错误(Error)
错误的类型Error 类型除了通用的Error构造函数外,JavaScript还有6个其他类型的错误构造函数。EvalError创建一个error实例,表示错误的原因:与 eval() 有关。InternalError创建一个代表Javascript引擎内部错误的异常抛出的实例。 如: “递归太多”.RangeError创建一个error实例,表示错误的原因:数值变量或参数超出其有...原创 2020-04-27 23:32:02 · 1229 阅读 · 0 评论 -
JavaScript 中的构造函数
典型的面向对象编程语言(比如C++和Java),存在“类”(class)这个概念。所谓“类”就是对象的模板,对象就是“类”的实例。但是,在JavaScript语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)。以下的内容会分为如下细节:1.对象的概念2.构造函数3.new 命令3.1:基本原理3.2:基本用法1.对象的概念...转载 2020-04-27 22:39:08 · 318 阅读 · 0 评论 -
JavaScript字符串字面量、对象字面量、函数字面量、数组字面量
记录!什么是字面量?经过个人总结,就是不用js的new操作符创建实例。在JavaScript中,字面量就是一种表示法,例如对象字面量、函数字面量、数组字面量等等。对象字面量就是一种方便地按指定规格创建新对象的的表示法。比如你想表达"好喜欢你",这就是值.而你是通过眼神,中文,英文,举止等各种方式都是类型.如选择英文这种类型,要说"i like you very much"这就是格式,不能说...原创 2019-11-19 13:49:44 · 711 阅读 · 0 评论 -
JavaScript语句完全攻略(总结)
JavaScript语句完全攻略JavaScript 语言定义了 20 套(或个)语句命令,分别执行不同的操作。以用途划分,JavaScript 语句可以分为:声明、分支控制、循环控制、流程控制异常处理和其他。以结构划分,JavaScript 语句又可以分为单句和复句。单句:也称单行语句,由一个或多个关键字和表达式构成,用来完成简单的运算。复句:使用大括号包含一个或多个单句,用来设计代...原创 2019-11-15 14:11:37 · 411 阅读 · 0 评论 -
arguments对象JavaScript
JavaScript arguments对象详解arguments 对象表示函数的实参集合,仅能够在函数体内可见,并可以直接访问。arguments 对象的 length 属性和 callee 属性最为常用:使用 length 属性可以获取函数的实参个数。arguments 对象只能在函数体内可见,因此 arguments.length 也只能在函数体内使用。使用 callee 属性可以引...原创 2019-11-13 22:04:37 · 408 阅读 · 0 评论 -
JavaScript运算符完全攻略(史上最全!)
文章目录JS运算符完全攻略操作数的个数操作数的类型运算符的优先级运算符的结合性左值、赋值及其副作用加法运算减法运算乘法运算除法运算求余运算取反运算递增和递减JS &&(与运算)详解JS ||(或运算)详解JS !(非运算)详解JS大小比较(>、<、>=、<=)运算符JS判断相等或者不等于(== 、=== 、!=、!==)运算符JS赋值运算符详解JS对象操作(...原创 2019-11-08 23:41:26 · 500 阅读 · 0 评论 -
JavaScript数字(Number)
JavaScript数字(Number)数字(Number)也称为数值或数。数值直接量当数字直接出现在程序中时,被称为数值直接量。在 JavaScript 程序中,直接输入的任何数字都被视为数值直接量。数值直接量可以细分为整型直接量和浮点型直接量。浮点数就是带有小数点的数值,而整数是不带小数点的数值。var int = 1; //整型数值var float = 1.0; //浮点型...原创 2019-11-02 22:37:58 · 357 阅读 · 0 评论 -
JavaScript字符串(string)
JavaScript字符串(string)JavaScript 字符串(String)就是由零个或多个 Unicode 字符组成的字符序列。零个字符表示空字符串。字符串直接量字符串必须包含在单引号或双引号中。字符串直接量有以下几个特点。1、如果字符串包含在双引号中,则字符串内可以包含单引号;反之,也可以在单引号中包含双引号。例如,定义 HTML 字符串时,习惯使用单引号表示字符串,HTML...原创 2019-11-02 21:24:55 · 514 阅读 · 0 评论 -
JavaScript条件运算符(?:)详解
JavaScript条件运算符(?:)详解条件运算符是唯一的三元运算符,其语法格式如下:b ? x : yb 操作数必须是一个布尔型的表达式,x 和 y 是任意类型的值。如果操作数 b 的返回值为 true,则执行 x 操作数,并返回该表达式的值。如果操作数 b 的返回值为 false,则执行 y 操作数,并返回该表达式的值。定义变量 a,然后检测 a 是否被赋值,如果赋值则使用...原创 2019-11-02 18:55:40 · 2861 阅读 · 0 评论 -
JavaScript对象操作(in、instanceof、delete)运算符
JavaScript对象操作(in、instanceof、delete)运算符对象操作运算主要是针对对象、数组、函数这 3 类复合型对象执行某种程序,设计的运算符包括 in、instanceof、delete。归属检测in运算符能够检测左侧操作数是否为右侧操作数的成员。其中,左侧操作数是一个字符串,或者可以转换为字符串的表达式,右侧操作数是一个对象或数组。使用 in 运算符检测属性 a、b...原创 2019-11-02 18:51:42 · 409 阅读 · 0 评论 -
JavaScript判断类型(高级)(typeof+constructor+toString)
JavaScript判断类型(typeof+constructor+toString)使用 typeof 运算符可以判断基本数据类型,但是 typeof 有很多局限性,所以再介绍两种更灵活的方法,以应对高级开发可能遇到的各种复杂情况。使用 constructorconstructor 是 Object 类型的原型属性,它能够返回当前对象的构造器(类型函数)。利用该属性,可以检测复合型数据的类...原创 2019-11-02 16:08:22 · 678 阅读 · 1 评论 -
JavaScript去除字符串前后空格
JavaScript去除字符串前后空格ECMAScript 5 为 String 新增了 trim() 原型方法,用以从字符串中去除前导空字符、尾随空字符和行终止符。该方法在表达处理中非常实用。空字符包括:空格、制表符、换页符、回车符和换行符。示例下面代码使用 trim() 方法快速清除掉字符串首尾空格。var s = " abc def \r\n ";s = s.trim...原创 2019-11-02 13:04:18 · 1605 阅读 · 0 评论 -
JavaScript字符串替换
JavaScript字符串替换replace() 方法的第二个参数可以使用函数,当匹配时会调用该函数,函数的返回值将作为替换文本使用,同时函数可以接收以$为前缀的特殊字符,用来引用匹配文本的相关信息。下面代码把字符串中每个单词转换为首字母大写形式显示。示例1var s = 'javascript is script , is not java.'; //定义字符串//定义替换文本函数,...原创 2019-11-02 10:55:10 · 2982 阅读 · 0 评论 -
JavaScript强制类型转换和自动类型转换
JavaScript强制类型转换和自动类型转换强制类型转换JavaScript 支持使用以下函数进行强制类型转换。Boolean(value):把参数值转换为布尔型值。Number(value):把参数值转换为数字。String(value):把参数值转换为字符串。在下面代码中,分别调用上述 3 个函数,把参数值强制转换为新的类型值。console.log(String(true...原创 2019-11-01 21:21:34 · 734 阅读 · 0 评论 -
JavaScript将常用值转换为数字
JavaScript将常用值转换为数字常用值转换为数字说明如下:转换前转换后1100true1false0“”0undefinedNaNnull0NaNNaNInfinityInfinity把值转换为数字的常用方法有 3 种,具体说明如下。使用 parseInt()parseInt() 是一个全局方...原创 2019-11-01 21:07:03 · 671 阅读 · 0 评论 -
JavaScript将常用值转换为字符串
JavaScript将常用值转换为字符串JavaScript 能够根据运算环境自动转换值的类型,以满足运算需要。但是在很多情况下需要开发者手动转换数据类型,以控制运算过程。转换为字符串常用值转换为字符串。转换前转换后1“1”0“0”true“true”false“false”“”“”undefined“undefined”...原创 2019-11-01 20:55:31 · 463 阅读 · 0 评论 -
JS中的括号和点号
JS中的括号和点号使用中括号运算符[]可以存取数组元素值,使用点运算符.可以存取对象属性值。 其语法格式如下:a.b //点运算符的用法c[b] //中括号运算符的用法操作数 a 表示对象,操作数 b 表示属性名。如果属性值是函数,应增加小括号,实现方法调用操作。注意,操作数 b 是不能使用字符串或字符串表达式的。操作数 c 可以是数组,也可以是对象。具体说明如下:如果左侧操作...原创 2019-10-30 18:30:39 · 573 阅读 · 0 评论