JavaScript
xiaye_go
记录下来的东西才是自己的,不然不久就忘了
展开
-
JS-箭头函数中的this
箭头函数中的this在定义时就确定了,不是在执行时确定的var y = 22;var obj1 = { y: 33, fn:function(){ return function(){ return this.y;//22 这是匿名函数,this是在执行时确定的 } }}var obj2 = { y: 77, fn:function(){ return ()=>{ return this.y;//77 这是箭头函数,this在定义时就确定了,指向当前函原创 2020-11-08 14:19:16 · 234 阅读 · 0 评论 -
JS-匿名函数的全局性
匿名函数中的this在没有明确挂载的时候具有全局性,指向window,如果是"use strict"模式下,this没有确定的挂载的话,则为undefined(如有错误,请指出,谢谢!)但是在有明确指向时,则指向挂载对象下面例子,非"use strict"模式var x = 20;var obj = { x : 15, fn:function(){ return function(){ console.log(`this is :${this}`); return th原创 2020-11-08 13:50:34 · 677 阅读 · 2 评论 -
JS-函数类对象工具和实例类对象工具的区别
let TestUtil = ({ function TestUtil(){ this.name = "xiaye"; this.age = 18; console.log("这里是TestUtil的构建函数"); this.fun5 = function(){ console.log("use runtime fun5"); } } TestUtil.fun5 = function(){ console.log("use TestUtil fun5"); }..原创 2020-08-22 13:51:53 · 256 阅读 · 0 评论 -
JS-在原型链prototype创建函数和构造函数上创建函数的区别
摘要: 一直不明白在构造器和原型链上创建函数有什么区别,一直以为在构造器上创建函数 和 prototype上创建的函数是一样的结果(因为一直以来都是使用class创建的对象———使用TS),当然现在谈的只限于使用函数构造器构造的对象,而非class构建的对象,此文只是本人的理解,如有错误望指出。TestUtil:构造函数 prototype:原型链 obj:实例对象一.在构造函数TestUtil上创建的函数只能用于构造函数这个对象使用,构造函数构造的对象obj无法使用Te...原创 2020-08-22 03:58:24 · 353 阅读 · 0 评论 -
Js-字符串接口
一:字符串的分割二:字符串的截取三:字符串的替换四:字符串大小写转换五:字符串去空格六:其它原创 2020-07-11 11:47:40 · 232 阅读 · 0 评论 -
JS-类型判断
item.construct.name原创 2020-05-25 17:27:48 · 159 阅读 · 0 评论 -
JS-数组遍历中删除元素的方法优化
很久没写博客,最近被项目虐的有点惨现象:项目中经常碰到一个数据遍历中要删除其中元素的情况,如果使用正序遍历,删除项的时候,数组长度减了1,但是下标i 却执行了++,导致删除i的下一项被跳了过去一般解决:此时可以在删除下标i的时候执行 i--(使下标回退一个位置)优化解决:可以通过倒叙遍历的方法,倒叙遍历的时候不管删了多少元素,没遍历的元素不会被跳过,比上一个方法简单//一般解决方...原创 2019-06-15 10:35:39 · 9025 阅读 · 2 评论 -
JS-ArrayBuffer (二)
上节对ArrayBuffer有了基本的了解,不过没提及如果读取和修改buffer里面的数据,这节主要来说说能够修改buffer的视图类常用视图类型TypeArray:视图类型 数据类型 占位数 字节数 有无字符 Int8Array 整数 8 1 有 Uint8Array 整数 8 1 无 Int16Arra...原创 2019-02-14 15:23:41 · 1013 阅读 · 0 评论 -
JS-字符串的常用方法总结
1.str.charCodeAt(index);//获取字符的uinicode码原创 2019-02-13 20:00:18 · 209 阅读 · 0 评论 -
JS-ArrayBuffer(一)
ArrayBuffer是JavaScript用来处理二进制的,ArrayBuffer对象保存着原始二进制数据,它不能对数据进行操作,只能通过视图类(TypeArray或DataView)才能对数据进行读写。ArrayBuffer特点:1.数组里面存放的是二进制原始数据01,以字节为单位,一个字节8位2.初始化后固定大小构造函数://创建了2个字节的ArrayBuff...原创 2019-02-13 11:31:40 · 5573 阅读 · 0 评论 -
JS-ArrayBuffer (三)
视图:dataview原创 2019-02-14 15:58:54 · 702 阅读 · 0 评论 -
JS-浅拷贝和深拷贝问题
项目经历:FastPlanData.originSets = FastPlanData.curSets;//修改了了curSets之后不想保存,想使用FastPlanData.curSets = FastPlanData.originSets//还原回来,由于是浅拷贝,导致还原不成功...原创 2019-01-16 22:00:29 · 121 阅读 · 0 评论 -
非常用运算符记录
+= 或者 -= 或者*= 或者/=var a=1;var b = 2;a+=b 相当于 a=a+b;//3 | "按位或"运算符(使用二进制的位来运算的)&“按位与”运算符(使用二进制的位来运算的)计算如下:基础如下:按位或|计算0|1//11|0//10|1//0;true|false//1 (true,false为1,0)按位...原创 2019-01-18 12:57:06 · 109 阅读 · 0 评论 -
JS-第四章:变量,作用域和内存问题总结
一.类型说明数据类型:基本数据类型和引用数据类型基本数据类型:number, string(值)等引用数据类型:Obj(引用)基本数据特性:基本数据类型的值保存在栈中(有固定的内存大小),作为函数参数使用,传递的是值引用数据特性:引用数据类型的对象保存在堆中,作为函数参数,传递的是指针例子(传入值和引用的区别): let obj1 = { num:2};let ...原创 2018-09-02 16:16:23 · 183 阅读 · 0 评论 -
JS-第五章:几个引用类型简述
一.对象的创建方法1. let obj = new Object();//会调用构造函数2.let obj = {};//不会调用构造函数二.获取对象属性的方法1. let atrr = obj["attr"];2.let attr = obj.attr;三.数组对象的特性和接口(1).创建方法1.let arr = new Array(3);//规定了长度为3//...原创 2018-09-23 11:30:44 · 132 阅读 · 0 评论 -
JS-某对象内this是谁的判断
一.问题描述在工作中接个SDK接口的时候遇到个问题,就是在类中调用别的对象方法时,该方法参数为一个对象,该对象里面的value值里面的this,不知道是谁:可能是1.当前操作类对象,2.可能是当前方法的所属对象代码如下declare let share_game: any;class LoginView { public constructor() { ...原创 2018-09-23 16:27:05 · 229 阅读 · 0 评论 -
JS-HTML:DOM节点关系图
一.HTML中节点间的关系(1).例子:一个div继承路线:HTMLDivElement---HTMLElement---Element---Node---EventTarget---Function---Object如图:原创 2018-09-23 16:53:32 · 1795 阅读 · 0 评论 -
JS-第十章初识DOM
一.Node节点(几乎都继承于该接口)(1).node基本属性:1.someNode.childNodes;//NodeList类型//获取该节点所有的内容2.someNode.children;//HTMLCollection类型,真正的element节点//获取该节点下所有的元素节点(DOM-HTML类型)(区别上一个属性,注释或别的不在其内)3.let oneNode = ...原创 2018-09-23 22:44:42 · 226 阅读 · 0 评论 -
JS-十一章:DOM扩展
一.扩展方法1.querySelector('');//方法接收一个css选择符,返回符合的第一个元素,没有则返回null2.querySelectorAll('');//返回一个NodeList集合3.getElementsByClassName(' ');//返回NodeList,接收类名二.扩展的属性说明:使用这些属性,不必担心空文本节点(空的也存在)1.childE...原创 2018-09-24 21:01:52 · 168 阅读 · 0 评论 -
JS-连等号a.x=a={n:2}引发的思考
先看例子var a: any = { n: 1};var b = a;a.x = a = { n: 2 };//方式1//a = a.x = { n: 2 };//方式2console.log(a.x);//undefinedconsole.log(b.x);//{n:2}错误分析思路1.:a={n:2}, a.x = a;//a和a.x都指向了{n:2}内存//然后输出a.x...原创 2018-11-09 14:47:14 · 5916 阅读 · 2 评论 -
JS--__proto__和prototype的原型链理解
关键词1.对象的原型对象Object.prototype2.函数的原型对象Function.prototype3.对象的原型对象和对象构造函数的互指关系4.函数的原型对象和函数构造函数的互指关系 __proto__每个普通的对象(new Object()产生的)都会带有__proto__隐性属性,这个属性叫做原型对象,一般不可直接使用个人理解这个属性的作用:1....原创 2018-11-07 15:37:03 · 266 阅读 · 0 评论 -
JS-()=>{}使用判断this
使用方法1:x=>x+x 等同于 function(x){return x + x}使用方法2:当多个参数时得加(): (x, y)=>x+y 等同于function(x,y){retutn x+y}使用方法3:当函数体有多个表达式则加{}:(x,y)=>{...} ()=>{}使用的时候注意,函数体内的this为使用该函数时的上下文执行环境中的this,如...原创 2018-11-10 11:18:03 · 696 阅读 · 0 评论 -
JS-This判断归属
js函数中this取何值,只有在函数调用时才确定的,定义的时候确定不了,因为this属于执行上下文环境中的一部分,而执行上下文环境在函数每次调用的时候可能都不一样情况1:new Function() 和普通调用当一个函数作为构造函数使用时,函数执行时,this为new出来的对象。严格的说所有的函数都可以用作构造函数,都可以new出一个对象 function Test() { ...原创 2018-11-08 15:03:10 · 334 阅读 · 0 评论 -
JS-变量作用域的判断
工作中有时候会遇到函数中的参数不知道属于哪个,有两种情况下容易弄混1.函数带参数,传入的参数的来源判断2.函数不带参数,函数体内的参数的来源判断(特别注意)情况1:如果函数带参数,则在调用该函数时,就可以知道该参数是来自哪里,从调用时的执行上下文环境中判断参数来源,如下代码 let x = 100; let fn = function (x) {...原创 2018-11-08 17:41:38 · 528 阅读 · 0 评论 -
JS-引用类型obj的使用注意情况
项目中碰到一个数组对象引用问题大概如下:1.基本操作this._list = this.baseData.list;在接收服务器数据时 数据发生了变化this.baseData.list = [];this.baseData.list = severData.list;2.发现问题然后使用该数组对象的引用时发现引用对象和本来的数组对象不一样 this._list !==...原创 2018-09-02 15:55:27 · 279 阅读 · 0 评论