使用“declare global”操作即可. 项目根目录下新建myDeclareFile.d.ts declare global { interface Navigator { mediaSession: any } interface String { myExtendAction: () => void } const myVariable = 1 }…
扩展原生js的Array类 Array.prototype.add = function(item){ this.push(item); } Array.prototype.addRange = function(items){ var length = items.length; if(length!=0){ for (var index = 0; index < length; index++) { this.push(items[index]); } } } Array.prototype…
经常需要copy一个对象,又怕拷贝有问题,那下面这段就很方便啦,不用担心copy只是一个引用了. /** @ values 需要copy的变量 */ function deepClone(values) { var copy; if(values == null || typeof values != "object") return values; // 为null或者不是对象直接返回 if(values instanceof Date) { // Date对象 copy = new…
数据类型 基本类型值包括: undefined,null,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,它们的值保存在栈空间,我们通过按值来访问的. 引用类型包括:对象.数组.函数等. 对于引用类型的值,则必须在堆内存中为这个值分配空间.由于引用类型值的大小不固定(对象有很多属性和方法,而且还可以动态的添加属性和方法),因此不能把他们保存到栈内存中.但内存地址大小是固定的,因此可以将内存地址保存在栈内存中. 简而言之:栈内存中存放的是基本数据类型值,堆内存中…
数据类型 基本类型值包括: undefined,null,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,它们的值保存在栈空间,我们通过按值来访问的. 引用类型包括:对象.数组.函数等. 对于引用类型的值,则必须在堆内存中为这个值分配空间.由于引用类型值的大小不固定(对象有很多属性和方法,而且还可以动态的添加属性和方法),因此不能把他们保存到栈内存中.但内存地址大小是固定的,因此可以将内存地址保存在栈内存中. 简而言之:栈内存中存放的是基本数据类型值,堆内存中…
JS对象类型 JS中,可以将对象分为"内部对象"."宿主对象"和"自定义对象"三种. 1.本地对象 ECMA-262定义为"独立于宿主环境的JS实现提供的对象".简单来说,本地对象就是JS定义的类(引用类型).它们包括: Object/Function/Array/String/Boolean/Number/Date/RegExp/Error/ EvalError/RangeError/ReferenceError/Synta…
我们先从盘古开天辟地时捋一捋对象: 从宏观内容来讲,javascript是一个属性的集合,包括值,函数,而整个集合也可以类比为一个对象. js = { a的变量名: a的值, ... 函数b: function () {} ... } 注: 这里的js指的是javascript对象(ECMAscript对象),而不是DOM和BOM对象. 紧接着我们听到一个“传说”:‘javascript中一切都是对象’  ,或者说是有这么一个说法,但到底说的正确还是不正确,我们还需要自己追根溯源,挖掘一下: 从…
前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. 上一篇博客中,小编给大家展示了jQuery的一大优势,自定义插件.相信这个功能让各位都跃跃欲试,…
  前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. 今天,影子就通过一个小游戏,剪刀石头布,来给大家介绍下,两者之间的区别. 1.原生JS实现游…
一.Js原生对象和jQuery实例对象的相互转化: (1).原生JS对象转JQ对象: $(DOM对象); (2). JQ对象转原生JS对象: $(DOM对象).get(index); //注意区分eq(index)是jQuery实例对象; 直接下标访问, $(DOM对象)[index]; 二.两者操作DOM的对比 一.创建元素节点 1.1 原生JS创建元素/文本节点 document.createElement("p"); 1.2 jQuery创建元素/文本节点 $('<p>…