JavaScript
文章平均质量分 79
JavaScript
海面有风
梦想很大,仍需努力
展开
-
MDN - API数组笔记
Array.prototype.push(element1, ..., elementN)将一个或多个元素添加到数组的末尾,并返回该数组的新长度const animals = ['pigs', 'goats', 'sheep'];const count = animals.push('cows');console.log(count); // 4console.log(animals); // ["pigs", "goats", "sheep", "cows"]Array.prototype原创 2021-08-08 13:46:05 · 241 阅读 · 0 评论 -
MDN - 字符串API笔记
.charAt(index)从一个字符串中返回指定的字符。index 一个介于0 和字符串长度减1之间的整数。默认值为0index 从 0 开始 空格是占一个位置的获取一个超出字符串长度的位置,则返回空格 不报错var anyString = "Brave new world";console.log(anyString.charAt(0)); // B// 区别:通过字符串下标获取console.log(anyString[1]); // Bconsole.log(anyStri原创 2021-08-05 12:55:22 · 678 阅读 · 0 评论 -
var a=1和var a =b的区别
一、引擎,编译器,作用域引擎: 负责整个Javascript程序的编译及执行过程。编译器:负责语法分析及代码生成。作用域:负责收集并维护有所有声明的标识符组成的一系列查询。二、编译器(编译过程var a=1;)第一步:编译器首先会将这段代码分解成词法单元,然后将词法单元解析成树结构。第二步:对词法单元进行解析,解析到var a时,编译器会询问作用域是否存在一个变量名为a在同一作用域的集合中。如果有,编译器就忽略此声明。反之,在要求的作用域下声明变量。第三步:生成可原创 2020-10-29 17:51:26 · 905 阅读 · 2 评论 -
变量提升问题笔记
提升这里我们不考虑 ES6 这部分的知识点前期知识准备1、首先先理解 JavaScript 是如何执行代码的JavaScript 是动态语言,在执行代码时要先进行编译。第一部分是编译代码(主要是全局声明函数和变量),并且生成代码(将用户的代码生成符合 JavaScript 正确顺序执行,具体顺序后面有细讲)第二部分是执行代码(执行函数或变量赋值)2、了解 JavaScript 中的 引擎、编译器、作用域三者的作用及区别引擎:从头到尾负责整个 JavaScript 程序的编译原创 2021-09-19 19:59:05 · 111 阅读 · 0 评论 -
对于JavaScript产生闭包的个人理解
什么是闭包当函数可以记住所在的词法作用域时,就产生闭包,即使函数是在当前词法作用域之外执行。补充:什么是词法作用域词法作用域是由你写代码时将变量和块级块级作用域写在哪里所决定的function wait(message) { setTimeout(function timer() { console.log(message); }, 1000);}wait("Hello, closure!");当 wait 执行 1 秒后,它的内部作用域并不会消失,t原创 2021-09-23 16:19:07 · 173 阅读 · 0 评论 -
javaScript实现放大镜特效
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <tit.原创 2022-02-18 20:15:00 · 186 阅读 · 0 评论 -
jQuery实现瀑布流布局
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <tit.原创 2022-02-17 13:00:00 · 161 阅读 · 0 评论 -
基于XMLHttpRequest封装Ajax请求
一、基本封装<script src="ajax.js"></script><script> _.ajax({ url: "https://cloud-music-api-sandy.vercel.app/top/playlist", type: "get", async: true, data: { limit: 20, }, before原创 2022-01-23 18:59:34 · 543 阅读 · 0 评论 -
jQuery常用语法笔记
JQuery 入口函数// jquery入口函数可以执行多次$(document).ready(function(){ console.log(1);})// 简写 $(function(){ console.log(1); })JQuery 选择器<div class="box-1">div</div><span class="txt-2">span</span><h3 id="demo">h3</原创 2021-09-02 14:00:05 · 397 阅读 · 0 评论 -
全网最全console命令解析总结
1、console.assert()在浏览器中当console.assert()方法接受一个值为假断言时,会向控制台输出传入的内容,但并不会中断代码的执行const errorMsg = 'the # is not even';for (let number = 2; number <= 5; number += 1) { console.log('the # is' + number); console.assert(number % 2 === 0, {原创 2022-01-04 19:37:29 · 8042 阅读 · 0 评论 -
防抖与节流
函数的防抖函数防抖中的抖动就是执行的意思,而一般的抖动都是持续的、多次的、频繁的执行某一段代码。函数防抖就是某函数持续多次执行,我们希望让它冷静下来再执行。也就是当持续触发事件的时候,函数是完全不执行的,等最后一次触发结束的一段时间之后,再去执行。在前端开发中经常会遇到这种频繁的事件触发,比如:window 的 resize、scrollmousedown、mousemovekeyup、keydown 、等等…上面简单例子中鼠标从左边滑到右边就触发了 165 次。若是复杂的回调函数或是网络原创 2021-08-22 15:55:49 · 157 阅读 · 0 评论 -
DOM事件
传送梦✍????DOM事件介绍:事件是在编程时系统内发生的动作或者发生的事情,系统会在事件出现时产生或触发某种信号,并且会提供一个自动加载某种动作(列如:运行一段代码)的机制。例如:如果用户在网页上单击一个购买按钮,会显示一个购买确认信息框来响应这个动作。具体的说事件是可以被 JavaScript 侦测到的行为,网页中每一个元素都可以产生某些可以出发 JavaScript 函数的事件,在网页中,事件在浏览器窗口中被触发并且通常被绑定到窗口内部的特定部分 — 可能是一个元素、一系列元素、被加载到这个窗口原创 2021-08-20 13:15:01 · 305 阅读 · 0 评论 -
JavaScript 与 DOM
概念:Document 接口表示任何在浏览器中载入的网页,并作为网页内容的入口,也就是 DOM 树。DOM 树包含了像 <body> 、<table> 这样的元素,以及大量其他元素。它向网页文档本身提供了全局操作功能,能解决如何获取页面的元素,如何在文档中创建一个新的元素等问题。节点的选取/访问选择单个元素节点getElementById():DOM提供的方法用来返回一个匹配特定 ID 元素节点对应的对象。若在当前 Document 下没有找到,则返回 null。语法:.原创 2021-08-16 12:47:00 · 179 阅读 · 0 评论 -
javaScript五种继承方式
传送门补充:原型、原型对象、对象原型、 原型链每个构造函数都有一个原型prototype,这个原型的只是一个对象,所以我们常称呼为原型对象。原型对象的作用是共享每个实例对象也有一个属性叫__proto__或者[[prototype]],因为在对象上,所以称“对象原型”。 其作用是:“指向构造函数的原型对象”调用对象的属性和方法时, js会优先查找当前对象是否有该属性,如果没有则继续往原型(原型对象)查找,如果还没有查找到该属性,接着往上找,直至到Object,如果还是没有找到,则返回undefin原创 2021-08-14 12:32:28 · 152 阅读 · 0 评论 -
javaScript this指向问题
传送门一、this介绍:JavaScript 语言之所以有this的设计,跟内存里面的数据结构有关系。var obj = { foo: 5 };上面的代码将一个对象赋值给变量obj。JavaScript 引擎会先在内存里面,生成一个对象{ foo: 5 },然后把这个对象的内存地址赋值给变量obj。也就是说,变量obj是一个地址。后面如果要读取obj.foo,引擎先从obj拿到内存地址,然后再从该地址读出原始的对象,返回它的foo属性。二、判断 this 的指向(1)独立函数内部的th原创 2021-08-14 12:30:02 · 121 阅读 · 0 评论 -
JavaScript数据类型的隐式转换
隐式转换(1)字符串连接: 运算符+表示加法运算,JavaScript将把数字转换为字符串,再进行拼接。var res = 44 + "55";console.log(res); // 4455(2)算术运算符(++ – - * / %) 或者比较运算符(> < >= <= != ==)会把两边转化为数字,进行运算 console.log(44 - "33"); // 11 console.log(44 - "33a"); // NaN console.log原创 2021-08-03 12:44:14 · 70 阅读 · 0 评论 -
Javascript基础知识笔记四
一、使用工厂方法创建对象减少代码的数量,提高代码的利用率可以大量的创建对象缺点:使用工厂方法创建的对象都是Object,对于不同对象不能进行区分。function createPerson(name,age,gender){ var obj=new Object(); obj.name=name; obj.age=age; obj.gender=gender; return obj;}var obj=createPerson("小明",12,"男");console.l原创 2020-11-30 11:00:57 · 114 阅读 · 0 评论 -
Javascript基础知识笔记三
一、通过构造函数创建函数函数也是一个对象,而且是具有功能的对象创建函数对象:var fun=new Function();创建函数:var fun=new Function(‘console.log(“123”)’);函数也可以添加属性:fun.hello=“hello”//创建函数对象var fun=new Function();console.log(typeof fun); //function//给函数添加函数体var fun1=new Function('console.l原创 2020-11-29 16:39:04 · 99 阅读 · 0 评论 -
Javascript基础知识笔记二
一、对象的分类1、内建对象由ES标准中定义的对象,在任何的ES的实现中都可以使用。比如:Math、String、Number、Function、Object等等。2、宿主对象由Javascript的运行环境提供的对象,目前主要是指由浏览器提供的对象。比如:BOM、DOM。3、自定义对象二、对象的基本操作构造函数:var obj=new Object();向对象添加属性name: obj.name=“张三”;取属性值:var name=obj.name;改属性值: obj.n原创 2020-11-29 15:45:08 · 144 阅读 · 0 评论 -
Javascript基础知识笔记一
一、算术运算算术运算对非数值(Number)类型进行运算时,会将这些值转换为数值类型,再进行运算。注:任何值和NaN做运算都得NaN。“+”可以对俩个值进行加法运算,并将结果返回。如果对两个字符串进行加法运算,则会做拼接。任何值和字符串做加法运算,都会转换为字符串,再将其进行拼接。console.log(1+"2"); //12console.log(1+2+"3"); //33console.log(1+"2"+3); //123引申:数值(number)转换为字符串。var a原创 2020-11-26 12:50:28 · 113 阅读 · 0 评论 -
Javascript六种数据类型及类型转换总结
一、Javascript数据类型数据类型名称字符串String数值Number布尔值Boolean空值null未定义Undefined对象Object二、数据类型判断var atypeof aa=“123”stringa=123numbera=truebooleana=nullobjecta=undefinedUndefineda={b:2}Object三、强制类型的转原创 2020-11-22 15:58:23 · 228 阅读 · 0 评论 -
Javascript异步操作(Promise)
Javascript异步操作一、Javascript执行程序过程 JS执行过程是单线程的,单线程就是所有程序只运行在一条线程上。就好像所有操作都必须在一条流水线上工作,可能某一个操作较为复杂,就容易阻塞后面的操作。JS每一个瞬间只执行一个程序代码。二、解决方法回调函数 当这个任务完成后,调用下一个任务的函数。异步有多深,嵌套就越深,代原创 2020-07-10 13:47:13 · 518 阅读 · 0 评论