JavaScript知识点
爱运动的程序员
19年前端,哈尔滨工业大学软件工程专业
展开
-
js面向对象oop
成员属性/方法,原型属性/方法,静态/属性方法,私有属性/方法成员属性/方法在构造函数中,通过this.属性声明。或者实例化出对象后,通过“对象.属性”追加的。都属于成员属性、或成员方法;也叫实例属性与实例方法成员属性/方法,是属于实例化出的这个对象。通过"对象.属性"调用function Person(name){this.name = name;//声明成员属性this.say =function(){}//声明成员方法}var zhangsan =new Person("张三");z原创 2021-03-17 14:41:00 · 157 阅读 · 0 评论 -
js加减乘除和双等号类型转换
加减乘除隐式类型转换1.加减乘除能直接转换number的直接转换否则先转换成string再转换成number(其实就是对象先valueof再tostring再转number)2.字符串加法变成拼接都转换成字符串3.null转number为0 undefined转number为NANconsole.log('12'+[])//12console.log(String([]))//''console.log(String([])=='')//trueconsole.log([]=='')//tr原创 2021-03-16 10:33:24 · 399 阅读 · 0 评论 -
实现eventbus
实现eventbus// eventbus构造函数class EventEmeitter { constructor() { this._events = this._events || new Map(); // 储存事件/回调键值对 this._maxListeners = this._maxListeners || 10; // 设立监听上限 } } // 触发名为type的事件EventEmeitter.prototype.emit = fu原创 2021-03-15 11:26:32 · 364 阅读 · 0 评论 -
深拷贝,浅拷贝
深拷贝,浅拷贝浅拷贝深拷贝浅拷贝// 直接赋值浅拷贝let obj = {a:1}let obj2 = objobj2.a = 123console.log(obj2,obj)// assign 浅拷贝let obj = {a:1}let obj2 = objlet obj3 = Object.assign(obj2,{a:'a'},obj)obj3.a = 'adf'console.log(obj,obj3,obj2)// arr 浅拷贝let arr = [1,2,{c:原创 2021-03-15 10:58:21 · 124 阅读 · 0 评论 -
es6新特性
es6新特性传统字符串用法模板字符串带标签的模板字符串参数默认值剩余参数展开数组对象字面量Object.assignObject.isProxyProxy与Object.defineProperty的区别class集成extendsset数据集合mapSymbol传统字符串用法const str = 'hello world this is a string'模板字符串const str = `hello world this is a \`string\``console.log(str)//原创 2021-01-22 09:54:34 · 123 阅读 · 0 评论 -
js中object对象的defineProperty
definePropertyobject.defineProperty()是用来控制一个对象属性的一些特有操作,比如读写权,是否可以枚举。例子:var Book = {}var name = '';Object.defineProperty(Book, 'name', { set: function (value) { name = value; console.log('你取了一个书名叫做' + value); }, get: function () { ret原创 2021-01-18 10:58:51 · 146 阅读 · 0 评论 -
JavaScript高级程序设计-引用类型(对象,数组)
概述引用类型的值是引用类型的一个实例,引用类型是一种数据结构,用于将数据和功能组织到一起(类似与类)。引用类型也被称为对象定义,描述一类对象所具有的属性和方法。注意:引用类型与类看起来相似,但他们并不是相同概念对象是某个特定引用类型的实例。新对象是使用new操作符后跟一个构造函数来创建的。5.1object类型创建object实例的方法:1new操作符后跟object构造函数2对象字面量表示法对象字面量也是想函数传递大量可选参数的首选方法访问对象属性的方式:1点表示法2方括号表示法5原创 2021-01-09 11:33:49 · 124 阅读 · 0 评论 -
JavaScript高级程序设计-变量,作用域,内存
概述js的变量和其他语言的变量有很大区别。js变量松散类型的本质,决定了它只是在特定的时间用于保存特定值的一个名字而已。由于不存在定义某个变量时必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变1基本类型和引用类型的值基本类型:简单的数据段引用类型:那些可能由多个值构成的对象给变量赋值时解析器必须确定值是基本类型还是引用类型基本类型:按值访问,可以操作保存在变量中的实际的值引用类型:按引用访问1.1动态属性引用类型:可以添加,删除,改变属性和方法基本类型:不可原创 2021-01-09 11:04:59 · 111 阅读 · 0 评论 -
js原型和原型链基本概念
原型原型链构造函数创建对象prototypeprotoconstructor原型链构造函数创建对象Person就是一个构造函数,使用new创建了一个实例对象personfunction Person(){}var person = new Person();person.name = '砸键盘';console.log(person.name); //砸键盘prototype每一个函数都有一个prototype属性每一个js对象(null除外)在创建的时候就会与原创 2021-01-05 10:38:47 · 442 阅读 · 0 评论 -
js中的call,apply,bind
js中的call,apply,bindcall,apply,bind都是用来改变this指向的,他们的区别如下。function fn(a,b,c,d){ console.log(a,b,c,d);}//callfn.call(null,1,2,3);//applyfn.apply(null,[1,2,3]);//bindvar f = fn.bind(null,1,2,3);f(4);call逐个传值,apply传一个数组,bind也是逐个传值,但是bind与另外两个有所不同,原创 2021-01-04 15:29:19 · 59 阅读 · 0 评论 -
js中的this
@js中的thisthis基本常见知识点面向对象语言中this表示当前对象的一个引用。this的指向在函数定义的时候确定不了,只有函数执行的时候才能确定到底指向谁,this的最终指向时调用他的对象(大部分情况如此,有特殊情况指向其他)基本的情况情况1:如果函数中有this,没有被上一级对象调用,那么this指向的是window,严格模式下为undefined情况2:如果函数中有this,有被上一级对象调用,那么this指向的就是上一级对象情况3:如果函数中有this, 这个函数中包含多个对象,原创 2021-01-04 15:21:05 · 119 阅读 · 2 评论