自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 什么是DOM

众所周知,javascript由三部分组成:ECMAScript 构成了js核心的基础语法BOM Browser Object Model 浏览器对象模型,用来操作浏览器上的对象DOMDocument Object Model 文档对象模型,用来操作网页中的元素今天我们就来讲讲什么是DOMDOM是什么DOM的全称是Document Object Model,即文档对象模型,它允许脚本控制Web页面、窗口和文档。如果没有DOM,JavaScript将是另外一种脚本语言;而有了DOM,它将成为

2020-08-30 21:56:46 429

原创 BFC(块级格式上下文)

BFC的定义BFC 全称为 块格式化上下文 (Block Formatting Context) 。定义:浮动元素和绝对定位元素,非块级盒子的块级容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不为“visiable”的块级盒子,都会为他们的内容创建新的BFC(块级格式上下文)。BFC的布局规则1)内部的box会在垂直方向,一个接一个地放置(可以看作BFC中有一个的常规流)。2)Box垂直方向的距离有margin决定。属

2020-08-30 21:28:41 264

原创 js浅克隆和深克隆

深克隆和浅复制的基本定义浅复制(浅克隆):直接将存储在栈中的值赋值给对应变量,如果是基本数据类型,则直接赋值对应的值,如果是引用类型,则赋值的是地址深复制(深克隆):就是把数据赋值给对应的变量,从而产生一个与源数据不相干的新数据(数据地址已变化)。深拷贝,是拷贝对象各个层级的属性。基本数据类型的赋值(String)let a = "hello world";let b = a;alert( b ); // 'hello world'a = "changed";alert( b ); // '

2020-08-22 14:09:34 238

原创 原型与原型链

原型Javascript规定,每一个函数都有一个prototype对象属性,指向另一个对象(原型链上面的)。prototype(对象属性)的所有属性和方法,都会被构造函数的实例继承。这意味着,我们可以把那些不变(公用)的属性和方法,直接定义在prototype对象属性上。prototype就是调用构造函数所创建的那个实例对象的原型(proto)。prototype可以让所有对象实例共享它所包含的属性和方法。也就是说,不必在构造函数中定义对象信息,而是可以直接将这些信息添加到原型中。原型的继承所有

2020-08-22 11:54:53 122

原创 Math.random()

Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象。Math 用于 Number 类型。它不支持 BigInt。与其他全局对象不同的是,Math 不是一个构造器。Math 的所有属性与方法都是静态的。引用圆周率的写法是 Math.PI,调用正余弦函数的写法是 Math.sin(x),x 是要传入的参数。Math 的常量是使用 JavaScript 中的全精度浮点数来定义的。ceil()Math.ceil() 函数返回大于一个数的最小整数,即一个数向上取整后的值

2020-08-15 10:44:44 360

原创 js错误类型

JavaScript中的错误类型大体分为两类:第一种是语法错误,众所周知JavaScript在执行之前实际上分为了三个步骤,首先语法分析,如果有语法错误就会直接报错,阻止整个程序执行,然后是预编译,最后才开始解释一行执行一行,所以如果检测到了有语法错误,程序就会直接报错,阻止整个程序执行。第二种是逻辑错误,这一类的错误不会影响所有代码,只会在自己那一行报错,会影响之后的代码不能执行。SyntaxError:语法错误// 1. Syntax Error: 语法错误// 1.1 变量名不符合规范va

2020-08-15 09:49:41 352

原创 JavaScript作用域&作用域链

作用域作用域就是代码的执行环境,全局执行环境就是全局作用域,函数的执行环境就是私有作用域,它们都是栈内存。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。某个执行环境中所有的代码执行完毕后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁(全局执行环境直到应用程序退出时,如关闭浏览器或网页,才会被销毁)每个函数都有自己的

2020-08-09 18:52:09 87

原创 正则表达式

正则表达式正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。非打印字符非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:特殊字符所谓特殊字符,就是一些有特殊含义的字符,简单的说就是表示任何字符串的意思

2020-08-09 18:33:01 96

原创 JavaScript之数组去重

数组去重是一道经典的手写面试题,在真实的项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重。虽然日常项目用到的概率比较低,但还是需要了解一下,以防面试的时候可能会被问到。这篇内容接下来会写出js中数组去重的几种方法:双重循环遍历数组定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。 function unique(arr) { var newArr = []; for (let i = 1; i < a

2020-08-01 21:23:09 221

原创 JavaScript之预编译(AO与GO)

在JavaScript中,运行其实分为了三步:js运行三步曲:1.语法分析2.预编译3.解释执行预编译分为全局预编译和局部预编译,全局预编译发生在页面加载完成时执行,而局部预编译发生在函数执行的前一刻。预编译步骤首先JavaScript的执行过程会先扫描一下整体语法语句,如果存在逻辑错误或者语法错误,那么直接报错,程序停止执行,没有错误的话,开始从上到下解释一行执行一行。全局预编译的3个步骤:1. 创建GO(Global Object)对象;2. 寻找变量声明作为GO的属性名,并赋值为u

2020-08-01 20:49:42 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除