
有趣的JavaScript
文章平均质量分 57
good_moring_
这个作者很懒,什么都没留下…
展开
-
web前端面试题
JS部分如何取消http请求XHR : .abort() 取消之后执行elseajax : .abort() 取消之后执行erroraxios: CancelToken.source()const CancelToken = axios.CancelToken;const source = CancelToken.source();axios.get('/user/12345', { cancelToken: source.token}).catch(function(throw原创 2021-05-19 18:57:55 · 567 阅读 · 1 评论 -
为什么我们要用TypeScript,它的数据类型有哪些
放在最前~ TypeScript基础为什么我们要用TypeScriptts是js的超集,可维护性和可读性更强。引入了静态类型,不需要太去关注代码内容,看类型就能了解函数的用途IDE的智能提示更加友好更容易暴露出编写中的错误TypeScript 数据类型和Javascript相比较,Typescript的数据类型多了以下几种:元祖tuple枚举enumvoidnerverany静态类型与动态类型、强类型与弱类型强类型语言当中不允许有任意的隐式类型转换,弱类型语言当中则允许原创 2021-03-04 10:31:36 · 201 阅读 · 2 评论 -
深浅拷贝
深浅克隆的区别浅克隆只克隆了当前一级的变量及其属性,操作多级的时候会影响到原始数据。深克隆克隆了对象及其嵌套层级的属性(多维对象)。浅克隆let obj = { a : 100, x : { c : 2 }}//方式一:展开运算符let obj2 = { ...obj }//方式二:object.assign()let obj2 = Object.assign({},obj)//方式三:循环let obj2 = {}for(let key of obj){ if(原创 2021-03-03 11:32:42 · 94 阅读 · 0 评论 -
难搞的概念一箩筐——作用域、闭包、原型、原型链、new运算符
作用域:函数创建的时候,就会形成一个函数的作用域作用域链:函数执行的时候形成的,执行上下文确定的时候就形成了,早于函数执行。执行上下文:函数执行的时候所依赖的环境var f = function(){}//f[[scope]]...原创 2021-03-01 18:55:51 · 150 阅读 · 0 评论 -
一道js赋值运算的面试题
先来看一下题目: var a = { n: 1}; var b = a; a.x = a = {n: 2}; console.log(a.x); // 输出? console.log(b); // 输出?储备知识:优先级从高(20)到低(1)排列优先级运算类型关联性运算符20成员访问从左到右.3赋值从右到左=关联性a OP b OP c;左关联(左到右)相当于把左边的子表达式加上小括号(a OP b) OP c,右关联(右到原创 2021-03-01 14:09:02 · 184 阅读 · 2 评论 -
Mockjs初体验
安装npm install mockjs --save-dev语法与内置方法官方文档:Mock基础使用新建mock文件夹下index.js//mock生成数据与基础增删改查import Mock from 'mockjs'var allChannels = Mock.mock({ 'channelsList|34': [{ "id": "@increment()", "province": "@province()" }]})Mock.mock('/ap原创 2021-02-26 17:13:07 · 114 阅读 · 0 评论 -
JavaScript数据类型和检测
JavaScript的数据类型分为值类型(基本数据类型)和引用类型(对象类型)。值类型值类型有 Null、Undefined、Boolean、String、Number、BigInt、Symbol类型。值类型的数据是确定的,内存空间可分配,按值存放在栈中。值不可变:原始值是不可更改的(str[1]='q'不生效),但是可以重新赋值,相当于返回了一个新的值。Number:JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(253 -1) 到 2原创 2021-02-24 14:58:26 · 123 阅读 · 0 评论 -
js基础——递归
递归没有到临界值的时候会瞬间开很大的内存,在算出临界值之后瞬间释放如下图:从 100 — 1拿到临界值1 再 1— 100 依次释放(这里涉及垃圾回收机制 和 内存管理机制)特点:函数自己调用自己一般情况有参数一般情况下有return方法:首先找临界值,即就是无需计算获得的值找这一次和上一次的关系假设当前函数已经可以使用,调用自身计算上一次一些递归的例子兔子繁殖问题(类似:斐波那契数列):假设有一对新生的兔子,从第四个月开始他们每个月月初都生一对兔子,新生原创 2020-12-28 16:53:00 · 137 阅读 · 0 评论 -
js基础——一些for/while循环的例子
// 1.左直角等边三角形function circle(){ for (let i = 1; i <= 5; i++) { for (let j = 1; j <= i; j++) { document.write('⭕'); } document.write('<br/>'); }}circle();// 2.九九乘法表function multiplicationTable(){ for (let i = 1; i原创 2020-12-23 17:22:35 · 477 阅读 · 0 评论 -
a==a && a==!a 当a取值为何时这个语句为true?——相等操作符中的隐式转换
看到公众号推文 ![ ]==[ ] 值是什么,原以为取反的式子肯定是false,但这个比较的确让我心头一惊Σ(っ °Д °;)っ那今天就具体看看隐式转换是怎么进行的吧相等运算符一、可能会被忽略的细节一、可能会被忽略的细节同类型的比较就不用说了,一般会被大家忽略的都是不同类型比较的时候所出现的类型隐式转换的问题。1 == '1' //true1 == true //truenull == undefined //true上面的都比较好理解,对于,MDN上是这么说的:.原创 2020-10-26 17:25:54 · 508 阅读 · 0 评论