JS
笔记
丫呀nice
这个作者很懒,什么都没留下…
展开
-
后端传数字或字符串,前端显示汉字
后端传数字或字符串,前端显示汉字当表格通过遍历dataList方式写出,没有将每一列通过标签单独列出时,可以采用此方法注:若是每一列通过标签单独列出,可直接通过映射方法解决后端传来数据data{ rows:[ 0:{userid:'01' ,userName:'001'} 1:{userid:'02' ,userName:'002'} 2:{userid:'03' ,userName:'003'} ]}前端需要将userName的001对应成中文//this.dataList原创 2021-12-29 16:58:40 · 2360 阅读 · 0 评论 -
js把两个对象合并成一个对象
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象语法:Object.assign(target, ...sources)实例:var obj = { a: 1 };var copy = Object.assign({}, obj);console.log(copy); // { a: 1 }如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。String类型和 Symbol 类型的转载 2021-11-04 10:36:41 · 7107 阅读 · 0 评论 -
onClick的html 单引号+双引号:传参的转义问题
示例:var data=“111”;1.外部双引号:var html="<div οnclick=\"showData(' " + data + " ')\">AAA</div>";2.外部单引号:var html='<div οnclick="showData(\' ' + data +' \')">AAA</div>';注意点:需要用转义字符...转载 2021-11-04 10:16:41 · 784 阅读 · 0 评论 -
JS继承
1.原型链继承2.借用构造函数继承(经典继承)3.组合继承4.原型式继承5.寄生式继承6.寄生组合式继承既然要实现继承,那么首先我们得有一个父类,代码如下:1.原型链继承原型链继承是通过 将一个类型的实例赋值给另一个构造函数的原型实现的。这样子类型就可以访问超类型的所有属性和方法。不适合单独使用。核心: 将父类的实例作为子类的原型特点:实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性。(新实例不会继承父类实例的属性!) 缺点:1、在创建子类型的实例时,无转载 2020-09-09 11:18:02 · 136 阅读 · 0 评论 -
JS内存泄漏与垃圾回收机制
**执行环境定义了变量或者函数有权访问的其他数据,决定了他们各自的行为。**每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量的函数都保存在这个对象中。虽然我们编写的代码无法访问到这个对象,但是解析器在处理数据会在后台调用它。全局执行环境被认为时window对象。什么是内存泄漏?程序的运行需要内存,只要程序提出要求,操作系统或者运行是就必须供给内存。对于持续运行的服务进程,必须及时释放内存,否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。不再用到的内存,没有及时释放,就叫做内转载 2020-09-02 21:15:32 · 205 阅读 · 0 评论 -
JS的6种数据类型
5种简单数据类型 (Undefined,Null,Boolean,Number,String) + 1种复杂数据类型(Object)typeof 操作符 不是函数注意:typeof null 会返回Object ,因为特殊值null被认为是一个空的对象引用Undefined类型Undefined类型只有一个值,即特殊的undefined。在使用var声明 但未对其加以初始化时,这个变量就是undefinedalert(mes)一个未声明的变量(mes)会报错但alert(typeof原创 2020-09-01 21:34:57 · 314 阅读 · 0 评论 -
this指向问题
全局上下文 非严格模式和严格模式中this都是指向顶层对象(浏览器中是window)。1.默认绑定 独立调用普通函数调用,此时 this 指向 window被嵌套的函数独立调用时,this默认指向了window自执行函数 this默认指向了window闭包中this默认指向window2.隐式绑定 方法调用当函数当作方法来调用,this指向了直接对象3,显示绑定 间接调用( call() apply() bind() )call() apply() bind(.原创 2020-08-21 15:14:40 · 357 阅读 · 0 评论 -
箭头函数与普通函数的区别
箭头函数是匿名函数,不能作为构造函数,因此不能使用new箭头函数不绑定arguments,取而代之的使用rest参数代替箭头函数不绑定this,但会捕获上下文的this,作为自己的this箭头函数通过 call() 或 apply() 方法调用一个函数时,只是传入了参数而已,对 this并没有什么影响箭头函数没有原型属性箭头函数不绑定arguments,取而代之的使用rest参数代替ES5中的argumentsfunction func(a,b,c){ console.log(argu.转载 2020-08-20 15:37:50 · 295 阅读 · 0 评论 -
变量提升
变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。变量可以在使用后声明,也就是变量可以先使用再声明。变量提升不能跨scriptvar 和 let 的区别是什么?答案之一就有 let 不会变量提升函数提升函数会优先于变量 先提升console.log(foo);var foo=10;console.log(foo);function foo(){ }console.log(foo);执行结果:function a(){}var a;conso转载 2020-08-14 23:31:44 · 111 阅读 · 0 评论 -
JS 作用域及作用域链
JS 作用域及作用域链一、作用域在 Javascript 中,作用域分为 全局作用域 和 函数作用域全局作用域:代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局作用域。函数作用域:在固定的代码片段才能被访问作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。变量取值:到创建 这个变量 的函数的作用域中取值二、作用域链一般情况下,变量取值到 创建 这个变量 的函数的作用域中取值。但是如果在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这转载 2020-08-14 22:36:59 · 162 阅读 · 0 评论 -
tab切换事件获取切换页的index,并赋给对象里的参数
tab页切换需要知道切换的index在div里加入事件**onactivechanged=“h.activechanged”**类似于点击事件οnclick=‘f1()’这里调用的是h里的函数activechanged我们获取到index之后 如何把它放到对象里:定义全局变量var index=0; 然后就可以调用了//在miniui里找到tab页的代码 加入事件activechanged 加on <div id="tabs1" activeIndex="0" onactivec原创 2020-05-28 11:10:18 · 1818 阅读 · 1 评论 -
JSON.parse(JSON.stringify(obj))实现深拷贝的弊端
JSON.parse(JSON.stringify(obj))我们一般用来深拷贝,其过程说白了 就是利用JSON.stringify 将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象;序列化的作用是存储(对象本身存储的只是一个地址映射,如果断电,对象将不复存在,因此需将对象的内容转换成字符串的形式再保存在磁盘上 )和传输(例如 如果请求的Content-Ty...转载 2020-04-16 17:06:48 · 2365 阅读 · 0 评论 -
js 小数取整的函数
1.丢弃小数部分,保留整数部分js:parseInt(7/2)2.向上取整,有小数就整数部分加1js: Math.ceil(7/2)3,四舍五入.js: Math.round(7/2)4,向下取整js: Math.floor(7/2)转载 2020-04-12 13:47:15 · 147 阅读 · 0 评论 -
原型和原型链
一、构造函数构造函数模式的目的就是为了创建一个自定义类,并且创建这个类的实例。构造函数模式中拥有了类和实例的概念,并且实例和实例之间是相互独立的,即实例识别。构造函数就是一个普通的函数,创建方式和普通函数没有区别,不同的是构造函数习惯上首字母大写。另外就是调用方式的不同,普通函数是直接调用,而构造函数需要使用new关键字来调用。 function Person(name, age, g...转载 2020-04-09 11:34:59 · 235 阅读 · 0 评论 -
JS
1.Javascript有哪几种数据类型基本类型:字符串类型(string),数字类型(number),布尔类型(boolean)复杂类型:数组类型(array),对象类型(object),函数类型(function),正则类型(regexp)空类型:undefine 和 nullnull和undefind的区别null是表示一个空的对象,转为数值为0,undefind表示...转载 2020-04-09 10:52:33 · 162 阅读 · 0 评论 -
indexOf() 与 substring()
IndexOf()查找字串中指定字符或字串首次出现的位置,返首索引值,如:str1.IndexOf("字"); //查找“字”在str1中的索引值(位置) str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的索引值(位置) str1.IndexOf("字",start,end);//从str1下标为start的字符起,查找end个字符, //注意:start+...原创 2020-04-09 10:50:24 · 287 阅读 · 0 评论 -
箭头函数的this
箭头函数不绑定this,箭头函数没有自己的this关键字如果在箭头函数中使用thisthis关键字将指向箭头函数定义位置中的thisfunction fn(){ console.log(this); return()=>{ console.log(this); } } const obj={name:'zhangsan'}; const resFn=fn....转载 2020-04-08 15:27:16 · 103 阅读 · 0 评论 -
子构造函数继承父构造函数的属性和方法
ES6之前没有给我们提供extends继承,我们可以通过构造函数+原型对象模拟实现继承,被称为组合继承call()function fn(x,y){ console.log('我想干嘛'); console.log(this); console.log(x+y); } var o={ name:'aaa' }; fn();//这里输出的this指向window //1...转载 2020-04-08 17:57:28 · 385 阅读 · 0 评论 -
this的指向问题
1.构造函数里面的this指向的是对象实例2.原型对象函数里面的this指向的是实例对象ldhfunction Star(name,age){ this.name=name; this.age=age; } var that;//定义一个全局变量 Star.prototype.sing=function(){ console.log('我会唱歌'); that=this;...转载 2020-04-08 16:43:02 · 94 阅读 · 0 评论 -
浅拷贝和深拷贝
Object.assign(target,sources) ES6新增方法浅拷贝target:拷贝的副本深拷贝:每一级别的数据都拷贝浅拷贝浅拷贝:当B拷贝了A的数据,且当B的改变会导致A的改变时,此时叫B浅拷贝了A这是把A的堆内存地址赋值给了B,A和B储存的是同一个地址,指向的是同一个内容,因此B的改变当然会引起A的改变。浅拷贝的方式直接赋值第一种方式就是上面所写代码中的将对...转载 2020-04-08 11:40:48 · 113 阅读 · 0 评论 -
js数组增删改查的方法
一、增1、push()可接收任意数量的参数,把它们逐个添加至数组末尾,并返回修改后数组的长度。例如:var arr = [];var len = arr.push(1);console.log(arr); // [1]console.log(len); // 1len = arr.push(2,3);console.log(arr); // [1,2,3]console.log(...转载 2020-04-02 15:40:29 · 786 阅读 · 0 评论 -
闭包
一. 闭包的概念闭包就是能够读取其他函数内部变量的函数。,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。二.闭包的用途它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。function f1(){...转载 2020-04-01 01:19:49 · 110 阅读 · 0 评论 -
判断数据类型的5种方法
1. typeof可以判断数据类型,它返回表示数据类型的字符串(返回结果只能包括number,boolean,string,function,object,undefined);可以使用typeof判断变量是否存在(如if(typeof a!=“undefined”){…});Typeof 运算符的问题是无论引用的对象是什么类型 它都返回objecttypeof {} // objec...转载 2020-03-31 00:26:23 · 5664 阅读 · 0 评论 -
请谈一谈你对于eval的理解,它实现了什么功能?
它的功能是将对应的字符串解析成js并执行,应该避免使用js,因为非常消耗性能(2次,一次解析成js,一次执行)转载 2020-03-25 11:41:20 · 384 阅读 · 0 评论 -
js防抖与节流以及应用场景
在前端开发中会遇到一些频繁的事件触发,例如input,keyup,keydown,scroll,resize,mousemove等,这非常影响性能,所以我们需要控制它们触发的频率,方法就是防抖与节流。防抖防抖的原理就是:要等你触发完事件 n 秒内不再触发事件,我才执行。 function debounce(func, wait) { var timeout; ...转载 2020-03-20 22:16:31 · 1106 阅读 · 0 评论 -
slice() 与 splice()
一. slice() 截取,原数组不变arrayObject.slice(start,end)返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。原数组不变二. splice() 截取,原数组改变arrayObject.splice(index,howmany,item1,…,itemX)index :必需。整数,规定添加/删除项目的位...原创 2020-03-02 20:51:49 · 111 阅读 · 0 评论 -
字符串 与 数组之间的转换
一. 字符串 —》 数组stringObject.split(separator,howmany)separator:以separator分割字符howmany:返回字符串的长度var str = "aaa,bbb,ccc";strArr1 = str.split(",");/*以","分割字符*/strArr2 = str.split("");/*以""分割字符*/var h...原创 2020-03-02 20:23:09 · 180 阅读 · 0 评论 -
JS 字符(字母) 与 ASCII码 转换方法
一. 字母ASCII码值大写字母 :A 到Z 的值是 从65 到90小写字母 :a到z 是从 91 到 122二. 字符 与 ASCII码值 之间的转换字符 —> ASCII码值:‘A’.charCodeAt();ASCII码值—>字符:String.fromCharCode(65);...原创 2020-03-02 16:10:18 · 2166 阅读 · 1 评论 -
JavaScript的三大组成部分
ECMAScript,文档对象模型(DOM),浏览器对象模型(BOM)ECMAScript:他是一套标准,定义了脚本语言规范;JavaScript的核心描述了语言的基本语法(var、for、if、array等)和数据类型(数字、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义)文档对象模型(DOM):用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器...原创 2020-01-11 10:34:39 · 180 阅读 · 0 评论 -
浏览器是如何渲染页面的呢 DOM
文字解析:输入的网址在通过DNS解析后得到服务器地址浏览器向服务器发起http请求,经过TCP/IP三次握手确认链接后,服务器将需要的代码发回给浏览器。浏览器接收到代码后进行解析,经过三大步骤:DOM构造、布局以及绘制页面,最终展现为人人都能看懂的网页。实际上所谓的渲染页面,就是返回一堆 html,你觉得 html 和 DOM 有区别么?浏览器解析 html 代码并抽象成一个树结构的文档...转载 2020-01-08 17:32:40 · 474 阅读 · 0 评论 -
BOM
1.什么是BOM,BOM与DOM的区别?• BOM:是浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。• DOM:是文档对象模型,用来获取或设置文档中标签的属性,例如获取或者设置input表单的value值。2.什么是API?API : Application Programming Interface (应用 编程 接口)任何 Appl...原创 2020-01-08 11:38:23 · 97 阅读 · 0 评论