
javascript
gunsmoke
这个作者很懒,什么都没留下…
展开
-
es6学习_对象解构
var user = { name: 'gunsmoke', age: 18}function userDetail({name,age}) //注意这里的字段名要和user对应,否则无法解构{ console.log(`name:${name},age:${age}`)}userDetail(user); //name:gunsmoke,age:18原创 2020-10-02 11:19:12 · 108 阅读 · 0 评论 -
es6学习_展开运算符(...)
//1.接收不定长度数组参数var paramTest = (...params) => { console.log(params);}paramTest(1,2,3); //[1,2,3]paramTest(1,2,3,'test'); //[1,2,3,'test']//2.动态拼接数组var array1 = [1,2,3];var array2 = [4,5,6];var concatArray = [...array1,...array2,'addItem'];c原创 2020-10-02 11:05:17 · 116 阅读 · 0 评论 -
es6学习_箭头函数解决this指向问题
//需求,有一个自定义数组对象myArray,其中的sum方法的作用是对myArray对象的value值累加,//每次累加都要加上addNumvar myArray = { value: [1,2,3,4,5], addNum: 10, sum: function() { //下面的this.value中的this就是myArray对象,这是正常的 return this.value.reduce(function(sum,currentValu原创 2020-09-30 11:12:43 · 905 阅读 · 0 评论 -
es6学习_数组方法_reduce
var numberArray = [1,2,3,4,5,6];//reduce需要的迭代函数,第一个参数是迭代的数值,第二个参数代表数组的当前迭代元素var paramFunction = (sum,currentNumber) => { sum += currentNumber; return sum; //每次的迭代值都在变};//第二个参数代表迭代sum的初始值,函数的作用是求数组元素的和var sum = numberArray.reduce(paramFuncti原创 2020-09-29 11:21:03 · 116 阅读 · 0 评论 -
es6学习_数组方法_every&some
var userArray = [ {id:1,name:'gunsmoke1'}, {id:2,name:'gunsmoke2'}, {id:3,name:'gunsmoke3'}, {id:4,name:'gunsmoke4'},];//需求是,判断用户数组中,是否所有用户的姓名都是以gunsmoke开头,是否有部分用户的姓名以gunsmoke开头var isAllUserStartWithGunsmoke = userArray.every((user) =>原创 2020-09-29 10:34:23 · 123 阅读 · 0 评论 -
es6学习_数组方法_find
var userArray = [ {id:1,name:'gunsmoke1'}, {id:2,name:'gunsmoke2'}, {id:3,name:'gunsmoke3'}, {id:4,name:'gunsmoke4'},];var destUser = userArray.find((user) => { return user.id == 1; //找到就直接退出,找不到则返回undefined});console.log(destUse原创 2020-09-29 09:57:46 · 113 阅读 · 0 评论 -
es6学习_数组方法_filter
var originArray = [1,2,3,4,5];var newArray = originArray.filter((item) => { return item % 2 == 0; //过滤掉奇数});console.log(newArray); //返回[2,4]```原创 2020-09-29 09:33:27 · 105 阅读 · 0 评论 -
es6学习_数组方法_map
var originArray = [1,2,3,4,5];var newArray = originArray.map((item) => { return item * 2; //这里必须return,否则返回undefined});console.log(newArray); //返回[2,4,6,8,10]原创 2020-09-29 09:14:19 · 133 阅读 · 0 评论 -
es6学习_数组方法_forEach
var items = [1,2,3,4,5];//item代表数组的单个元素,index代表索引,arr代表源数组items.forEach(function(item,index,arr) { console.log(index + ":" + item + "->" + arr);})//输出// 0:1->1,2,3,4,5// 1:2->1,2,3,4,5// 2:3->1,2,3,4,5// 3:4->1,2,3,4,5// 4:5->原创 2020-09-28 21:52:34 · 237 阅读 · 0 评论 -
async,await模拟所有请求返回后执行某个操作
之前项目中遇到过这样的需求,前端一个页面有很多数据需要向后端请求,当所有请求都返回时才会继续下面的动作,我看其它人是用请求嵌套写法去搞的,但是这些请求之间并没有依赖关系,这样会导致浪费效率,今天学了一招,可以用Promise.all去返回一个新的promise,上代码<script> function timer(timeout,name) { ...原创 2020-02-29 22:04:15 · 1240 阅读 · 0 评论 -
用async和await语法糖封装setTimeout
<script> async function promise1() { let p1 = await new Promise(resolve => { setTimeout(()=>{console.log('p1');resolve();},1000); ...原创 2020-02-29 19:57:37 · 587 阅读 · 0 评论 -
用promise封装定时函数setInterval
需求1秒后打印数字1到30,完成打印后再过1秒打印数字31至60代码<script> function timer(callback,time) //这里是封装的函数 { return new Promise((resovle,reject)=>{ let timerId = set...原创 2020-02-29 14:08:41 · 2862 阅读 · 1 评论 -
图片加载之promise封装
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script> function loadImgPr...原创 2020-02-25 21:27:17 · 575 阅读 · 0 评论 -
宏任务、微任务及其执行顺序
setTimeout(()=>{console.log('我是宏任务')},0); let promise = new Promise(resolve => {resolve();console.log('新建promise')}); promise.then(value =>{console.log('我是微任务')}); c...原创 2020-02-23 15:06:03 · 4612 阅读 · 1 评论 -
js异步加载图片演示
<script> function loadImg(src,resolve,reject) { let img = new Image(); img.src = src; // 以下resolve为成功回调函数,reject为失败回调函数 img.onload...原创 2020-02-20 21:52:04 · 710 阅读 · 0 评论 -
leetCode刷题记录之771 Jewels and Stones
题目描述You’re given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. You want to know how many of th...原创 2020-01-21 16:45:26 · 234 阅读 · 0 评论 -
leetCode刷题记录之766 Toeplitz Matrix
题目描述A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element.Now given an M x N matrix, return True if and only if the matrix is Toeplitz.给的用例Input:matrix = [ [...原创 2020-01-21 16:20:32 · 110 阅读 · 0 评论 -
leetCode刷题记录之762 Prime Number of Set Bits in Binary Representation
题目原文Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime number of set bits in their binary representation.(Recall that the number of set bits an inte...原创 2020-01-21 10:57:10 · 133 阅读 · 0 评论 -
leetCode刷题记录之747Largest Number At Least Twice of Others
题目原文In a given integer array nums, there is always exactly one largest element.Find whether the largest element in the array is at least twice as much as every other number in the array.If it is, r...原创 2020-01-20 15:44:01 · 136 阅读 · 0 评论 -
leetCode刷题记录之728Self Dividing Numbers
leetCode刷题记录之728原题A self-dividing number is a number that is divisible by every digit it contains.For example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.Al...原创 2020-01-20 14:58:04 · 129 阅读 · 0 评论 -
44个javascript问题-12(来自知乎)
parseInt(3, 8)parseInt首先将第一个参数转为字符串,第二个参数范围是2-36,如果传0或不传则会以十进制形式转化,于是上面返回3parseInt(3, 2)由于二进制里面并没有3,所以不能转化,返回NaNparseInt(3, 0)传0则以十进制形式转化,于是返回3可以结合之前的问题1分析本题...原创 2019-01-31 16:50:00 · 123 阅读 · 0 评论 -
44个javascript问题-38(来自知乎)
var a = Date(0);var b = new Date(0);var c = new Date();console.log(typeof a)console.log(a === b);console.log(b === c);console.log(a === c);3个都输出false.首先是a,它是字符型对象,而b是引用型对象,所以a===b肯定返回false,并且a...原创 2019-02-13 09:39:00 · 163 阅读 · 0 评论 -
44个javascript问题-37(来自知乎)
var a = Function.length,b = new Function().lengtha === b输出false.b = 0这个没有疑问,问题是a,这里找到了一个参考,里面也没说原因,以后有时间可以再研究https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Functi...原创 2019-02-13 09:08:12 · 170 阅读 · 0 评论 -
44个javascript问题-36(来自知乎)
console.log(new Date("epoch"));输出Invalid Date.Date()函数的入参必须是合法的才能返回相应的时间,找了一篇博客参考https://blog.youkuaiyun.com/hsany330/article/details/8029204原创 2019-02-13 09:06:29 · 134 阅读 · 0 评论 -
44个javascript问题-35(来自知乎)
var a = {class: "Animal", name: 'Fido'};console.log(a.class)第一感觉会报错,因为class是保留字,实际没有,输出Animal.上网查了一下,对象的命名不能是关键字获保留字,但没说对象的属性名不可以是关键字或保留字,a.class其实相当于a['class'], 貌似没有影响 ...原创 2019-02-13 09:05:49 · 150 阅读 · 0 评论 -
44个javascript问题-34(来自知乎)
console.log([,,,].join(", "));输出', , '.看看下面的输出[,2,3,].join(', ') ->", 2, 3",最后一个空元素被忽略了[1,2,].join(', ') ->"1, 2",最后一个空元素被忽略了所以题目中虽然有3个逗号,但系统只确认了3个空元素,不是4个,这样就不难理解输出的结果了....原创 2019-02-13 09:05:05 · 141 阅读 · 0 评论 -
44个javascript问题-39(来自知乎)
var min = Math.min(), max = Math.max()min < max返回false.实际上min=Infinity,可以这样理解,传入的任何值都比Infinity小,因为是求最小值,同样的道理max=-Infinity.原创 2019-02-13 09:51:25 · 128 阅读 · 0 评论 -
44个javascript问题-40(来自知乎)
var a = new Date("2014-03-19"),b = new Date(2014, 03, 19);[a.getDay() === b.getDay(), a.getMonth() === b.getMonth()]a对应的日期是2014年3月19日,a.getDay()=3,注意getDay函数返回的是星期几,a.getMonth()=2,注意月份减1b对应的日期是2014...原创 2019-02-13 11:03:08 · 182 阅读 · 0 评论 -
44个javascript问题-41(来自知乎)
if ('http://giftwrapped.com/picture.jpg'.match('.gif')) { console.log('a gif file');} else { console.log('not a gif file');}输出a gif file。这里注意在正则表达式中.是特殊字符,表示任意单个字符,如果要匹配.需要转义\\....原创 2019-02-13 11:12:15 · 90 阅读 · 0 评论 -
44个javascript问题-42(来自知乎)
function foo(a) { var a; return a;}function bar(a) { var a = 'bye'; return a;}console.log(foo('hello'));console.log(bar('hello'));输出hello,bye.function foo(a){ //这里是函数体}相当...原创 2019-02-13 11:36:14 · 194 阅读 · 0 评论 -
44个javascript问题-43(来自知乎)
function f() {}var parent = Object.getPrototypeOf(f);看看下面输出什么console.log(f.name);f是函数,f.name对应函数名,没什么说的,输出fconsole.log(parent.name);parent是f的原型对象,函数的原型对象还是函数,所以我理解上面代码相当于console.log((function(...原创 2019-02-13 13:58:21 · 141 阅读 · 0 评论 -
44个javascript问题-44(来自知乎)
function captureOne(re, str) { var match = re.exec(str); return match && match[1];}var numRe = /num=(\d+)/ig, wordRe = /word=(\w+)/i, a1 = captureOne(numRe, "num=1"), a2 =...原创 2019-02-14 08:49:07 · 168 阅读 · 0 评论 -
js中的整数转换为无符号整数
js中的整数默认都是有符号的,比如下面的代码var a = -1;a在内存中的表示形式为32个1,其中最高位的1表示符号位,但是在有些场合需要用到无符号整数,可以这样处理:a = a >>> 0表示无符号右移0位,这样a就变成无符号整数了,注意js中只能以这种方式创建无符号整数...原创 2019-02-25 13:48:54 · 5240 阅读 · 0 评论 -
44个javascript问题-33(来自知乎)
var lowerCaseOnly = /^[a-z]+$/;console.log(lowerCaseOnly.test(null));console.log(lowerCaseOnly.test());第一感觉两个都返回false,实际两个都返回true.以我的理解,正则对象的test方法应该传一个字符串,如果传null,那么就转为'null'字符串,转成字符串后当然就符合条件了,如...原创 2019-02-12 14:17:33 · 195 阅读 · 0 评论 -
44个javascript问题-32(来自知乎)
function f() {}var a = f.prototype, b = Object.getPrototypeOf(f);a === b返回false.console.log(a) ->返回{}console.log(Object.getPrototypeOf(f)) -> 返回Function这个问题待日后研究完原型对象后需要返过来重新认识...原创 2019-02-12 13:41:28 · 165 阅读 · 0 评论 -
44个javascript问题-16(来自知乎)
console.log('5' + 3);console.log('5' - 3);第一个输出53,因为是加法,所以是字符串拼接;第二个输出2,因为是减法,所以字符串转化为数字,然后相减。原创 2019-02-11 11:12:54 · 254 阅读 · 0 评论 -
44个javascript问题-15(来自知乎)
console.log([] == []);输出false.和java类似,对象的比较,比较的是对象的地址,两边是不同的对象,拥有不同的地址原创 2019-02-11 11:07:53 · 141 阅读 · 0 评论 -
44个javascript问题-14(来自知乎)
var a = [0];if ([0]) { console.log(a == true);} else { console.log("wut");}输出false.这里涉及到判断规则的问题,找了一个参考https://www.jianshu.com/p/05af89de33f1原创 2019-02-11 09:53:32 · 127 阅读 · 0 评论 -
44个javascript问题-6(来自知乎)
var END = Math.pow(2, 53);var START = END - 100;var count = 0;for (var i = START; i <= END; i++) { count++;}console.log(count);貌似会输出100,实际运行时死循环了,分析原因console.log(Math.pow(2,53)); ->输...原创 2019-01-31 09:23:53 · 152 阅读 · 0 评论 -
44个javascript问题-5(来自知乎)
var name = 'World!';(function () { if (typeof name === 'undefined') { var name = 'Jack'; console.log('Goodbye ' + name); } else { console.log('Hello ' + name); }}...原创 2019-01-30 17:47:02 · 158 阅读 · 0 评论