![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaScript
大斧滴熊
这个作者很懒,什么都没留下…
展开
-
原型链继承
原型链继承一、原型链1、什么是原型链:每个构造函数都有一个原型对象,原型对象有一个属性constructor指回构造函数,而实例对象有一个内部指针__proto__指向原型对象。如果原型对象是另一个对象的实例呢?那就意味着这个原型对象本身有一个内部指针指向另一个构造函数的原型对象,相应的另一个原型对象也有一个内部指针指向另一个构造函数,这样就在实例对象和原型对象之间构造了一条原型链2、原型链的作用:原型链是ECMAScript主要的继承方式,其基本思想就是通过原型链继承多个共享属性和方法3、例子/原创 2021-10-23 17:43:17 · 841 阅读 · 0 评论 -
js中判断数据类型的几种方法
例子var a = 123var b = 'apple'var c = truevar d = nullvar e = undefinedvar f = [1, 2, 3]var g = { name: 'lisi', age: 21 }var h = function () { return 1 + 2}var i = /test/var j = new Date()var k = new Set([1, 2, 3, 4])var l = new Map([ ['原创 2021-10-18 22:06:07 · 65 阅读 · 0 评论 -
js中0.1+0.2 != 0.3
console.log(0.1+0.2);//0.30000000000000004在js中0.1+0.2的结果不等于0.3,这是由于精度缺失造成的,JS数字采用IEEE 754 双精度 64 位浮点数来存储,在js中数字只能保存小数点后52位,第53位为0省略,为1进1,0.1的二进制加0.2的二进制的和第53位是1,向前进1,后面的省略,所以转换成十进制不等于0.3实际得到的0.2的二进制加0.3的二进制的结果为0.0100110011001100110011001100110011001100原创 2021-10-18 19:20:43 · 392 阅读 · 0 评论 -
ES6-class
1、 es5中通过构造函数定义类function Point(x,y){ this.x = x, this.y = y}Point.prototype.toString = function(){ console.log(this.x + '---' + this.y);}2、es6通过class关键字定义类class写法只是让对象原型的写法更加清晰,更像面向对象编程的语法,上面的代码用es6的class改写如下class Point{ constructor原创 2021-10-17 23:35:25 · 83 阅读 · 0 评论 -
判断数组类型的方法
let arr = [1,2,3]console.log(arr);//对象和数组使用typeof操作符返回的都是Object,//所以不能使用typeof操作符判断一个数组的数据类型console.log(typeof arr);//Object//判断一个数组类型有下面三种方法//1、instanceof操作符console.log(arr instanceof Array);//true//2、Array.isArray()console.log(Array.isArray(arr)原创 2021-10-11 22:47:12 · 687 阅读 · 0 评论 -
Promise对象、Generator函数、async函数
一、Promise对象Promise是一个构造函数,用来生成Promise实例Promise对象有三种状态:1、pending:"承诺发起(未完成)”2、resolved:“承诺兑现(成功)”3、rejected:“承诺未兑现(失败)”let p = new Promise((resolve,reject)=>{ if(true){ // resolve函数的作用是将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved)原创 2021-10-10 18:26:53 · 99 阅读 · 0 评论 -
javascript实现异步编程的方法
一、异步编程的方法1、回调函数2、事件监听3、发布/订阅4、Promise对象5、Generator函数6、async函数二、例子1、回调函数setTimeout(()=>{ console.log(111); setTimeout(()=>{ console.log(222); setTimeout(()=>{ console.log(333); },3000) },2000原创 2021-10-10 17:34:09 · 497 阅读 · 0 评论 -
实现深拷贝
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Doc原创 2021-10-08 23:27:43 · 81 阅读 · 0 评论 -
Qs.stringify和JSON.stringify的区别
<script> let obj = { name: 'lisi', age: 21 } // Qs.stringify(obj)将obj转换为查询字符串 console.log(Qs.stringify(obj)); // JSON.stringify(obj)将obj转换为JSON格式的字符串 console.log(JSON.stringi...原创 2021-09-30 08:54:30 · 83 阅读 · 0 评论 -
for...in循环,for...of循环,forEach()的区别
一、for…in循环一个 Array 数组实际上也是一个对象,它每个元素的索引被视为一个属性,所以 arr 数组额外添加的 name 属性也会被 for…in 循环遍历出来,但是 arr 数组的 length 属性(数组长度)却没有包含 namevar arr = ['a','b','c','d']arr.name = 'zhangsan'for (let key in arr) { console.log(key); //'0','1','2','3','name' console原创 2021-09-27 20:27:53 · 1869 阅读 · 1 评论 -
BOM常用操作
BOM(Browser Object Model)浏览器对象模型,浏览器提供的js操作浏览器的API,BOM提供了与网页无关的浏览器的功能对象,它没有正式的标准,由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。window是BOM的顶级对象,它表示浏览器的窗口,window对象在浏览器中有两重身份:1.是ECMAScript中的global对象;2.是浏览器窗口的javascript接口1.window对象1.1窗口的位置sc原创 2021-09-08 23:51:52 · 459 阅读 · 0 评论 -
什么是ajax,ajax的特点
AJAX即“Asynchronous Javascript And XML”(异步的JavaScript和XML)是指一种创建交互式网页应用的网页开发技术,用于浏览器和服务器之间进行数据交互。AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX描述了一种主要使用脚本操作HTTP的Web应用架构,AJAX应用的主要特点是使用脚本操纵HTTP和Web服务器进行数据交换,不会导致页面重载。AJAX的特点:(1)AJAX是异步的Jav原创 2021-09-07 19:44:27 · 2205 阅读 · 0 评论 -
ajax发送网络请求常用的方式
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Do原创 2021-09-07 19:29:03 · 148 阅读 · 0 评论 -
js中如何监听一个对象中属性的变化
要想监听属性的变化,首先需要通过Object.defineProperty()为需要监听的属性设置一个代理。通过改变代理的值,触发get和set的方法,在这两个方法中我们编写我们想要的操作。var book = { _year: 2020, //下划线表示是内部属性,只能通过对象的方法来读写 editor: 1};Object.defineProperty(book, 'year', { get: function () { return this._year;原创 2021-09-06 20:15:11 · 3682 阅读 · 0 评论 -
javaScript继承之组合继承
// 组合继承// 创建Animal对象function Animal(name) { this.name = name; this.categorys = ["cat", "rabbit"];}// 在Animal的原型对象上创建方法Animal.prototype.sayName = function () { console.log(this.name);};// 创建Dog对象function Dog(name, age) { // 继承Anima原创 2021-09-04 20:30:26 · 87 阅读 · 0 评论 -
javaScript继承之经典继承函数
// 经典继承// 创建Animal对象function Animal(name) { this.categorys = ["cat", "rabbit"]; this.name = name;}// 创建Dog对象function Dog() { // 继承 Animal // 经典继承函数的一个优点就是可以在子类构造函数中向父类构造函数传参。 Animal.call(this,'zhangsan'); this.age = 12;}// 在原创 2021-09-04 20:29:24 · 58 阅读 · 0 评论 -
javaScript继承之原型链的问题
// 原型链的问题// 1.原型中包含引用值导致的继承问题// 创建一个Animal对象function Animal() { this.categorys = ["cat", "rabbit"];}// 创建Dog对象function Dog() { }// 继承// 实例中的属性变成了原型中的属性Dog.prototype = new Animal();// 创建Dog实例d1var d1 = new Dog();// 调用Dog原型上的属性categorys,给这个数组的末原创 2021-09-04 20:28:33 · 55 阅读 · 0 评论 -
javaScript继承之原型链的破坏
// 原型链的破环function Animal() { this.name = 'animal';}Animal.prototype.getAnimalName = function () { console.log(this.name);};function Dog() { this.name = 'dog';}// 继承Dog.prototype = new Animal()// 以对象字面量方式创建原型方法会破坏之前的原型链Dog.prototype =原创 2021-09-04 20:27:36 · 90 阅读 · 0 评论 -
javaScript继承之原型链上的方法
// 原型链上的方法// 创建Animal对象function Animal() { this.name = 'animal'; this.age = 1;}// 定义Animal对象的原型对象上的方法Animal.prototype.getAnimalName = function () { console.log(this.name + 'getAnimalName');}// 创建Animal实例var a1 = new Animal()// a1实例调用An原创 2021-09-04 20:26:48 · 209 阅读 · 0 评论 -
javaScript继承之原型链
// 原型链// 创建Animal构造函数(Animal对象)function Animal(){ this.name = 'Animal';}// 声明Animal对象的原型对象的方法Animal.prototype.getAnimalName = function(){ console.log(this.name + '------' + 'getAnimalName');}// 创建Dog构造函数(Dog对象) function Dog(){ this原创 2021-09-04 20:24:47 · 38 阅读 · 0 评论 -
javaScript创建对象的几种方式的优缺点
// 1.字面量方式创建对象// 优点:方便简单;// 缺点:创建的对象是一次性的,如果要创建同种类型的对象需要多次创建var person = { name: "zhangsan", age: 18, gender: 'male', sayName: function(){ console.log(this.name); } }// 2.Object构造函数创建对象// 缺点:创建同种类型的对象需要多次创建,并且实例化的对象和属性是分开原创 2021-09-03 10:38:29 · 270 阅读 · 0 评论