![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 67
夜跑者
目前从事web前端,小程序开发。熟悉vue框架,uni-app跨端框架。
展开
-
json 和xml互转 x2js 使用
很简单name 换成_name ,加个下划线就可以了。4) xml转json。3)json转xml。原创 2023-04-06 19:14:15 · 2492 阅读 · 0 评论 -
js 立即执行函数传参问题
聪明的你可能从错误中已经看出错误原因了:把"test string" 当成运算符了,所以会出现这个错误。在变量定义后面加个分号就可以了。JS 再词法分析的时候,就把定义变量那一行和自执行函数分开了。大家可以直接复制,执行一下。看看下面这段代码有什么问题?原创 2022-12-30 15:56:46 · 288 阅读 · 0 评论 -
crypto-js 使用
crypto-js 是谷歌开源的一个js 加密库,如果是用npm install 安装的化 使用方法如下:const CryptoJS = require('crypto-js')const hash = CryptoJS.HmacSHA256(sign, privatekey)const SIGNATURE = CryptoJS.enc.Base64.stringify(hash)如果想直接引用源码的话,就需要找个压缩的源代码,可以用这个:CryptoJS.min.js链接:ht.原创 2022-04-28 11:23:24 · 2611 阅读 · 0 评论 -
关于js继承中“prototype模式“的constructor重定向浅析
文章转自:关于js继承中"prototype模式"的constructor重定向浅析_乱闯的java小屁孩的博客-CSDN博客_js继承constructor近来在看阮一峰的网络日志,确实写得好,非常通俗易懂,对我们这些小白受益匪浅!JavaScript的继承一直是一大难点,初涉会花费非常多的时间,我也如此。在摸索了许多天之后,逐渐有了一些头绪。但是关于constructor属性重定向这个问题上,我还是存在疑问。在测试过程中,发现测试的结果与阮一峰老师的结论有些出入,在此记录。首先粘上阮转载 2022-04-28 08:47:23 · 261 阅读 · 0 评论 -
一篇文章看懂变量提升(hoisting)
文章转自:一篇文章看懂变量提升(hoisting) - 知乎前沿大家对变量提升(hoisting)一定不陌生了,这篇文章希望可以建立一个系统的规则,以后碰到变量提升,可以重新看这篇文章,根据文中的规则找到答案。最终,我们可以记住这个规则,很自然的理解变量提升。例子相信大家对这个例子不陌生了:a = 2;var a;console.log( a ); /// 2为什么这段话a在声明之前就可以赋值了呢?再看下这个例子:console.log( a ); //un.转载 2022-04-20 08:58:31 · 142 阅读 · 0 评论 -
解决JavaScript数字精度丢失问题的方法
文章转自:https://www.jb51.net/article/75801.htm这篇文章主要介绍了解决JavaScript数字精度丢失问题的方法,需要的朋友可以参考下本文分为三个部分JS 数字精度丢失的一些典型问题 JS 数字精度丢失的原因 解决方案(一个对象+一个函数)一、JS数字精度丢失的一些典型问题1. 两个简单的浮点数相加 1 0.1 + 0.2 != 0.3 // true 这真不是 Firebug 的问题,可以用aler转载 2021-03-12 14:50:21 · 3151 阅读 · 0 评论 -
一道数组去重面试题引发的“血案”
文章转自:https://juejin.cn/post/6860731239754792968当我们谈论数组去重我们在谈论什么一说到数组去重,大家可能就惯性地开始想去重的算法了。Set 两次for循环暴力去重 Map + 一次for循环 数组的filter方法 .....但是我为什么说这次数组去重会引发“血案”,是因为我们都忘记考虑另外一件事了——数组里的元素不一定都是数字(number类型)。这一次我遇到的面试官让我对这样一个数组去重。arr=[undefined, unde转载 2021-02-16 22:20:54 · 130 阅读 · 0 评论 -
moment.js使用方法总结
文章转自:https://www.cnblogs.com/Jimc/p/10591580.htmlMoment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。下面就是我对moment.js使用过程中的整理,方便以后查阅。1|0一、引入moment.js1|11.Node.js方式引入(1)安装npm install moment..转载 2021-01-28 18:41:14 · 2949 阅读 · 2 评论 -
对函数参数进行容错处理
错误写法: function parseInfo(info) { if(info.type === "apple"){ //如果函数参数info为null或者调用者没传参数会怎么样? //TODO }else if(info.type === "pear"){ //TODO } } parseInfo();正确写法: function parseInfo(info) {原创 2020-08-15 16:34:17 · 341 阅读 · 0 评论 -
两种解析JSON数据的方法
从Vue-router源码中看到解析JSON数据的方法。之前自己也写过解析JSON数据的代码。测试看,效率在一个数量级上。<html> <head><style type="text/css"></style></head> <body> <script>var data = ...原创 2019-12-26 22:31:33 · 186 阅读 · 0 评论 -
计算li标签的索引
有这么一段html代码: <ul class="ulStyle"> <li>list_0</li> <li>list_1</li> <li>list_2</li> <li>list_3</li> &l...原创 2019-12-25 22:55:57 · 187 阅读 · 0 评论 -
encodeURI 和 encodeURIComponent的区别
文章转自:https://www.jb51.net/article/140922.htm一、前言讲这3个方法区别的文章太多了,但是大部分写的都很绕。本文试图从实践角度去讲这3个方法。二、escape和它们不是同一类简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。编码之后的效果是%XX或者%uXXXX这种形式。其中 ...转载 2019-11-27 15:19:19 · 192 阅读 · 1 评论 -
用indexOf, splice删除数组中的一个元素
删除数组中的一个元素的方法有很多种,例如可以for循环把不要删除的元素推入一个新数组,也可以不用for循环,用indexOf 和splice方法来配合,代码如下:<html><head><style type="text/css"></style></head><body><script>...原创 2019-11-06 09:59:00 · 1496 阅读 · 0 评论 -
js中的数组对象排序
原文地址:https://www.cnblogs.com/xljzlw/p/3694861.html 一、普通数组排序 js中用方法sort()为数组排序。sort()方法有一个可选参数,是用来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序。如:var arr = ["a", "b", "A", "B"];arr.sort();...转载 2019-02-14 09:38:58 · 2714 阅读 · 0 评论 -
利用冗余来提高程序的健壮性
var type = 1;switch (type) { case "0" : console.log("process 0"); break; case "1" : console.log("process 1"); break; case "2" : console.log("proc.原创 2019-02-19 08:26:04 · 262 阅读 · 0 评论 -
音乐播放进度条
#progressBar { position: absolute; left: 60px; top: 600px; width: 1009px; height: 10px; background-size: 1009px 10px; background-image: url(pg_bk.gif);}#pgIcon { p...原创 2019-02-13 10:00:43 · 6442 阅读 · 0 评论 -
JS 定时器返回值
var a = setTimeout(function () { console.log("timeout 3 seconds");}, 3000);clearTimeout(a);console.log("timer A id is: " + a);var b = setTimeout(function () { console.log("timeout 5 ...原创 2019-02-18 08:49:22 · 4008 阅读 · 0 评论 -
Webstorm 折叠代码 快捷键
Ctrl + Shift + “+” Ctrl + Shift + “-”原创 2019-01-30 12:19:23 · 18995 阅读 · 0 评论 -
借用临时构造函数实现原型继承
function extend(child, parent) { var F = function () { }; F.prototype = parent.prototype; child.prototype = new F(); child.prototype.constructor = child;}function Animal() {...原创 2019-01-29 09:22:06 · 162 阅读 · 0 评论 -
JS 原型对象的constructor属性
function Person() { this.color = "yellow"; this.showColor = function () { return this.color; }} var person1 = new Person();console.log("Person.prototype.constructor: " ...原创 2019-01-22 18:50:10 · 1400 阅读 · 0 评论 -
JS 函数的arguments 参数
还是用个例子来说明吧: function drawPage() { if(arguments.length){ console.log("draw normal page: " + arguments[0]); }else { console.log("draw default page"); }}drawPage();d...原创 2019-01-21 08:33:27 · 437 阅读 · 0 评论 -
JS 组合继承改进型
function Animal(type) { this.type = type;}Animal.prototype.speak = function (voice) { console.log("the: " + this.type + "; speak: " + voice);};Animal.prototype.favoriteFood = function (f...原创 2019-07-18 09:24:02 · 99 阅读 · 0 评论 -
JS Unicode表示字符
var abc = "abc";console.log("abc: " + abc);var abcUicode = "\u0061\u0062\u0063";console.log("unicode abc: " + abcUicode); 都打印abc原创 2019-01-25 10:21:55 · 950 阅读 · 0 评论 -
JS 多级嵌套对象数组的比较排序
在网上看到很多关于JS 对象数组的比较排序,但数组中的对象没有嵌套。下面来一个嵌套的: var lans = [ { "code": "ENG", "belongs" : [ { "area" : "EU_A", "order" : 3原创 2019-02-14 09:59:34 · 4308 阅读 · 0 评论 -
Javascrit中使用MediaSource播放加密视频
原文地址: https://blog.csdn.net/camike/article/details/82797768推荐直接看原文。 1、基本概念MediaSource MediaSource是一个表示媒体资源HTMLMediaElement对象的接口。 MediaSource对象可以附着在HTMLMediaElement在客户端进行视频播放。区别于传统的直接在vi...转载 2019-02-21 08:48:15 · 1399 阅读 · 0 评论 -
动态加载JavaScript文件
写一个简单的动态加载JavaScript demo:testA.js 代码如下:var testA = {};(function (self) { self.pubFunc1 = function () { console.log("testA pubFunc1"); }})(testA);main.html中的脚本如下:function ...原创 2019-05-20 11:55:45 · 171 阅读 · 0 评论 -
用构造函数和原型模式动态创建实例
这几天早上看了一下红宝书中对象一章,看到了用构造函数和原型模式来创建实例,就想了一下哪些场景用这个比较好。想到了Dota。function Hero(name, sex, skill1, skill2, skill3) { this.name = name; this.sex = sex; this.skill1 = skill1; this.skill2 =...原创 2018-08-23 19:12:17 · 189 阅读 · 0 评论 -
splice 第一个参数为NaN 时的现象
在写一个例子时用到了splice函数,当时写错了,不知道什么原因。看看这个错误用法var data = ["first", "second", "third"]data.splice(data[0], 1, "First"); //想把数组中的第1个字符串首字母改成大写console.log("data is:" + data); //打印出来 First, secon...原创 2019-10-11 16:17:41 · 417 阅读 · 0 评论 -
详解 JavaScript 柯里化
文章转自:https://juejin.im/entry/58b316d78d6d810058678579柯里化是函数的一个比较高级的应用,想要理解它并不简单。因此我一直在思考应该如何更加表达才能让大家理解起来更加容易。想了很久,决定先抛开柯里化这个概念不管,补充两个重要、但是容易被忽略的知识点。一、补充知识点之函数的隐式转换JavaScript作为一种弱类型语言,它的隐式转换是非常灵...原创 2019-09-26 16:31:08 · 91 阅读 · 0 评论 -
获取字符串占用的字节数
utf-8 编码 和 utf-16编码的字符串中一个字符占用的字节数是不同的。//charset: utf-8 utf-16function byteLength(str, charset) { var total = 0, charCode, i, len; charset = charset ? charset.toLowerCase() : ""; i...原创 2019-07-25 09:09:16 · 4219 阅读 · 0 评论 -
querySelector
返回文档中匹配指定 CSS 选择器的一个元素。 还是有个例子来说明,一目了然。<div id="div1"> <div id="div2"> </div></div>var elm = document.querySelector("#div1");console.log("elm: " + elm); ...原创 2019-07-12 08:39:35 · 1083 阅读 · 0 评论 -
对象添加只读属性
如果希望对象中的属性不可更改,可以利用Object.defineProperty 来做。 demo如下:function Person() {}var feature = { "age" : 10, "sex" : "man"};var featureConf = {};featureConf.get = function () { retur...原创 2019-06-14 09:49:55 · 857 阅读 · 0 评论 -
JS 原型链
javascript原型链剖析2019年05月15日 21:57:48lihefei_coder阅读数:19版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihefei_coder/article/details/90246124剖析p.age属性值的获取过程,为何最终得到undefined?class Person {...转载 2019-05-29 15:11:20 · 144 阅读 · 0 评论 -
详解Object.create(null)
文章来自:https://juejin.im/post/5acd8ced6fb9a028d444ee4e写的很好。Object.create()的定义照搬一下MDN上的定义:Object.create(proto,[propertiesObject])复制代码proto:新创建对象的原型对象 propertiesObject:可选。要添加到新对象的可枚举(新添加的...转载 2019-05-22 09:46:46 · 413 阅读 · 0 评论 -
把arguments转换为数组
在看源代码时经常会看到如下代码:Array.prototype.slice.call(arguments) 这句代码的意思就是把arguments 转换为数组写个demo如下:function test() { //let args = Array.prototype.slice.call(arguments, 0, 2); let args = [].sli...原创 2019-05-20 18:45:58 · 421 阅读 · 0 评论 -
小心基本数据类型的假值
var number1 = 0;number1 = number1 || 20;console.log("number1 : " + number1);var str1 = "";str1 = str1 || "abc";console.log("str1 : " + str1);var bool1 = false;bool1 = bool1 || true;console....原创 2019-01-25 09:46:53 · 161 阅读 · 0 评论 -
闭包陷阱
在书上看到了一个与闭包相关的错误: function func() { var arr = [], i; for(i=0; i<6; i++){ arr[i] = function () { return i; //Mutable variable is accessable from closure }...原创 2019-01-20 11:47:22 · 552 阅读 · 0 评论 -
debugger
昨天同事 在代码中写了一句 debugger; 原来是打断点原创 2019-01-15 09:23:40 · 1463 阅读 · 1 评论 -
JS call方法原理
原文转自:https://blog.csdn.net/u010377383/article/details/80646415前言本来计划是, 先把深入React技术栈过完, 但是,现在在满足RN app开发情况下,我还是先深入js一个系列。(一)call源码解析首先上一个call使用function add(c, d) { return this.a + this.b + c...转载 2018-11-15 09:11:30 · 8014 阅读 · 0 评论 -
JS 原型模式之 动态原型模式
function Utils() { if(typeof Utils.initialized == "undefined"){ console.log("prototype init"); Utils.prototype.utilsFunc1 = function () { console.log("utilsFunc1"); ...原创 2018-11-15 08:48:23 · 552 阅读 · 0 评论