js
杨-Yuki
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
js中的事件循环
事件循环event loop:由于主线程不断重复获得任务,执行任务,在获取任务,在执行,所以这种机制被称为事件循环任务队列:在主线程之外还存在一个任务队列,任务队列中存放着需要异步执行的内容。当主线程运行完毕之后,就会去执行任务队列中的任务(不断的重复扫描)直到任务队列清空。事件队列在不同的宿主环境中有差异, 浏览器的环境中, 会把事件队列分为两种1. 宏队列 定时器的回调、 事件的回调, http回调 等都是加入到宏队列中2. 微队列(vip) promise, MutationObser原创 2020-09-02 20:52:57 · 1257 阅读 · 3 评论 -
js对象方法(API)详解
hasOwnProperty(propertyName String)有没办法区分对象的那些属性是自己的,那些是共有属性(从父对象哪里继承来的)?hasOwnProperty()是检查指定的属性是不是自有属性的,如果要检查是共有属性的话,还需要排除没有这个属性 共有属性是指在原型对象中声明的属性参数:propertyName String类型指定的属性名称返回值hasOwnProperty()函数的返回值为Boolean类型。如果对象object具有名称为propertyName的属性原创 2020-09-01 20:57:19 · 774 阅读 · 1 评论 -
JS实现懒加载
懒加载及应用场景懒加载是一种对网页性能优化的方式,比如当访问一个页面的时候,优先显示可视区域的图片而不一次性加载所有图片,当需要显示时,再发送图片请求,避免打开网页时加载过多资源。当一个网站的加载图片过多时就需要懒加载的协助,页面图片多时,在首次载入时一次性加载会耗费时间长,使用懒加载可以使页面加载速度快、减轻服务器的压力、节省流量。实现的思路:给目标元素指定一张占位图,将真实的图片链接存储在自定义属性中(data-src),监听scroll事件,当图片出现在可视区时,将data-src值赋值给s原创 2020-08-25 18:47:17 · 929 阅读 · 1 评论 -
js深克隆和浅克隆
一、为什么要克隆?答案是:克隆的对象可能包含一些已经修改过的属性,保留着你想克隆对象的值,而new出来的对象的属性全是一个新的对象,对应的属性没有值,所以我们还要重新给这个对象赋值。即当需要一个新的对象来保存当前对象的“状态”就靠clone方法了。那么我把这个对象的临时属性一个一个的赋值给我新new的对象不也行嘛?可以是可以,但是一来麻烦不说,二来,大家通过上面的源码都发现了clone是一个native方法,就是快啊,在底层实现的。其实js里的克隆跟生活里说的克隆是一样的。有一个本体,克隆出跟本体一摸一原创 2020-08-12 20:29:12 · 321 阅读 · 0 评论 -
经典小游戏2048 代码教学
2048的玩法:使用方向键移动方块,两个数字相同的方块撞在一起后,将会合并为一个数字是原来两倍的新方块!在手机上可以滑动屏幕来移动方块!html代码部分<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="css/0710.css">原创 2020-07-14 18:52:01 · 1680 阅读 · 0 评论 -
异步加载js的三种方式
浅谈:Javascript语言的执行环境是单线程。即一次只能完成一个任务。若有多个任务则需排队逐个执行——前一个任务完成,再执行后一个任务。这种执行模式实现简单,执行环境相对单纯。但随着前端业务日渐复杂,事务和请求等日渐增多,这种单线程执行方式在复杂的业务下势必效率低下,只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行为避免和解决这种问题,J原创 2020-07-13 15:57:09 · 591 阅读 · 0 评论 -
一看就懂的闭包讲解
概述:函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起构成闭包(closure)。也就是说,闭包可以让你从内部函数访问外部函数作用域。在 JavaScript 中,每当函数被创建,就会在函数生成时,同时自动生成闭包。说白了,就是有函数的地方,就存在closure,无论你是否看得见。...原创 2020-07-09 08:41:19 · 266 阅读 · 0 评论 -
熟练掌握预编译
前言javascript是解释型语言既然是解释型语言,就是编译一行,执行一行脚本执行js引擎步骤语法分析:是引擎检查你的代码有没有什么低级的语法错误预编译:简单理解就是在内存中开辟一些空间,存放一些变量与函数解释执行:开始执行代码两种类型预编译在script代码执行前发生...原创 2020-07-06 17:30:23 · 201 阅读 · 0 评论 -
ES6
1.简介什么是ES6:ES6是ECMA Script 6.0的简称, 就是语言最新的标准, 发布与15年左右目标让js语言成为能支持去编写大型复杂的应用语言, 成为企业级开发语言javascript和ECMA Script区别?javascript, Java特别火,导致名字一直是javascriptECMA组织制定js标准,不想用java, 叫ECMA Script 6.02.变量...原创 2020-03-21 19:33:07 · 184 阅读 · 0 评论 -
js异步加载
使用异步加载的原因:由于js是单线程的,使用加载外部文件时,在加载js的时候,自身的HTML以及css会等待js外部文件加载结束了之后才会被浏览器进行加载渲染,因此比较低效,所以用到异步的概念来解决这个方法。有三种方式:第一种 defer 方式优点可以写入内部代码 缺点是必须等dom树加载完成之后才能加载,只有IE浏览器才能使用这种方式<script type="text/java...原创 2020-03-10 21:29:05 · 197 阅读 · 0 评论 -
js原型链
原型链每一个构造函数都有自己的原型对象 原型对象也是对象 (对象都有一个__proto__属性) 也有自己的原型对象 以此类推 形成的链式结构称之为原型链对象访问原型链中成员的规则就近原则(对象访问成员 先看自己有没有 有则访问 没有则从原型寻找 如果原型有则访问 原型没有 就从原型的原型寻找 以此类推 直到原型链的终点null 如果都没有 属性返回undefined 方法返回程序报错)...原创 2020-02-16 15:29:46 · 231 阅读 · 0 评论 -
数组去重方法
function ee(arr){ for(var i = 0,result = [],hash=[];i < arr.length;i++){ // 如果hash中以arr当前元素作为key的元素是undefined if(hash[arr[i]] === undefined){ // 为hash添加新元素,key值为arr当前元素,value值赋值为 tr...原创 2019-12-25 19:36:07 · 294 阅读 · 0 评论 -
函数预编译
javascript 执行过程1.语法检测(有没有基本的语法错误,例如中文,关键字错误…)2.词法分析(预编译)(1)创建全局GO(global object)对象(2)对var声明的变量进行声明提升但不赋值,放入GO对象中(3)对函数体整体进行提升,放入GO对象中3.逐行执行一.全局 直接是script标签中的代码,不包括函数执行执行前:1.首先生成一个GO(globa...原创 2019-12-25 19:33:58 · 200 阅读 · 0 评论 -
作用域链scope
var a = 10; function fn(){ var b = 10 function fun1(){ console.log(c);//undefined b += 5; var c = 20;//此处给c赋值 function fun2(){ var c = 99; } fun2(); console.log(c);//20...原创 2019-12-23 20:12:05 · 205 阅读 · 0 评论 -
正则表达式
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。正则就是由相关‘元字符’和‘修饰符’组成的一个规则,用来匹配、验证或者捕获字符串中某些内容的规则(正...原创 2019-12-19 10:53:32 · 165 阅读 · 0 评论 -
字符串API
获取字符串长度 str.lengthvar str = ‘abc你好dfge’;console.log(str[0]);console.log(str.length);分割字符串 str.split()var people= ‘420485199908165555’;var chars = people.split("");console.log(chars);拼接字符串 str1...原创 2019-12-18 21:00:46 · 136 阅读 · 0 评论 -
Math.api
Math对象一、 Math对象的作用:用来处理数学运算,它里面的所有属型和方法都是静态的,可以用Math对象名直接调用,格式为Math.方法/属性二、 Math对象的方法 round作用:对数据进行四舍五入格式:Math.round(x);返回值:为最接近它的整数var num = 3.14;console.log(Math.round(num));//3num =...原创 2019-12-12 20:23:28 · 193 阅读 · 0 评论 -
数组的API之修改,添加删除,拼接和选取
API:全称Application Programming Interface,即应用程序编程接口。API是一些预先定义函数,目的是用来提供应用程序与开发人员基于某软件或者某硬件得以访问一组例程的能力,并且无需访问源码或无需理解内部工作机制细节。API就是操作系统给应用程序的调用接口,应用程序通过调用操作系统的 API而使操作系统去执行应用程序的命令(动作)。在 Windows 中,系统AP...原创 2019-12-12 20:12:41 · 627 阅读 · 0 评论 -
当下最流行的五大浏览器
IE浏览器:IE是微软公司旗下浏览器,IE诞生于1994年,当时微软为了对抗市场份额占据将近百分之九十的网景Netscape Navigator,于是在Windows中开发了自己的浏览器Internet Explorer,自此也引发了第一次浏览器大战。结果可想而知,微软大获全胜,网景不得不将自己卖给AOL公司。但实际上事情并没有结束,网景后来开发了风靡一时的Firefox火狐,至今Firefox...原创 2019-12-06 20:56:48 · 1692 阅读 · 0 评论 -
for while do..while循环
循环的目的:在实际问题中,有许多具有规律性的重复操作,因此在程序中要完成这类操作就需要重复执行某些语句在js中主要由三种类型的循环语句:1、for循环2、while循环3、do…while循环1、三种循环允许相互嵌套2、for 和 while共同点:先判断条件,再执行循环for(;????{} ==> while(true){}区别:for优先使用在确定循环次数的场合w...原创 2019-12-06 20:47:51 · 231 阅读 · 0 评论 -
JS数据类型
/存储单位最小的空间(内存、硬盘) 位bitbyte 1byte = 8bitkb 1kb = 1024byteMB 1MB = 1024kbGB 1GB = 1024MBTB 1T = 1024GB问题:保存一个数字到内存中,占据多大的空间? 数据的类型决定000010 ‘00000010’js中的变量是没有数据类型 但是变量的值有数据类型/var nu...原创 2019-12-06 13:17:27 · 234 阅读 · 0 评论 -
js变量和常量
//计算圆的周长和面积const PI = 3.14;//圆的半径var r = 5;//周长var l = 2 * PI * r;document.write(‘半径为’ + r + ‘的圆的周长’ + l); //面积 var s = PI * r * r; document.write('<br>半径为' + r + '的圆点面积为:' + s); //取3...原创 2019-11-30 19:15:05 · 284 阅读 · 0 评论 -
JavaScript的发展史
1、接收用户输入一个四位数,将这个四位数的个、十、百、千位单独输出,并将它们的和求出来 //提示:接收用户输入var n = prompt("请输入一个四位数:"); var n = prompt("请输入一个四位数:1024"); var a = n % 10; document.write('<br>这个四位数的个位是:' + a); var b = parseIn...原创 2019-11-30 19:09:51 · 374 阅读 · 0 评论
分享