
JS
Homyee King
这个作者很懒,什么都没留下…
展开
-
豆瓣API
baseurl http://api.douban.com/v2 具体接口示例 top 250电影 一定要加上后面的apikey,否则访问不到 /movie/top250?apikey=0df993c66c0c636e29ecbb5344252a4a原创 2020-06-27 19:45:55 · 526 阅读 · 0 评论 -
轻松玩转JS的类型转换(下)
我们在轻松玩转JS的类型转换(上)这篇博客中曾提到过隐式转换,这篇博客,我们就来揭开隐式转换的面纱。 一元操作符+ console.log(+"1"); 当 + 运算符作为一元操作符的时候,查看 ES5规范1.4.6,会调用 ToNumber 处理该值,相当于 Number(‘1’),最终结果返回数字 1。 console.log(+[]); //0 console.log(+['1']); /...原创 2020-04-24 13:01:35 · 135 阅读 · 0 评论 -
轻松玩转JS的类型转换(上)
将一种类型转换为另一种类型,便是类型转换,其中包括显示转换和隐式转换。 显示转换当然是用户自发调用API进行转换,隐式转换常常在我们意想不到的时候进行,当然,看完本篇博客,你就可以拥有洞察隐式转换的能力了。 在 JavaScript 中,当我们进行比较操作或者加减乘除四则运算操作时,常常会触发 JavaScript 的隐式类型转换机制;而这部分也往往是令人迷惑的地方。譬如浏览器中的 console...原创 2020-04-24 11:22:15 · 237 阅读 · 0 评论 -
图解 前序、中序、后序、深度、广度遍历二叉树(js 递归 非递归实现)
后序遍历较为详细,配有图解,想看图解的,转到后序遍历,画图太麻烦了。。。 所以只画了后序的,欢迎评论区交流。 初始化树结构 var nodes = { node: 6, left: { node: 5, left: { node: 4 ...原创 2020-04-22 13:22:35 · 1420 阅读 · 0 评论 -
ES6之 Object.defineProperty 和 Proxy
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。 Object.defineProperty(obj, prop, descriptor) obj是目标对象 prop 是要添加或要修改的属性值 描述符是对要添加的属性进行配置,可配置的项有:writable, enumerable, configurable, ...原创 2020-04-12 20:35:36 · 314 阅读 · 0 评论 -
前端不可不知的 Event loop
javascript是一门非阻塞单线程语言,执行js代码时,会创造一个执行环境,也就是执行上下文,不了解这部分的可以看一下这一篇博客 js基础 执行上下文栈 遇到异步任务的时候,会挂起,放到task队列中,等同步代码执行完毕后再回过头执行task中的任务。 console.log('script start') setTimeout(function() { console.log('se...原创 2020-04-12 10:15:58 · 210 阅读 · 0 评论 -
ES6之Promise
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 三种状态 pending(就绪) fullfilled(成功) rejected(失败) 两种状态转变 pending----> fullfilled pending----> reject...原创 2020-04-11 13:28:01 · 100 阅读 · 0 评论 -
ES6之Generator函数
Generator函数返回一个可遍历对象,该对象可遍历函数内部的状态,我们可以将Generator函数理解为一个状态机。 书写形式 Generator函数和普通函数的区别就是 在function和函数名之间有个*,而且内部可以书写yield表达式。 next方法 next方法控制这个函数的指针不断向后移动,遇到yield就停止,返回一个对象 {value:xxx,done:true|false}...原创 2020-04-11 10:42:49 · 97 阅读 · 0 评论 -
js 二维数组去重
一维数组肯定用ES6语法 Set来进行去重,当我用到二维数组上的时候,居然不灵。 于是我就谷歌了一下,发现了一个用哈希思想的去重方法,分享给大家。 function Deduplicate() { let tmp = [ [1, 1, 2], [1, 1, 2], [3, 4, 5] ]; ...原创 2020-04-05 18:50:05 · 983 阅读 · 0 评论 -
JS两个空数组为什么不相等
今天看ES6对象的扩展属性,看到Object.is的时候 ,突然发现一个很奇怪的事情,[1]===[1]居然是false, 明明看起来一样啊,怎么会返回false呢? 于是查了一下ES6官方文档之后发现,两个赋值相同的对象居然也不想等,后来搜索之后,以为网友的解释还可以接受, 原文网址 https://www.cnblogs.com/superlizhao/p/8944377.html var...转载 2019-08-21 19:00:31 · 2729 阅读 · 1 评论 -
JS中的函数声明和函数表达式的区别,即function(){}和var function(){},以及变量提升、作用域和作用域链
原文网址 https://www.cnblogs.com/nangezi/p/9105778.html 一、前言 Uncaught TypeError: … is not a function function max(){}表示函数声明,可以放在代码的任何位置,也可以在任何地方成功调用; var max = function(){};表示函数表达式,即将一个匿名函数赋值给一个变量,实现通过...转载 2019-07-26 13:14:07 · 272 阅读 · 0 评论 -
正则表达式
本篇只记录一些零碎的知识点,多是本人当初感到困惑而后恍然大悟的地方 1. 理解\b \B \b: 单词边界,具体就是\w和\W之间的位置,也包括\w和^之间的位置,也包括\w和$之间的位置。(\w是指数字、字符串和下划线) \B: 非单词边界,\B就是\b的反面的意思。例如在字符串中所有位置中,扣掉\b,剩下的都是\B的。具体说来就是\w与\w、\W与\W、^与\W,\W与$之间的位置。 ...原创 2019-04-01 16:26:12 · 125 阅读 · 0 评论 -
闭包与作用域问题小结
转载 2019-03-24 09:54:51 · 188 阅读 · 0 评论 -
js 数组之reduce
以往的数组求和,我们自然而然会想到,用for循环依此遍历累加的这种方法,当你知道reduce后,我们就可以抛弃老套的做法,用reduce优雅的进行数组求和运算; reduce 语法 Array.reduce(function(total, currentValue, currentIndex, arr), initialValue) 以上用法摘自菜鸟教程 下面来看一下实例 实例: ...原创 2019-03-30 14:58:11 · 143 阅读 · 0 评论