JavaScript
weixin_45674894
面向对象,而无实际对象
展开
-
数据结构Set和WeakSet
数据结构Set和WeakSet定义: Set是ES6提供的一种新的数据结构。它类似于数组,但是成员的值都是唯一的,没有重复的值。属性Set.prototype.constructor:构造函数,默认就是Set函数。Set.prototype.size:返回Set实例的成员总数。let set = new Set()console.dir(set.constructor); //ƒ Set() console.log(set.size); // 0set.add(1)原创 2020-09-01 19:02:09 · 134 阅读 · 0 评论 -
JavaScript中递归函数及递归深拷贝
递归函数递归函数: 函数内部直接或者间接的调用自己递归的要求:自己调用自己(直接或者间接)要有结束条件(出口)//错误示范function fn() { console.log(123); fn();//内部再次调用函数,无限循环,没有结束条件,无限输出123}fn(); //调用fn函数//正确示范var count = 0; // 统计fn函数的调...原创 2019-10-25 16:24:13 · 250 阅读 · 0 评论 -
JavaScript之String对象
String对象字符串可以类似于看做是一个数组(不是真的数组——》伪数组)// 底层会默认转换成 String对象,这里是为了演示var str = new String('abcdefg');console.log( str );如下图所示:控制台输出的是一个对象,有下标,有length属性,由此可以把字符串看做是一个数组(不是真的数组——》伪数组)字符串的遍历var...原创 2019-10-23 18:19:26 · 148 阅读 · 0 评论 -
JavaScript之Date对象
Date对象JS提供了一个Date构造函数,通过new Date() 可以获取到一个Date对象创建一个日期对象//不传参,获取一个当前时间的对象var now = new Date();//Wed Oct 23 2019 16:05:34 GMT+0800 (中国标准时间)//(格式固定)指定具体的时间对象,后面的时分秒可以省略var date = new Date("2019...原创 2019-10-23 16:44:23 · 153 阅读 · 0 评论 -
ES5数组五个迭代方法
ES5迭代方法ES5主要新增了5个迭代方法forEach()var arr = [11, 22, 33, 44];//形参可以传三个(有需要则传,不需要则不传)//v: 数组中每一项//i: 数组中每一项的下标//arr1: 数组本身arr.forEach(function (v, i, arr1) { // 遍历数组每一项,输出4个结果 console.log(v);...原创 2019-10-18 08:28:08 · 546 阅读 · 0 评论 -
分析call,apply,bind作用
call,apply,bind是Function.prototype原型上的方法任何函数都可以访问call,apply,bind方法(原因:任何函数的原型链上都有Function.prototype原型) bind,apply,call的区别 ...原创 2019-10-17 08:25:37 · 747 阅读 · 3 评论 -
JQuery源码整体架构分析
JQuery源码整体架构分析本文分析的jq版本为1.7.0//首先把jquery架构内部代码全部删除(function () { })()//很明显可以看出这是个函数的自调用函数自调用的好处:形成沙箱模式,防止全局变量污染问题//我们都知道在使用jquey功能的时候可以用$ 和 jQuery作为标识符,那他们是哪里来的?(function (window, undef...原创 2019-10-16 09:04:56 · 266 阅读 · 0 评论 -
JavaScript之Math对象
Math对象Math对象中封装很多与数学相关的属性和方法。Math对象没有构造函数Math(),无需创建它,通过把 Math 作为对象使用可以直接调用其所有属性和方法。圆周率// 圆周率 π Math.PIconsole.log( Math.PI );//3.141592653589793最大值/最小值(重要)//最大值:Math.max()//最小值:Math....原创 2019-10-15 08:27:25 · 249 阅读 · 0 评论 -
BFC 神奇背后的原理
BFC神奇背后的原理BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等)。虽然我知道如何利用 BFC 解决这些问题,但当别人问我 BFC 是什么,我还是不能很有底气地解释清楚。于是这两天仔细阅读了CSS2.1 spec 和许多文章来全面地理解BFC。一、BFC是什么?在解释 BFC 是什么...转载 2019-10-14 15:54:27 · 408 阅读 · 0 评论 -
函数的四种调用模式=>分析this指向
函数的四种调用模式注意:在函数声明的时候是无法确定this的指向,只有当函数调用的时候才能确定下来!在函数中this的指向是灵活的,要想知道this的指向需要分析两点:1.看this是属于哪个函数的2.看函数是何种调用模式根据函数内部this的指向不同,可以将函数的调用模式分成4种函数调用模式构造函数调用模式方法调用模式上下文调用模式(借用方法模式)函数:当一个函数不是一个...原创 2019-10-12 21:46:52 · 416 阅读 · 0 评论 -
JavaScipt中三种常用的继承方法
JS中的继承:一个对象可以使用另一个对象的成员(属性和方法)目的:方便代码的复用继承的三种方式1.原型链继承2.借用构造函数继承3.组合继承原型链继承的写法1.往原型对象身上逐一添加属性和方法//创建一个构造函数Person,并且身上并没有任何属性和方法function Person() {}//给构造函数的原型上添加了属性sayHi方法Person.prototype.c...原创 2019-10-12 16:59:45 · 915 阅读 · 3 评论 -
ES3、ES5、ES6数组常用的方法
Array对象js中内置了一个Array构造函数,可以创建数组对象,本文主要介绍数ES3、ES5、ES6数组中一些常用的方法。join(字符串分隔符)// 语法:arr.join(分隔符)var arr = ['刘备','张飞','关羽'];// 不传参数,默认每一项之间以 逗号 进行拼接var str = arr.join(); //刘备,张飞,关羽//按 - 进行拼接va...原创 2019-10-10 14:54:35 · 747 阅读 · 0 评论 -
jquery入口函数和原生js入口函数的区别
jquery入口函数写法一;$(document).ready(function(){ 功能代码 })写法二(简写);$(function(){ 功能代码 })原生js入口函数window.οnlοad=function(){ 功能代码 }首先说一下写jquery入口函数有什么好处1.文档加载完成后执行该函数,能确保获取到元素。2.可以形成沙箱模式,防止全局变量污染问题。原生j...原创 2019-10-09 19:40:20 · 450 阅读 · 0 评论 -
JS垃圾回收机制
内存的生命周期1.分配内存(在js中自动分配)2.使用内存(读写操作)3.释放内存(在js中自动释放)垃圾回收机制所谓垃圾回收机制就是找到那些不用的值,释放其占用的内存空间,垃圾回收器每隔一段时间就会执行一次释放操作。在局部作用域中,当函数执行完毕的时候,局部变量也就没有存在的必要了,因此垃圾回收器很容易做出判断并回收。但是全局变量什么时候需要自动释放内存空间则很难判断,因此在开发中...原创 2019-10-10 08:57:55 · 652 阅读 · 1 评论 -
jsonp原理及实现步骤
JSONP(JSON with Padding)、可用于解决主流浏览器的跨域数据访问的问题。原理:服务端返回一个预先定义好的javascript函数的调用,并且将服务器的数据以该函数参数的形式传递过来,这个方法需要前后端配合。什么是同源和跨域?同源:域名、端口、协议全都相同就是同源跨域:不同源则为跨域出于安全考虑浏览器会对跨域做出一些限制,主要限制如下:1.不能共享cookie(存储数...原创 2019-10-10 09:45:00 · 937 阅读 · 1 评论