JS
YHT__
这个作者很懒,什么都没留下…
展开
-
call、apply、bind
call()//初级版Function.prototype.call = function call(context,...args){ let result; context.xx = this; result = context.xx(...args); delete context.xx; return result;}===============================================================//中级原创 2020-08-23 21:24:03 · 104 阅读 · 0 评论 -
数据类型及检测
基本数据类型值类型number、string、null、undefined、boolean引用类型object:({ },[ ],Math、Data、/^$/、实例对象)、function检测数据类型方法一typeof();typeof(12); //"number"typeof([1,2]);//"object"typeof {} ; //"object"typeof nu...原创 2020-07-30 10:53:37 · 108 阅读 · 0 评论 -
读书笔记(一)
JS嵌入式不能在代码中任何地方出现</script>,代码中出现时只能以<\/script>出现外部JS文件通常带有.js的拓展名,但这不是必须的,浏览器不会检查包含javascript文件的拓展名。但是,服务器通常会看拓展名决定为响应应用哪种MIME类型一般来说,外部脚本下载后立即执行,加载外部脚本时采用defer属性,表示告诉浏览器立刻下载,但延迟执行(延迟到遇到</html>后执行,且不一定会按照顺序执行,因此最好只包含一个延迟脚本)。<script.原创 2020-07-07 16:52:09 · 109 阅读 · 0 评论 -
正则表达式(二):常用
验证密码规则:6-16位由数字或字母或下划线组成式子:/^\w{6,16}$/验证名字规则:2-10位汉字可能有 · ,·后面一定有字 -->尼古拉斯·张三式子:/^[(u\\4E00-\\U9FA5)]{2,10}(·[u\\4E00-\\U9FA5]{2,10}){0,2}&/验证邮箱规则:数字字母下划线为开头中间包含.或-加数字字母下划线...原创 2020-05-02 15:09:08 · 185 阅读 · 0 评论 -
正则表达(一):基础
正则表达式由两部分组成元字符修饰符常用及特殊元字符符号意义*出现0到多次+出现1到多次?出现0次或1次n出现n次{n}出现n到多次{n,m}出现n到m次^以哪个字符开始$以那个字符结束.除\n意外的任意字符\转义字符\d查找(0~9)数字\D非(0~9)数字\s...原创 2020-05-02 13:53:13 · 207 阅读 · 0 评论 -
JS总结(二):数组方法
isArray()判断是不是数组类型Array.isArray()concat()var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组(浅拷贝)let a = [1,2].concat([3,4]);console.log(a...原创 2020-05-01 20:22:15 · 148 阅读 · 0 评论 -
JS总结(一):对象方法
hasOwnProperty()常用于检测是否为私有属性或方法for(key in obj){ if(obj.hasOwnProperty(key){...}}isPrototypeOf()常用于检测一个对象是否存在于另一个对象的原型链上function Foo() {}function Bar() {}function Baz() {}Bar.prototype ...原创 2020-05-01 15:32:01 · 168 阅读 · 1 评论 -
JS环境及变量创建
执行环境栈(ECStack)每当打开一个浏览器时,浏览器会分配一块内存,专门供代码执行 =>(栈内存)全局对象(Global Object):浏览器把内置的一些属性、方法收到一个单独的内存中 => 堆内存(Heap) 并且浏览器会让window指向GO比如:window.isNaN() window.parseInt()…(通常省略window)执行上下文(EC)代码自己...原创 2020-04-29 22:26:07 · 210 阅读 · 0 评论 -
继承
我们研究类,就是研究类的继承、封装与多态 多态包括重载与重写重载 :后端语言是指函数名相同,参数类型与个数不同,根据不同参数列表调用不同函数。前端JS没有真正意义上的重载。前端的重载是指同一个函数,根据传参不同实现不同效果。继承原型继承其他语言的继承一般是拷贝继承,会把父类的属性和方法拷贝一份到子类,供子类的调取和使用。JS中的继承是把父类的原型放到子类实例的原型链上,子类调取这...原创 2020-04-19 15:14:29 · 181 阅读 · 0 评论 -
跨域(一)
什么是跨域原创 2020-04-19 11:34:19 · 812 阅读 · 0 评论 -
面向对象编程
单例设计模式 (Singleton Pattern)利用多个命名空间创造某类的多个不同的实例,实例之间相互独立,互不影响表现形式let obj = { xxx :'xxx', ...}在单例设计模型中,obj也叫做命名空间[NameSpace]作用把描述同一事物的属性特征进行分组归类(储存到同一堆内存中),使不污染其他变量或冲突高级单例模式 ***let n...原创 2020-04-18 17:06:20 · 119 阅读 · 0 评论 -
原型及原型链
原型里最核心的三句话1.每个函数都有一个prototype(原型)属性,该属性值为一个对象(分配堆内存)2.每个prototype指向的堆内存中,有一个constructor属性,该属性的值指向函数本身3.每个对象都有一个__proto__属性,该属性指向当前实例所属类的prototype属性(如果不能确定是谁的实例,则都为Object的实例)下面将以画图的方式解释这三句话都知道有数组A...原创 2020-04-18 16:09:43 · 160 阅读 · 0 评论 -
回流与重绘
浏览器的渲染流程解析服务端发来的HTML文档形成DOM树解析CSS样式表形成CSSOM树结合DOM树和CSSOM树结合起来形成渲染树浏览器在渲染树内对每个渲染节点进行布局(计算出每个元素在页面中的位置、大小等)绘制显示到屏幕上Reflow(回流)元素的大小或位置发生了变化(页面几何信息发生变化的时候),触发了重新布局,导致渲染树重新计算布局和渲染Repaint(重绘)元素样式...原创 2020-04-18 09:02:32 · 181 阅读 · 0 评论 -
JS构造函数的执行过程
什么是构造函数通过new操作符调用的函数为构造函数,会构造出一个类的实例一个函数函数直接调用则为普通函数调用方式,用new调用则为构造函数调用方式function Fn(name,age){ let n = 5; this.name=name; this.age=age;}Fn("a",10); //-->普通调用函数方式let b = new Fn("b",18);...原创 2020-04-17 11:09:01 · 983 阅读 · 0 评论