原生JS
tongtongtheBEST
这个作者很懒,什么都没留下…
展开
-
原生JS -- 深度解读promise
1、概念Promise作为一个单词,有承诺、许诺的意思。那我说其实作为一个程序它也是这个意思。此话怎讲?先让我们回到生活,比如我现在做出一个承诺,过几天我这篇文章的访问量会上1k。那么过几天,势必会出现两个结果之一:1、上1k了,我的承诺实现了;2、没有1k,我的承诺失败了。对于程序Promise,它也是如此,在你创建之时,它就许下了一个承诺,在将来它会出现两个结果之一,要么失败要么成功(就像几天后我博客的访问量,不可能上了1k又没上1k)。这就对应着Promise的三种状态,分别是penddin原创 2020-08-16 17:16:32 · 938 阅读 · 0 评论 -
原生JS -- 带你深入理解‘JS实现继承‘的8种方式
1、概念让某一个不具备方法和属性的对象,具有另一个对象的方法和属性,这个过程叫做继承tips: 下面每种继承方式的总结很重要,注意阅读2、继承方式2.1、改变this指向2.1.1 利用对象改变this指向的继承var obj = { name: "我是obj", show: function() { console.log(this.name); }}obj.show(); // 我是objvar obj2 = { name: "我是obj2"}// 想要利用sh原创 2020-08-13 12:17:11 · 212 阅读 · 0 评论 -
原生JS -- 关于面对对象,这篇解析得通俗易懂
引言初学者在学习面对对象时可能总是会被绕晕,也理解不了面对对象中各种概念,但是了解原型链在面对对象编程中极为重要,也意味着你能否学懂面对对象编程。下面我会结合实际案例,在讲解原型链时向大家一一解释。不知道大家是否还记得,在创建对象时,有两种创建方式。一种是字面量创建,即let arr = [2, 3, 4];,另一种是构造函数创建,通过关键字new来创建,即let arr = new Array(2, 3, 4);。那这里我们先说一下new的原理:...原创 2020-08-05 15:53:08 · 1610 阅读 · 0 评论 -
原生JS -- ES5新增数组的方法详解
引言ES5之前版本的数组的方法,如,push()、slice()、concat()、sort()等,相信大家不陌生,使用简单,容易理解,但是功能也有限,玩不出花样。下面给大家详细介绍的ES5新增数组的方法,我们主要从功能、参数、返回值、是否改变原数据四个方面来展开,有效帮助大家理解、记忆并使用。1、indexOf()1、功能:根据指定数据,从左向右查询数据,查询索引2、参数: * 一个:表示要查询的数据 * 两个:第一个表示要查询的数据,第2个表示查找的起始位置(包括)3、返原创 2020-08-01 22:30:24 · 304 阅读 · 1 评论 -
原生JS -- 函数(function)最全分类及其使用场景
声明:每个人对函数分类的定义不一样,所以这个分类并不是固定的。此篇文章中,笔者只按照自己的理解进行分类哈!1、有名函数即普通函数、正常函数,“名”指的是函数名。声明式和赋值式创建的函数都属于有名函数执行方式:函数名 | 变量名()// 声明式创建函数function f1(){ console.log("welcome to my blog");}// 声明式创建函数的执行f1(); // welcome to my blog// 赋值式创建函数var f2 = functio原创 2020-07-19 01:16:01 · 1735 阅读 · 1 评论 -
原生JS -- 三大特殊数据类型
1、NaN概念:非法的数值运算得到的结果特殊点:是一个数值型的数据,但不是一个数字NaN不等于任何值(包括它本身),和任何数据都不相等 console.log(typeof NaN); // number console.log(NaN == NaN); // false【注】计算机认为每一个NaN都是非法运算的结果,每一个NaN的来源都不一样,所以不相等。检测方法:isNaN()隐式类型转换,将数据转成数值,严格转换,能识别小数点 console.log(isNa原创 2020-07-04 23:44:34 · 350 阅读 · 0 评论 -
原生JS -- 隐式类型转换的场景
场景一、算术运算符规则:+ 号两边只要出现字符,结果必然为字符 console.log(1 + 1); // 2 console.log("1" + 1); // 11 只要有一边出现字符,就是字符串的拼接-、 *、/、 % 将字符转换成数字,再进行正常的运算的结果如果某个数据不能转成数值,会得到NaN,NaN和任何数据做运算都是NaN console.log("2" - 1); // 1 将字符"2"转换成数字2,再进行正常的运算 console.log("2" * 1);原创 2020-07-03 11:18:27 · 454 阅读 · 0 评论 -
原生JS -- 数据的深浅拷贝
1、引言想要知道数据深浅拷贝的原理,那一定要知道它们存储的方式。在这里我们先简单介绍一下 不同数据类型的存储方式。原创 2020-07-12 11:46:43 · 792 阅读 · 1 评论 -
原生JS -- 编译与执行
JS在执行代码时,会先编译,再执行。所谓编译,即通读全文,找到var和function,做出对应提升;执行时,按照逻辑,结构正常执行。下面给大家介绍几种提升的情况。1、变量的提升找到所有的var关键字,把var的声明,提升到的作用域最开始的位置。var声明的变量会提升但赋值会在原本位置 console.log(a); // undefined var a = 10; console.log(a); // 10 '↑↑↑↑等价于↓↓↓↓'原创 2020-07-05 13:17:05 · 1604 阅读 · 0 评论