11 2022 档案
摘要:浏览器和服务器通讯过程 以咱们用的最多的浏览器为例,和服务器通讯的过程就像聊微信? 浏览器:输入URL地址-->请求 服务器:接收请求并返回对应的资源-->响应 浏览器:接收并解析响应内容 可以在浏览器开发者界面的network分类查看 URL:这个地址叫做统一资源定位器(URL)是指定在 Inte
阅读全文
摘要:1.绑定点击事件 get请求无参数 </head> <body> <h2>get请求+参数换地</h2> <button class="btn1">测试</button> <button class="btn2">测试有参数</button> <!-- <script src="https://cd
阅读全文
摘要:展开运算符(…),将一个数组进行展开,不会修改原数组 <body> <script> /* 展开运算符(…),将一个数组进行展开,不会修改原数组 */ let arr = [1, 3, 3, 7, 91]; console.log(...arr); //[1, 3, 3, 7, 91] consol
阅读全文
摘要:...剩余参数允许我们将一个不定数量的参数表示为一个数组 总结: 1. `...` 是语法符号,置于最末函数形参之前,用于获取多余的实参 2. 借助 `...` 获取的剩余实参,是个真数组 3. 开发中,还是提倡多使用**剩余参数** ...剩余参数 是一个真数组 <body> <script> /
阅读全文
摘要:arguments是动态参数:1.函数内置的js对象 可以接收所有的实参 <body> <script> // arguments是动态参数:1.函数内置的js对象 可以接收所有的实参 // 2.是一个伪数组 不具有数组的方法 function fun() { // console.log(argu
阅读全文
摘要:预解析(js)var 先声明提升 再函数声明提升 变量提升是 JavaScript 中比较“奇怪”的现象,它允许在变量声明之前即被访问, 只有var 关键字声明变量,会存在变量提升 总结: 变量在未声明即被访问时会报语法错误 变量在声明之前即被访问,变量的值为 undefined let 声明的变量
阅读全文
摘要:1.创建了一个对象 2.构造函数中的this指向新创建的实例对象 3.执行函数体 4.自动反回这个函数(构造函数不需要return)
阅读全文
摘要:什么是垃圾回收机制: 垃圾回收机制是js内置的一种管理机制 它会自动分配内存 和自动回收不再使用的内存 垃圾回收机制的两种算法:引用计数法 标记清除法 引用计数:(最早IE采用的引用计数算法 现在已经不在使用了):(就是看有没有被引用) 记录值被引用的次数 引用一次就+一次 多次引用会进行累加 如果
阅读全文
摘要:函数适用于封装方法的 构造函数就是用于封装对象的 1.构造函数 首字母大写 2.调用通过new new 函数名() 3.通过this添加属性 // function Pig(name, age) { // this.name = name; //注意必须是 =号 不可以是:号 // this.age
阅读全文
摘要:Object的静态方法 <body> <script> let obj = { name: "lw", age: 6, sex: "未知", }; // Object的静态方法 // 1.Object.keys(对象名)获取所有的属性名 console.log(Object.keys(obj));
阅读全文
摘要:toFixed()用于保留两位小数 <body> <script> // toFixed(指定保留小数的个数) 方法可以让数字指定保留的小数位数 会进行四舍五入 const num = 3.1415926778899; console.log(num.toFixed(2)); //保留2位小数 co
阅读全文
摘要:函数:就是封装重复执行的代码块 function 是声明函数的关键字 必须小写 函数命名一般为动词 函数声明必须调用否则不生效(调用要加小括号()) 函数封装就是把 一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的接口 方便多处调用 在函数声明时,可以字函数名称后面的小括号里面添加一些参
阅读全文
摘要:<body> <script> // map // Array.prototype.Mymap = function (callback) { // let newArr = [] // // console.log(this); // arr [1,5,6] // for (let i = 0;
阅读全文
摘要:<body> <script> // 自己定义 数组扩展方法 求和 和 最大值 // console.dir(Array); // console.log(Array.prototype); // Array.prototype.Max = function () { // console.log(
阅读全文
摘要:检测数据类型的方法: 1.instanceof 2.typeof 3. 终极检测类型 Object.prototype.toString.call() 1.instanceof 检测出来的返回值是一个布尔值 可以检测复杂数据类型/引用型数据类型Object function (但是无法准确检测Arr
阅读全文
摘要:原型: 每个构造函数身上都有一个prototype原型 原型身上有一个对象 被称为原型对象 (构造函数的this和原型上的this都指向实例化对象) <body> <script> function Star() {} Star.prototype.sing = function () { cons
阅读全文
摘要:语法结构 强壮代码 try{ 可能会错的代码 }catch(err){ 捕获错误 }finally{ 不管语法正确错误都会执行 不会影响后面代码的执行 } <body> <p>123</p> <script> /* 语法结构 强壮代码 try{ 可能会错的代码 }catch(err){ 捕获错误 }
阅读全文
摘要:递归函数 :自己调用自己 1.使用递归一定要有一个结束条件 否则会出现栈溢出 变成死循环 成为死地归 <body> <script> // let i = 0; // function fn() { // console.log("我是递归 必需要有结束条件 不然就是四递归了"); // i++;
阅读全文
摘要:改变this指向的方法 call、apply、bind、箭头函数 call apply bind 的区别 共同点: call apply bind 箭头函数 都可以改变this的指向 (箭头函数也可以改变this的指向 因为箭头函数没有this指向 他的this和它的外层作用域保持一致) 区别: 1
阅读全文
摘要:防抖节流区别 怎么实现的 防抖:指在触发事件后n秒内函数只执行一次(确定不在更改时执行) 如果在n秒内再次被触发则时间会被重新计算 如:王者里面的回城 如果回城终端 则会重新计算回城时间 使用什么实现:使用闭包实现 或者lodash(使用时引入js插件)_.throttle(func函数, [wai
阅读全文
摘要:<body> <script> // // 函数表达式 // const fun = function () { // console.log("我是函数表达式"); // }; // fun(); //不可以在下面调用 匿名函数没有函数提升 // 箭头函数 不存在函数提升 // const fun
阅读全文
摘要:this的指向:this的指向和它的调用方式有关 1.普通函数调用: 匿名函数调用 定时器的调用 此时this指向window 2.事件处理函数: this指向触发事件的事件源 3.开启严格模式的情况下: 普通函数的this指向undefined 4.对象中this:指向这个对象 5.方法调:用则指
阅读全文
摘要:浅拷贝:浅拷贝拷贝的是对象的一层属性 如果对象里面还有对象则拷贝的是复杂数据类型的地址 浅拷贝一般使用Object.assign(给谁,拷贝谁){...对象名} 深拷贝:深拷贝拷贝的是对象的多层属性 如果对象里面还有对象 则继续拷贝 一般我们使用递归、lodash/cloneDeep或者是(JSON
阅读全文
摘要:伪数组与真数组的区别 伪数组拥有length属性 但伪数组不具有真数组的方法 伪数组的长度不可变 真数组的长度可变 伪数组是一个Object 真数组是一个Array
阅读全文
摘要:伪数组转换为真数组的方法 1、let newArr = Array.protype.slice.call(伪数组) 2、let newArr = Array.from(伪数组),ES6的新语法 3、let newArr = [...伪数组],使用扩展运算符,也是ES6的语法 <body> <ul>
阅读全文
摘要:ES5 新增数组方法 | 对象调用的方法 | 作用 | 返回值 | | | | | | array.forEach(function(item, index, array){}) | 遍历 | 无 | | array.map(function(item, index, array){}) | 遍历&
阅读全文
摘要:String 字符串常用的方法 <body> <script> //1. split(用于把字符串分割为数组) 把字符串 转换为 数组 和 join() 相反 let str = "pink$red$blue"; // str.split ('分隔符')根据某个符号进行分割 const res =
阅读全文
摘要:闭包 闭包是指两个嵌套函数 内部函数访问外部函数定义的变量 闭包的优点: 实现数据私有化 (形成私有空间 避免全局变量的污染) 实现内存持久化 保存数据(延长变量的使用时间) 闭包的缺点:内存持久化会造成内存泄漏 解决方法: 尽量避免函数的嵌套 以及变量的引用 将执行完的变量赋值为null 让垃圾回
阅读全文
摘要:垃圾回收机制 垃圾回收机制是js内置的一种管理机制 它会自动进行内存的分配 和回收内存 核心就是判断内存是否不再被使用 如果是就视为垃圾 就进行内存释放 进行垃圾回收 垃圾回收机制中有两种算法:引用计数( IE采用的是引用计数 ) 和 标记清除 引用计数: 跟踪记录每个值被引用的次数 如果引用了一次
阅读全文
摘要:作用域 作用域简单来说就是变量能够访问的范围,离开了这个范围就不能被访问 ,作用域分为全局作用域 局部作用域 和块级作用域 全局作用与域 :是指在script标签内 在此声明的函数 在函数内部也可以被访问 局部作用域:局部作用域分为函数作用域和块级作用域 函数作用域: 在函数内部声明的只有在函数内部
阅读全文
摘要:position定位 static(默认),没有定位,元素不需要定位时 就默认即可 fixed(固定),适用于浏览器窗口 ,适用于顶部固定定位 absolute(绝对定位)相对于第一个reactive父元素 适合解决absoulte脱离文档流覆盖问题 reactive(相对定位) 相对于自身定位 a
阅读全文
摘要:BFC是什么: BFC是块级化上下文 简单来说 BFC是一个 完全独立的空间,就是让空间里的子元素不会影响到外面的布局 触发BFC的条件: float:left /right/buttom/top position :fixed/absolute display:line-block/flex ov
阅读全文
摘要:1.1什么是对象 在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。 对象是由属性和方法组成的。 属性:事物的特征,在对象中用属性来表示(常用名词) 方法:事物的行为,在对象中用方法来表示(常用动词) 创建对象的二种方式 1.2.
阅读全文
摘要:数组的细节介绍: 1.数组的字面量是方括号 [ ] 声明数组并赋值称为数组的初始化 这种字面量方式也是我们使用最多的方式 2.数组元素的类型 数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。 3.获取数组中的元素 索引 (下标)用来访问数组元素的序号(数组下标从 0 开始) 4.索引的作用
阅读全文
摘要:比较运算符 <body> <script> // 比较结果是boolean类型 console.log(4 > 10); //false console.log(5 >= 4); //true // 两个==号只判断值是否相等 存在隐式转换 console.log(10 == "10"); //tr
阅读全文
摘要:js概述 ≥使用方式 js是什么 》js是运行在浏览器/客户端上的一种编程语言,实现人机交互。 js能做什么 》 现在几乎是全能=〉数据交互,表单校验,app的开发,游戏开发,网页特效,服务端编程(node.js) js的组成ECMAScript DOM BOM ECMAScript(规范语言的基本
阅读全文